Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.02;
Скачать: CL | DM;

Вниз

Как сделать что бы форма меняла размеры проаорционально?   Найти похожие ветки 

 
DR0N ©   (2006-02-26 18:05) [0]

сабж


 
Desdechado ©   (2006-02-26 18:10) [1]

> проаорционально
относительно чего и в каких случаях?


 
Eraser ©   (2006-02-26 18:17) [2]


> DR0N ©   (26.02.06 18:05)

обрабатывать сообщение WM_WINDOWPOSCHANGING примерно так
Message.WindowPos.cy := Round(Message.WindowPos.cx / FAspect);, где FAspect нужное соотношение сторон, например 1,3 (640/480).
Но при обработке возможно надо учитывать некоторые доп. факторы.


 
DR0N ©   (2006-02-26 20:20) [3]

Так ну вроде то что надо. Это можно писать в
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
 var Handled: Boolean); ?
Просто все мессаги тут обрабатываю и не совсем понимаю как у Message может быть параметр WindowPos, если это cardinal? и Cx - это ширина получается? А то название какое то не стандартное.


 
Eraser ©   (2006-02-26 21:10) [4]


> DR0N ©   (26.02.06 20:20) [3]


> Так ну вроде то что надо. Это можно писать в
> procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
>
>  var Handled: Boolean); ?

не получится, т.к. WM_WINDOWPOSCHANGING отсылается синхронно.
Т.е. нужно делать стандартный обработчик сообщения типа
procedure WMWindowPosChanging(var Message: TWMWindowPosChanging); message WM_WINDOWPOSCHANGING;
или же подменять оконную процедуру.

> Просто все мессаги тут обрабатываю и не совсем понимаю как
> у Message может быть параметр WindowPos, если это cardinal?

см. справку, там подробно описаны параметры.


 
DR0N ©   (2006-02-26 21:29) [5]

О, сенкс вроде все работает...
правда константные размеры формы не учитываются и по высоте мышкой не растягивается, придется руками в обработчике писать =(


 
Eraser ©   (2006-02-26 21:35) [6]


> DR0N ©   (26.02.06 21:29) [5]


> правда константные размеры формы не учитываются и по высоте
> мышкой не растягивается, придется руками в обработчике писать
> =(

это всё можно учитывать при обработке этого сообщения. Я показал простейший пример просто.


 
DR0N ©   (2006-02-26 22:34) [7]

Да, спасибо, я все понял.



Страницы: 1 вся ветка

Текущий архив: 2006.04.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.041 c
15-1142180329
Piter
2006-03-12 19:18
2006.04.02
Программа для "замедления" mp3


2-1142790242
VEZ
2006-03-19 20:44
2006.04.02
Autorun


4-1137407158
$Инъектор
2006-01-16 13:25
2006.04.02
Как понять что произошла ошибка DOS приложения ?


2-1142441377
Fl@sh
2006-03-15 19:49
2006.04.02
FireBird!!!


2-1142927779
XiAndr
2006-03-21 10:56
2006.04.02
TWebBrowser