Inny sposob - (minimized, forms, create) ?

0

Witam.

Jest forma FormaGlowna (rodzic), na niej Button4 , jest forma PlanEksperymentu (dzidzius).

W zdarzeniu onDeactivate -> PlanEksperymentu :

procedure TPlanEksperymentu.FormDeactivate(Sender: TObject);
begin
   Planeksperymentu.WindowState:= wsMinimized;
end;

Klikajac w Button4:

procedure TFormaGlowna.Button4Click(Sender: TObject);
var
 Forma: TForm;
 Index: Integer;
begin
Forma := nil;
 for Index := 0 to Screen.FormCount -1 do
   if screen.Forms[Index].Name = 'PlanEksperymentu' then
    begin
      Forma := Screen.Forms[Index];
      PlanEksperymentu.WindowState := wsNormal;
    end;

   if Forma = nil then
     PlanEksperymentu:= TPlanEksperymentu.Create(Self);
     PlanEksperymentu.Show
end;

Dzialanie - klikamy w Button , tworzy sie forma PlanEksperymentu, minimalizuje sie kiedy jest nieaktywna (klik poza forme), jezeli bedziemy probowac jeszcze raz kliknac w Button - ponownie nie utworzy sie tylko bedzie miec wielkosc zdefiniowana (wsNormal).

Pytanie sie tyczy czy da sie powyzszy kod jakos zastapic innym, tzn prostszym ?

pozdrawiam

[cya]

0

tak na szybkiego to proponuje try i except. jesli nie uda sie przywrocic okna wtedy masz except... chodzi mi mniej wiecej o cos takiego:
try
Win32Check( ShowWindow( FindWindow('nazwa okna', nil), SW_NORMAL));
except
... tworzysz swoje okno;
end;

prawde mowiac nie wiem czy zadziala, jak napisalem na poczatku to tak na szybkiego [niewinnosc]

0

Tez jakies rozwiazanie jest :)

Dzieki za info [browar]

1 użytkowników online, w tym zalogowanych: 0, gości: 1