Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.06.22;
Скачать: CL | DM;

Вниз

Передача информации между двумя модальными фармами   Найти похожие ветки 

 
uno-84   (2008-05-28 10:57) [0]

Помогите пожалуйста! У меня есть 2 формы: Form1 и Form2, в первой форме имеется компонеты ListView и кнопка Btn. При нажатии на кнопку Btn в Form1 появляется Form2. В Form2 есть компонент Edit и кнопка Btn2. Если я ввожу в Edit текст и нажимаю Btn2, то этот текст должен появиться в ListView первой формы! Подскажите как это сделать! Возможно у кого-то есть примеры кода?


 
Vlad Oshin ©   (2008-05-28 11:03) [1]

Form1
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
form2.showModal;
end;

Form2
implementation
uses Unit1;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
form1.Memo1.Lines.Add(edit1.Text);
form2.Close;
end;


 
clickmaker ©   (2008-05-28 11:08) [2]

TModalForm2 = class(TForm)
 private
   function GetEditText: string;
   procedure SetEditText(const AValue: string);
 public
   property EditText: string read GetEditText write SetEditText;    
...

function TModalForm2.GetEditText: string;
begin
 Result := Edit.Text;
end;

procedure TModalForm2.SetEditText(const AValue: string);
begin
 Edit.Text := AValue;
end;

...
Form := TModalForm2.Create;
try
 if ( Form.ShowModal = mrOk ) then
 begin
   ListItem := ListView.Items.Add;
   ListItem.Caption := Form.EditText;
 end;
finally
 Free;
end;
 
ModalResult у Btn2 = mrOk


 
clickmaker ©   (2008-05-28 11:36) [3]

но мне лично нравится такой способ

TModalForm2 = class(TForm)
public
  class function Execute(var AStr: string): boolean; // если несколько параметров, то лучше юзать record
...

class function TModalForm2.Execute(var AStr: string): boolean;
begin
 with TModalForm2.Create(Application) do
 begin
   try
     Result := ( ShowModal = mrOk );
     if Result then
       AStr := Edit.Text;
   finally
     Free;
   end;
 end;
end;

...

if TModalForm2.Execute(SomeStr) then
begin
 ListItem := ListView.Items.Add;
 ListItem.Caption := SomeStr;
 ...
end;


 
uno-84   (2008-05-28 11:36) [4]

Спасибо большое



Страницы: 1 вся ветка

Текущий архив: 2008.06.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.016 c
2-1211411529
Timer
2008-05-22 03:12
2008.06.22
Как обновить TListView в режиме vsIcon?


15-1210756224
User1
2008-05-14 13:10
2008.06.22
Как программно выключить сервер ?


15-1205176108
builder
2008-03-10 22:08
2008.06.22
Если разница указывая адрес писать www или нет?


2-1211880109
Igor_34
2008-05-27 13:21
2008.06.22
Масштабирование формы - разрешение экрана


2-1211574528
Otz
2008-05-24 00:28
2008.06.22
Записи в DBGrid