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

Вниз

Сделать CenterOnParent   Найти похожие ветки 

 
Rusya   (2007-04-21 23:02) [0]

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

procedure TForm1.KOLFormResize(Sender: PObj);
begin
if Assigned(Panel1) then Panel1.CenterOnParent;
end;

но при Maximize и Restore не срабатывает :( При назначении этой же процедуры обработчиком OnRestore и OnMaximize тоже ничего не меняет.
Поскажите правильный способ, чтобы панель всегда была в центре формы?


 
Compiler ©   (2007-04-22 11:59) [1]

Попробуйте вот так

function TForm1.KOLForm1Message(var Msg: tagMSG; var Rslt: Integer): Boolean;
begin
result:=False;
case msg.message of
 WM_SIZE:
   case LoWord(msg.wParam) of
   SIZE_RESTORED,
   SIZE_MAXIMIZED:
    if assigned(panel1) then Panel1.CenterOnParent;
   end;
 end;
end;


События SIZE_RESTORED,  SIZE_MAXIMIZED происходят после того, как размер формы изменится.


 
Rusya   (2007-04-22 20:23) [2]


> Compiler ©   (22.04.07 11:59) [1]

Спасибо, все получилось. Убрал обработку события OnResize, и оставил обработку OnMessage в таком виде:

function TForm1.KOLForm1Message(var Msg: tagMSG; var Rslt: Integer): Boolean;
begin
Result:=False;
if msg.message  = WM_SIZE then
  if assigned(panel1) then Panel1.CenterOnParent;
end;



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

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

Наверх




Память: 0.47 MB
Время: 0.02 c
2-1192884365
user1024
2007-10-20 16:46
2007.11.11
Как записать значение типа Memo в таблицу БД?


2-1192969619
Lebedev
2007-10-21 16:26
2007.11.11
Caption RadioGroup должен переходить на новую строку.


2-1192701788
dumka
2007-10-18 14:03
2007.11.11
Скины


2-1192731953
tmp
2007-10-18 22:25
2007.11.11
Module32First всегда возвращает первой информацию о...


15-1191838594
homm
2007-10-08 14:16
2007.11.11
Нужен драйвер прямого доступа к COM порту