Odczytanie rozmiaru formy z przed stanu wsMaximized.

Odczytanie rozmiaru formy z przed stanu wsMaximized.
IN
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam.

Jak w kodzie danego programu pisanego w Delphi odczytać parametry formy tj: Left, Top, Width, Height z przed wywołania

Kopiuj
Form.WindowState=wsMaximized 

Nie chodzi mi o przechwytywanie komunikatów tylko pośredni albo bezpośredni dostęp do odczytu tych wartości. W końcu gdzieś ta informacja o normalnym rozmiarze okna jest zapamiętana.

Edit.
Doprecyzuję, że potrzebne jest to do przeskakiwania z formy na formę . Żeby nowo pokazująca się forma miała te "normalne" położenie i wielkość taka jak ta poprzednia.
Teraz robię tak:

  • przywracam starą formę do normalnej wielkości,
  • odczyt danych starej formy,
  • nadanie nowej ukrytej jeszcze formie,
  • pokazywanie nowej,
  • ukrywanie starej.
    W tej sytuacji jest ten efekt migotania form, którego chciałbym się pozbyć.
olesio
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
  • Postów: 4191
1

Nie ma chyba innej możliwości niż w ten sposób:

Kopiuj
  Caption := IntToStr(Width);
  WindowState := wsMaximized;

Bo po tej zmianie state, jak wiadomo na logikę, koordynaty formatki się zmieniają.
Ewentualnie takie coś w OnCreate albo gdzie indziej, chociaż to przekombinowane nieco:

Kopiuj
  WindowState := wsMaximized;
  WindowState := wsNormal;
  Caption := IntToStr(Width);
  WindowState := wsMaximized;

Ponieważ będzie przez chwilę widać zmienianie rozmiaru formatki.
Może ktoś jeszcze tutaj Tobie coś lepszego doradzi w tym temacie.

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12316
1

@Integers - najprościej to po prostu trzymać sobie te dane np. w zmiennej typu TRect; Dane z rekordu aktualizować podczas przesuwania czy rozciągania formularza - są od tego odpowiednie zdarzenia czy komunikaty; Nie ma sensu kombinować nie wiadomo jak.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.