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?
- Rejestracja:prawie 17 lat
- Ostatnio:prawie 16 lat

- Rejestracja:ponad 22 lata
- Ostatnio:ponad 9 lat
- Postów:1668
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.
- Rejestracja:prawie 17 lat
- Ostatnio:prawie 16 lat
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'.

- Rejestracja:ponad 17 lat
- Ostatnio:prawie 12 lat
- Postów:56
A nie zrobiłeś czasem dla formy AutoSize na True? xD
Obsługa Komunikatów
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.