Форум: "Основная";
Текущий архив: 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.031 c