Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.06.22;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.042 c
1-1195132473
DerbyW
2007-11-15 16:14
2008.06.22
Генерация интерфейсов для WebService(SOAP) на основании WSDL


2-1211800811
Fr1K
2008-05-26 15:20
2008.06.22
Поиск в файле


2-1211898814
kazar
2008-05-27 18:33
2008.06.22
Разность 2 дат


3-1200660004
darsad
2008-01-18 15:40
2008.06.22
Базы данных


2-1212043089
TUserClass
2008-05-29 10:38
2008.06.22
ЗаDisabl ить все формы кроме одной





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский