Цитата:
Хочешь "правильно" - обрабатывай сообщения WM_SIZING и WM_MOVING.
|
хочу, только вот с этим никогда дела не имел и ничего у меня не получается...
это то до чего я дошел, только вот уже сил нет, по крайней мере сегодня, я вообще не могу понять как эта штука работает, вроде все пишется одинаково, а результата никакого
Код:
type
TForm1 = class(TForm)
Button1: TButton;
procedure qwe1(var message :Tmessage); message wm_size;
procedure mtop(var message:Tmessage); message wmsz_top;
procedure mleft(var message:Tmessage); message wmsz_left;
...
procedure Tform1.qwe1(var message:Tmessage);
var h:integer;
begin
if form1.Height<200 then form1.Height:=200;
if form1.width<200 then form1.width:=200;
end;
procedure tform1.mtop(var message:Tmessage);
var h:integer;
begin
h:=form1.height;
if form1.Height<200 then form1.Height:=200;
if (200-h)>0 then form1.top:=form1.top-(200-h);
end;
procedure Tform1.mleft(var message:Tmessage);
var w:integer;
begin
showmessage('');
w:=form1.width;
if form1.width<200 then form1.width:=200;
if (200-w)>0 then form1.left:=form1.left-(200-w);
end;
с помощью процедуры
qwe1 я добиваюся того же результата, что и при помощи обработчика событий, то есть окно не уменьшается менее заданных размеров, но скачет когда я изменяю его размеры сверху-вниз и слева-направо...
с помощью
mtop я добился того чтобы она не скакала при изменении размеров сверху-вниз, думал такое же повторить, для слева-направо с помощью
mleft но не прокатило, к тому же моя форма также скачет если ее тащить за углы, в смысле изменять размеры... можно конечно попробовать написать что-то типа
mtop и для этого случая, но что если получится также как и с
mleft... короче я в тупике... может я все таки не с той стороны подошел, как обычно, не там ищу...