![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
OnResize событие
Юрий © (2003-03-05 15:49:00)
Следующий баг:
На панели ( с Align caTop ) лежат слева КомбоБох и справа Баттон, занимая практически всю панель по длине. По событию ОнРисайз, когда меняется ширина формы и соответственно панели, ширина КомбоБоха и расположение Баттона должны меняться, чтобы опять занимать по ширине всю панель. Пишу следующий для этого код:
procedure TfSearch.KOLForm1Resize(Sender: PObj);
begin
button.Left := panelTop.Width - 60;
combobox.Width := panelTop.Width - 70;
end;
Если изменяю ширину при помощи мышки, рястягивая и сужая форму, то всё нормально, код работает. Если кликаю мышкой на форме ( на БордерИконз - Maximize, Restore Down после Maximize ), то код не отрабатывается. После Maximize ширина КомбоБоха и расположение Баттона остаются прежними, а после Restore Down Баттон вообще оказывается за пределами формы. Ширина формы 608, ширина КомбоБоха 530, ширина Баттона 55 вначале работы программы.
Kladov (2003-03-06 21:27:00) [1]
панель выровнена. ее изменение размеров происходит после того как отрабатывает OnResize формы.
Юрий (2003-03-06 20:06:00) [2]
"Может, надо прицепиться к OnResize не формы, а родительской панели?"
В этом случае работает нормально, хотя немного странно, почему к событию панели нужно прицепляться, а к событию формы не получается.
Kladov (2003-03-06 19:40:00) [3]
У вас что-то не так с самого начала происходит. Вот я написал событие
procedure TForm1.KOLForm1Resize(Sender: PObj);
begin
Button2.Top := Form.ClientHeight - Button2.Height - 10;
ListView1.Height := Button2.Top - ListView1.Top - 8;
end;
И оно срабатывает в том числе и при максимизации-восстановлении окна.
Может, надо прицепиться к OnResize не формы, а родительской панели?
Юрий (2003-03-06 15:54:00) [4]
Самое интересное, что ничего не поменялось после добавления кода:
"procedure TfSearch.KOLForm1Maximize(Sender: PObj);
begin
KOLForm1Resize(Form);
end;
procedure TfSearch.KOLForm1Restore(Sender: PObj);
begin
KOLForm1Resize(Form);
end;"
Я что-то делаю не так?
Юрий (2003-03-06 15:50:00) [5]
"OnMinimize / OnRestore -> вызвать обработчик OnResize"
Не правильнее ли, чтобы это уже было изначально прописано ( в KOL.PAS модуле, как я полагаю ), ведь изменение размеров формы происходит в этих двух случаях?
Kladov (2003-03-05 21:06:00) [6]
OnMinimize / OnRestore -> вызвать обработчик OnResize