Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо