Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.02.2008, 19:03   #1
Victor[famas]
 
Регистрация: 12.02.2008
Сообщений: 9
По умолчанию как сделать так что при изменении разрешения экрана программа работала...

У меня проблема в том, что на форме размещена картинка, а в определенных местах картинки расположена прозрачная кнопка, и при изменении разрешения экрана кнопка уплывает в другое место)) как этого избежать?? Помогите плиз!!!
Victor[famas] вне форума Ответить с цитированием
Старый 12.02.2008, 21:42   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Основных разрешений немного.
Так что самый радикальный метод - проверять разрешение экрана и ставить кнопку туда, где она должна быть.
Кстати, свойство формы Scaled поставьте в False, тогда ничего уплывать не будет.
mihali4 вне форума Ответить с цитированием
Старый 12.02.2008, 22:53   #3
Victor[famas]
 
Регистрация: 12.02.2008
Сообщений: 9
Восклицание чето не то!!!!!!

я походу плохо придумал!!

подскажите идейку!!

есть картинка, на ней есть блоки, которыми нужно управлять

я делал с помощью кнопок speedbutton1 c flat=true, при наводке курсором на нужный мне блок кнопка выделялась и при нажатии появляется нужный мне блок на новой форме!!! все бы хорошо, но появилась проблема со сменой разрешения экрана, кнопки стали располагаться не на нужном им месте, они стали шире, что можно с этим сделать?? может как нибудь это по другому организовать?? да и качество картинки тоже ухудшается((

я в программировании новичек не обессутте)
Victor[famas] вне форума Ответить с цитированием
Старый 13.02.2008, 00:03   #4
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

При запуске запоминайте допустим в переменную TRect область экрана, ну его ширину и т.д. При изменении расширения, наверняка вызывается метод формы для изменения размера, в ее обработчике пишите для каждого компонента новые BoundsRect ну его размеры и положение на форме исходя от текущих размеров экрана и тех которые вы хранили в переменной TRect таким образом узнаите коэфициент изменения расширения и его присвоите к данным каждого контрола. Я думаю так должно устроить. Для перебора есть у формы удобные свой-ва типа ControlsCount ( кажется ) ну и Controls[Index] что такое, точно сказать щас не могу.
BOBAH13 вне форума Ответить с цитированием
Старый 13.02.2008, 00:23   #5
Victor[famas]
 
Регистрация: 12.02.2008
Сообщений: 9
По умолчанию

Вов мой уровень долёк до твоего не можешь показать это в виде небольшого обрасца кода, а то я не вкурил, чето понял с коэфициентом, но это предложение ваще не вкурил "Для перебора есть у формы удобные свой-ва типа ControlsCount ( кажется ) ну и Controls[Index] что такое, точно сказать щас не могу."
Victor[famas] вне форума Ответить с цитированием
Старый 13.02.2008, 00:29   #6
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Ну смотри... Каждая форма это TForm - класс, у него есть определенные свойства, с помощью которых можно перебрать в цикле все контролы и компоненты которые ему принадлежать.

пример установки Left, Top, Widh, Height для каждого контрола формы, В теле форма на каком-либо обработчике пишим типа
Код:
var
  i: Integer;
begin
  for i:= 0 to ControlCount - 1 do
    Controls[i].SetBounds(NewLeft, NewTop, NewWidth, NewHeight);
end;
Вот и все ControlCount - кол-во контролов на форме, это свой-во TForm класса. Controls[Index of Control] это получаем контрол формы по индексу, SetBounds- думаю и так ясно, установка новых значений и т.д. Для проверки типа это, как писалось выше, TSpeedButton используем так
Код:
if (Controls[i] is TSpeedButton) then
то это наш "быстрый батон" ну так же можете глянуть as, да и просто типа TSpeedButton(TControl), я так часто пользуюсь ну это уже отошел от темы.
BOBAH13 вне форума Ответить с цитированием
Старый 13.02.2008, 00:38   #7
Victor[famas]
 
Регистрация: 12.02.2008
Сообщений: 9
По умолчанию

Вован я ща на боковую, завтра попробую это организовать!! Тебе спасибо за пояснение!! завтра отпишу! получилось или нет!
Victor[famas] вне форума Ответить с цитированием
Старый 13.02.2008, 12:48   #8
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,502
По умолчанию

попробуй со свойством Anchors кнопок поиграться, хотя не факт
pu4koff вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать снимок экрана? Briz Общие вопросы Delphi 28 10.04.2013 16:29
Смена разрешения экрана san72 Помощь студентам 3 05.06.2008 12:38
Смена разрешения san72 Помощь студентам 0 04.06.2008 15:50
Определение разрешения монитора(ов) lamonana Общие вопросы Delphi 2 09.03.2008 18:56
Как сделать снимок экрана в графическом режиме? Борис2 Паскаль, Turbo Pascal, PascalABC.NET 9 08.12.2007 21:07