Rafał D napisał(a)
Generalnie chodzi mi o taki efekt:
Form1 -> klikam button -> Tworzy się nowa forma2 i jest aktywna a forma 1 jest zablokowana.
Taki efekt możesz uzyskać po prostu blokując cały formularz i to jest najszybsze rozwiązanie; To samo uzyskasz wywołując Form2
modalnie;
Nie rozumiem jaki efekt chcesz osiągnąć, bo jeśli wszystkie kontrolki na Form1
zostaną zablokowane, to po co Ci aktywny formularz, skoro i tak nic na nim nie klikniesz? Jeśli chcesz pozostawić jedynie możliwość zamknięcia pierwszego formularza w momencie, gdy Form2
jest aktywne - wykorzystaj sposób @kAzek, a jeśli nie jest Ci to potrzebne, to nie komplikuj sobie sprawy i po prostu zablokuj cały formularz;
Zawsze możesz rozbudować podaną wyżej procedure po to, by mieć jedną do blokowania i odblokowywania kontrolek:
procedure EnableFormControls(AParent: TWinControl; AState: Boolean);
var
I: Integer;
Ctrl: TControl;
begin
for I := 0 to AParent.ControlCount - 1 do
begin
Ctrl := AParent.Controls[I];
Ctrl.Enabled := AState;
if Ctrl is TWinControl then
EnableFormControls(TWinControl(Ctrl), AState);
end;
end;
Wywołanie jak powyżej;