Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выравнивание панелей на форме, Выравнивание панелей и окон на форме 
:(
    Опции темы
DenRip
Дата 23.6.2007, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 12.6.2007

Репутация: нет
Всего: нет



На форме три панели, (Align=Left) что бы ширина у панелей всегда были одинаковые я пишу код:
Ширина панели = Ширина формы/3.
Я правильно делаю? или есть какой то другой приёмчик?
PM MAIL   Вверх
skyboy
Дата 23.6.2007, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



ну, при изменении размера формы ты не получишь пересчет размеров панелей.
потому: в OnFormCreate пропиши:
Код

var AllPanelWidth: integer;
...
AllPanelWidth:= Self.ClientWidth div 3;
panel1.width:= AllPanelWidth;
panel2.width:= AllPanelWidth;
panel3.width:= AllPanelWidth;
panel1.height:= Self.clientHeight;
panel2.height:= Self.clientHeight;
panel3.height:= Self.clientHeight;
panel1.top:= 0;
panel2.top:= 0;
panel3.top:= 0;
panel1.left:= 0;
panel2.left:= panel1.left + panel1.width;
panel3.left:= panel2.left + panel2.width;
panel1.anchors:= [akTop,akLeft,akBottom,akRight];
panel2.anchors:= [akTop,akLeft,akBottom,akRight];
panel3.anchors:= [akTop,akLeft,akBottom,akRight];

Ключевые моменты: использование anchors вместо align b свойства clientWidth вместо просто width.
PM MAIL   Вверх
DenRip
Дата 23.6.2007, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 12.6.2007

Репутация: нет
Всего: нет



Полезный примерчик, спасибо!
PM MAIL   Вверх
pseud
Дата 25.6.2007, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 10
Всего: 40



Раз 3 панели и ширина панели = 1/3 ширины формы, значит у тебя панели занимают всю форму.
Следовательно в дизайне выставляешь:

Код

Panel1.Align = alLeft;
Panel2.Align = alLeft;
Panel3.Align = alClient;


и пишешь 2 строчки кода в процедуре Form.OnResize:

Код

procedure TForm1.FormResize(Sender: TObject);
begin
  Panel1.Width := (ClientWidth div 3);
  Panel2.Width := Panel1.Width;
end;



--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0442 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.