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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Оптимизация выравнивания панелей по форме 
V
    Опции темы
mauar
Дата 27.8.2009, 03:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Есть четыре панели, они расположены рядом друг с друг, вот таким образом: 
 
Скриншот_1
user posted image 

 
При развороте окна на весь экран эти панели съезжают, 
для верхней левой панели в параметрах Anchors, свойство Left установил в True. 
Для правой верхней панели свойство Right сделал в True. 
Для нижних панелей я таже сделал выравнивание по левому и правому краю. 
 
 Теперь у меня панели расходятся по разным углам: 

Скриншот_2"
user posted image 
  
Как мне сделать так чтобы панели когда окно разворачивалось на весь экран,  
не только по левому и правому краю было выравнивание но и по центру, то есть чтобы расширялись и в окне было бы 4 панели плотно прикреплены друг к другу, в общем приняли бы такой же вид как при свернутом окне, на первом скриншоте? 
 
Исходник моего творенья 
http://narod.ru/disk/12470836000/Panels.rar.html


[/code]
PM MAIL   Вверх
Frees
Дата 27.8.2009, 06:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

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



используй TGidPanel


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
niteo
Дата 27.8.2009, 07:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Вот. Попробуй так smile

Код

procedure TForm1.FormResize(Sender: TObject);
begin
  Panel1.Left := 0;
  Panel1.Top  := 0;
  Panel1.Width := round(form1.Width / 2);
  Panel1.Height := round(form1.Height / 2);

  Panel2.Left := 0;
  Panel2.Top  := round(form1.Height / 2);
  Panel2.Width := round(form1.Width / 2);
  Panel2.Height := round(form1.Height / 2);

  Panel3.Left := round(form1.Width / 2);
  Panel3.Top  := 0;
  Panel3.Width := round(form1.Width / 2);
  Panel3.Height := round(form1.Height / 2);

  Panel4.Left := round(form1.Width / 2);
  Panel4.Top  := round(form1.Height / 2);
  Panel4.Width := round(form1.Width / 2);
  Panel4.Height := round(form1.Height / 2);
end;



--------------------
Мне чужого лишнего не нада.Ешь ананасы, рябчиков жуй,день твой последний приходит, буржуй...
PM MAIL   Вверх
pushok
Дата 28.8.2009, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А если у меня куча различных компонент и мне надо, чтобы они увеличивались пропорционально расишрению экрана...

Возможно найти общее решение, чтобы его можно было использовать не для одной конкретной формы?
PM ICQ   Вверх
niteo
Дата 31.8.2009, 07:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Ну, способов существует множество:
1 изменять свойства компонент, перебрав их все на родительской форме
Код

  for i := 0 to ComponentCount - 1 do
     (Components[i] as TWinControl).Left := 10;


2 изменять св-ва посылая сообщения формам, контролам
Код

// Здесь 0 это номер формы
Screen.Forms[0].Perform(); // Это для форм
Screen.Forms[0].Broadcast(msg); // Это для контролов

--------------------
Мне чужого лишнего не нада.Ешь ананасы, рябчиков жуй,день твой последний приходит, буржуй...
PM MAIL   Вверх
Vas
Дата 31.8.2009, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

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



Вероятно вот это тебе поможет

Это сообщение отредактировал(а) Vas - 31.8.2009, 14:56


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
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.0445 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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