Dopasowanie rozmiarów formy do jej zawartości

0

Witam,
mam aplikację typu MDI (Delphi 7) oraz funkcję, która dopasowuje rozmiar okna typu Child do jego zawartości. Mam problem z miejscem, w którym ta funkcja ma zostać wywołana. Jeśli ją wywołam:

  • raz na początku (przy jej tworzeniu), to gdy formy są zmaksymalizowane powstaje dziwny efekt (jest jednocześni zmaksymalizowana i nie na pełnym ekranie głównej formy)
  • j.w. ale wcześniej sprawdzam czy WindowState = wsNormal, to jest OK, ale po przywróceniu rozmiarów formy jej rozmiar nie zostanie już dopasowany
  • próba sprawdzania w zdarzeniu OnResize jaki jest status okna (normalny czy zmaksymalizowany) nie pomaga, bo o dziwo po przywróceniu okna jego status jest wsMaximized, a nie wsNormal

Czy jest jakieś zdarzenie generowane tylko przy przywracaniu okna z maksymalego rozmiaru? Jeśli tak, to rozwiązałoby mój problem. A może jest jakieś inne. lepsze rozwiązanie tego problemu?

Z góry dziękuję za odpowiedzi.

0

a może zabawa z panelami i Align oraz Anchors. BTW OnResize jest wywoływany po zmianie rozmiaru więc powinno być ok

0

Witam ponownie,
dziękuję za pomoc, ale OnResize (przynajmniej u mnie nie działa tak jak powinno). Może jest to spowodowane tym warunkiem...

procedure TCustomForm.Resizing(State: TWindowState);
begin
  if not (csDesigning in ComponentState) then
    FWindowState := State;
  if State <> wsMinimized then
    RequestAlign;
  if FOleForm <> nil then FOleForm.OnResize;
end;

Nie wnikałem już dalej dlaczego tak się dzieje. Nadpisałem tą metodę (bo tutaj State był właściwy) i zadziałało tak jak chciałem.
Jeszcze raz dziękuję za pomoc.

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