Главная страница
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.02 c
2-1211652384
programmer90
2008-05-24 22:06
2008.06.22
Free Pascal на Delphi -"поймать и удержать"


11-1177247346
bessam
2007-04-22 17:09
2008.06.22
Где, как UpDown прикрутить к текстовому полю


15-1210622873
kolos
2008-05-13 00:07
2008.06.22
Прогнозирование вероятности


15-1210575142
zdm77
2008-05-12 10:52
2008.06.22
Ошибка coreide100.bpl


2-1211957443
Ega23
2008-05-28 10:50
2008.06.22
Надо ли ставить override?