У меня есть приложение Delphi XE+ с 3 формами, 2 из которых создаются динамически, например:
form_main
запускаетform_equip
form_equip
запускаетform_certif
form_main
-> form_equip
-> form_certif
1-й: Открыть form_equip
procedure Tform_main.button_equip_addClick(Sender: TObject);
var
form_equip: Tform_equip;
begin
form_equip:= Tform_equip.Create(Self);
form_equip.equip_id:= 0;
form_equip.ShowModal;
FreeAndNil(form_equip);
end;
form_equip
у меня есть общедоступная procedure has_changes
2-й: открыть form_certif
procedure Tform_equip.button_certif_addClick(Sender: TObject);
var
form_certif: Tform_certif;
begin
form_certif:= Tform_certif.Create(Self);
form_certif.index:= 0;
form_certif.ShowModal;
FreeAndNil(form_certif);
end;
Теперь, когда я нажимаю кнопку ОК из form_certif
procedure Tform_certif.button_okClick(Sender: TObject);
begin
//do something...
form_equip.has_changes; //this public procedure from form_equip is not visible because form was created as local var on form_main
end;
Вопрос в том, как я могу передать имя отправителя/родителя в form_certif
, чтобы я мог видеть общедоступные процедуры и переменные из form_equip
?
Простой способ — объявить внутри unit_equip
глобальным:
var
form_equip: Tform_equip
но я избегаю этого, потому что form_equip
создан для динамического открытия в нескольких окнах с разными именами...