Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2011, 18:23   #1
Екатерина_21
Пользователь
 
Регистрация: 03.08.2011
Сообщений: 18
Восклицание ПРОБЛЕМА С МАСШТАБИРОВАНИЕМ!!!

У меня такая проблема.
Мне необходимо, чтобы при разворачивании окна кнопки внизу тоже равномерно располагались.

Пробывала через Onresize, где прописывала что-то вроде
Button2->Left=200;
при том что изначально Left у кнопки был 100. Но когда запускаю программукнопка сразу сдвигается, до того, как я разверну окно.

Таже проблема и с PageControl!!
Прописала в onresize
PageControl1->TabWidth=150;
чтоб кнопки равномерно растягивались. Но потом, когда сворачиваю они также остаются растянутыми.

Помогите пожалуйста!!!!!!!!! Я уже чуть ли не до слез.
Екатерина_21 вне форума Ответить с цитированием
Старый 24.09.2011, 18:33   #2
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

ПОПРОБУЙ ЭТО!!!!!!
В OnResize:
Код:
Button1->Left = Form1->Width*0.1;
TwiX вне форума Ответить с цитированием
Старый 24.09.2011, 18:43   #3
Екатерина_21
Пользователь
 
Регистрация: 03.08.2011
Сообщений: 18
По умолчанию

Если так
Button1->Left = Form1->Width*0.1;
то кнопка сразу сдвигается, как только запускаю программу, до того, как разворачиваю окно((((
Екатерина_21 вне форума Ответить с цитированием
Старый 24.09.2011, 18:56   #4
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

у меня на программе TEST было 10 кнопок, чтоб они ровненько располагались, я делал так:
Код:
ots:=Round((Form1.Width-537)/2);
   Button1.Left:=ots;
   Button2.Left:=56+ots;
   Button3.Left:=112+ots;
   Button4.Left:=168+ots;
   Button5.Left:=224+ots;
   Button6.Left:=280+ots;
   Button7.Left:=336+ots;
   Button8.Left:=392+ots;
   Button9.Left:=448+ots;
   Button10.Left:=504+ots;
   Button1.Top:=Form1.Height-100;
   Button2.Top:=Form1.Height-100;
   Button3.Top:=Form1.Height-100;
   Button4.Top:=Form1.Height-100;
   Button5.Top:=Form1.Height-100;
   Button6.Top:=Form1.Height-100;
   Button7.Top:=Form1.Height-100;
   Button8.Top:=Form1.Height-100;
   Button9.Top:=Form1.Height-100;
   Button10.Top:=Form1.Height-100;
и ни разу не подвело
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 24.09.2011, 19:11   #5
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Цитата:
Сообщение от Екатерина_21 Посмотреть сообщение
Если так
Button1->Left = Form1->Width*0.1;
то кнопка сразу сдвигается, как только запускаю программу, до того, как разворачиваю окно((((
Брр... Потому что я константу 0.1 указал от балды.
В OnCreate можно написать:
k=(double)Button1->Left/Form1->Width;
А в OnResize умножать на k, а не на 0.1
TwiX вне форума Ответить с цитированием
Старый 24.09.2011, 19:16   #6
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Цитата:
Сообщение от NetSpace Посмотреть сообщение
у меня на программе TEST было 10 кнопок, чтоб они ровненько располагались, я делал так:
Код:
...
   Button1.Top:=Form1.Height-100;
   Button2.Top:=Form1.Height-100;
   Button3.Top:=Form1.Height-100;
   Button4.Top:=Form1.Height-100;
   Button5.Top:=Form1.Height-100;
   Button6.Top:=Form1.Height-100;
   Button7.Top:=Form1.Height-100;
   Button8.Top:=Form1.Height-100;
   Button9.Top:=Form1.Height-100;
   Button10.Top:=Form1.Height-100;
и ни разу не подвело
Вместо этого можно просто использовать свойство Anchors у кнопки.
TwiX вне форума Ответить с цитированием
Старый 24.09.2011, 19:22   #7
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

Можно, я не говорю, что мой способ единственно правильный. если привязать к нижней части кнопки ещё не проблема, то вот их горизонтально расставить ровненько по одной линии, тут просто надо немного математики.(см. верхнюю половину моего кода)
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 24.09.2011, 19:30   #8
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Это тоже самое, что я отписал на поста 4 выше)
Я просто сказал, что вы зря изобретали велосипед)
TwiX вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37
Помогите с масштабированием sabbatazh Общие вопросы Delphi 9 13.10.2008 16:10
График в Canvas (с масштабированием) из StringGrid. PereCCC Помощь студентам 1 11.05.2008 10:45