"namolny" resize

DE
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 16 lat
0

W moim programie zachodzi potrzeba zmieniania rozmiarów formy (TForm) z poziomu kodu. Robię to w metodzie FrameResize podstawiając do właściwści Width i Height odpowiednie wartości. Niestety zmiana taka wywołuje ponownie wygenerowanie wydarzenia typu "resize" i następuje sprzężenie zwortne.
Pytanie: jak zmieniac rozmiar formy, uniknając podobnego sprzezenia? Czy jest jakas ogólna metodoogia radzenia sobie z podobnymi problemami?

cimak
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 9 lat
  • Postów:1668
0

jak zmieniasz rozmiar formy to wywolywane jest zdarzenie onresize... ale po co Ty w tym zdarzeniu jeszcze raz zmieniasz rozmiar?
jesli chodzi Ci o zablokowanie mozliwosci zmiany rozmiaru (lub okreslenie wartosci max/min) to uzyj form1.Constraints.
mozesz tez przechwytywac komunikaty WM_SIZING.

DE
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 16 lat
0

Problem leży w tym, że wymiary formy nie dają się zmieniac z zewnątrz. Np. podstawienia from1.Width:=180 oraz form1.Height:=300, które próbowałem robic w metodzie 'OnResize' okna nadrzędnego ("parenta") nie są skuteczne. Innymi słowy, z jakiegoś powodu wymiary formy są zabezpieczone przed ich możliwością zmiany z poziomu kodu, a odblokowywane jedynie w jej metodzie 'FormResize'.

Grzegorz16
  • Rejestracja:ponad 17 lat
  • Ostatnio:prawie 12 lat
  • Postów:56
0

A nie zrobiłeś czasem dla formy AutoSize na True? xD
Obsługa Komunikatów


Windows jest jak kobieta: ma ładną "etykietę", twierdzi, że potrafi wszystko i wszędzie, ale nie akurat wtedy, gdy tego chcesz.
DE
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 16 lat
0

'Auto size' formy jest na false.

cimak
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 9 lat
  • Postów:1668
0

wiec chyba cos gdzies musisz miec dziwnie ustawione...

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.