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

Вниз

form3.showmodal   Найти похожие ветки 

 
denis24   (2004-10-13 10:19) [0]

Вызывается сабж кнопкой с form1 или кнопой с form2.
Как оперделить в самой form3 кто ее вызвал?


 
ЮЮ ©   (2004-10-13 10:22) [1]

form3 этого и знать не должна! Всю подготовку form3 и анализ введенных данных делай в тех местах, где вызываешь form3.showmodal, IMHO


 
Алхимик ©   (2004-10-13 10:23) [2]

В свойство Form3.Tag пиши номер вызвавшей формы.


 
denis24   (2004-10-13 10:24) [3]

А если надо чтоб кнопка на form3 выполняла различные операции в зависимости от того с какой формы она вызвана?


 
Ega23 ©   (2004-10-13 10:25) [4]


TForm3=class(TForm)
.....
private
FSenderName:String;
public
property SenderName:String Read FSenderName write FSenderName;
end;

procedure TForm1.Button1Click(Sender:TObject);
begin
Form3.SenderName:=Self.Name;
Form3.Show;
end;

procedure TForm2.Button1Click(Sender:TObject);
begin
Form3.SenderName:=Self.Name;
Form3.Show;
end;


Можно гораздо изощерённее


 
Гаврила ©   (2004-10-13 10:25) [5]

Form3:=TForm3.Create(self);
try
 Form3.ShowModal;
....
finally
 Form3.Free;
end;

Если создание и вызов идет так, то свойство Owner формы 3 как раз и будет равно показавшей ее форме


 
Pentium133 ©   (2004-10-13 10:27) [6]

если ты вызываешь форму так:

Form3:= TForm3.Create(Self);
Form3.ShowModal;


тогда Form3.Owner - как раз указывает на форму которая вызвала ее.


 
ЮЮ ©   (2004-10-13 10:28) [7]

кнопка на form3 должна только закрыть form3 а дальше анализируй ModalResult.
P/S. На хужой конец,
 Form3.Button.OnClick := Form3ButtonClick;
где Form3ButtonClick - метод формы form1/form2


 
Pentium133 ©   (2004-10-13 10:31) [8]

Не запутывайте человека.
Самый правильный вариант [5] (даже лучше чем [6] :)


 
ЮЮ ©   (2004-10-13 10:34) [9]

>Pentium133 ©   (13.10.04 10:31) [8] Самый правильный вариант [5]

Угу, у него будет самый крутой uses :)


 
Reindeer Moss Eater ©   (2004-10-13 10:34) [10]

unit Unit1;

interface

...
type
TForm1 = class(TForm)
..
 private
   { Private declarations }
 public
   { Public declarations }
 end;

function DoOne : boolean;
function DoTwo : boolean;
function DoThree: boolean;

implementation

{$R *.DFM}

function DoOne : boolean;
begin
with TForm1.Create(nil) do
 try
  Caption:="Делаю одно";
  Init(1);
  Result := ShowModal = mrOk;
 finally
  Free;
 end;
end;

function DoTwo : boolean;
begin
with TForm1.Create(nil) do
 try
  Caption:="Делаю другое";
  Init(2);
  Result := ShowModal = mrOk;
 finally
  Free;
 end;
end;

function DoThree: boolean;
begin
with TForm1.Create(nil) do
 try
  Caption:="Делаю третье";
  Init(3);
  Result := ShowModal = mrOk;
 finally
  Free;
 end;
end;


 
Pentium133 ©   (2004-10-13 10:43) [11]


> Угу, у него будет самый крутой uses :)

А в чём проблема то?
Всегда так делаю. Ни каких левых заморочек не надо.


 
denis24   (2004-10-13 10:56) [12]

[5] form3 так и вызывать каждый раз?Тоесть создавать?
Она уничтожается сама при закрытии себя?


 
Pentium133 ©   (2004-10-13 11:01) [13]


> denis24   (13.10.04 10:56) [12]

Делай как [5]. Там же явно вызывается Free.
А насчет каждый раз создавать - так и нужно поступать.
В начале программы создается только главное оконо. Остальные по мере использования и уничтожаются после


 
denis24   (2004-10-13 11:05) [14]

спасибо!



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

Форум: "Основная";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.035 c
8-1091613139
Borealis
2004-08-04 13:52
2004.10.31
Структура VOB файлов


4-1096027253
Yurko
2004-09-24 16:00
2004.10.31
Как показать Baloon НЕ возле TrayIcon ?


3-1096624461
stud
2004-10-01 13:54
2004.10.31
использование параметра в хранимой процедуре


10-1054029776
serg_
2003-05-27 14:02
2004.10.31
Проблема "лишних" GDI-объектов в corba-сервере


4-1095680247
ipnet
2004-09-20 15:37
2004.10.31
Как сменить курсор для отдельно взятого static





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский