[Delphi] ShowModal i maksymalizacja

0

Jakas skleroza czy co... Mam Form1 i Form2. Form2 ma ustawione BorderStyle := bsSizeable, BorderIcons := [biSystemMenu,biMinimize,biMaximize] i FormStyle := fsNormal. Teraz z Form1 wywoluje Form2.ShowModal, ale jak zmaksymalizuje wywolany w ten sposob Form2 i potem go zamkne, to po ponownym otwarciu nie mozna przywrocic go z pelnego ekranu do poprzednich rozmiarow. Przy zastosowaniu zwyklego Show problemu oczywicie nie ma. Kiedys juz cos takiego mialem i nie pamietam jak sobie radzilem. W ostatecznosci moge w OnClose dac FormState := fsNormal, ale wtedy forma mi "frunie" przed zamknieciem do poprzedniego rozmiaru i nie bardzo mnie to satysfakcjonuje. Jak ktos ma jakis pomysl to bym prosil o podpowiedz.

0

W OnClose

Form.Hide;
FormState:=fsNormal;

Działa. Testowałem na 7.0 Personal.

0

Zmienilem FormState na WindowState (bo FormState jest read only) i lipa, jest to samo. Dodam jeszcze ze do tego wszystkiego potrzebuje wlasciwosci zwracanej przez ShowModal (ModalResult).

0

Sorki, mój błąd. To powinno być FormStyle.

0

Zmiana nic nie dala, nadal okno zachowuje sie jak poprzednio.

0

A to ciekawe, bo u mnie przy takim kodzie:

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 hide;
 formStyle:=fsNormal;
end;

zachowuje się poprawnie. Przywołane po zamknięciu zmaksymalizowanego też normalnie działa :?

0

No wlasnie nie. Tak jakby gubil gdzies rozmiar okna po drodze... Mam Delphi 2005 Architect.

0
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 hide;
 formStyle:=fsNormal;
 form1.mr:=0; //mr w publicznych najlepiej
end;

Przu dodaniu ModalResult się wywala, a właściwie zapętla. Jeśli potrzebujesz infa na temat sposobu zakończenia okna to podaj prze jakąś zmienną do formy1.

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