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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2013, 15:13   #1
cccombo
Новичок
Джуниор
 
Регистрация: 27.05.2013
Сообщений: 1
По умолчанию "Масштаб" рабочего окна

Говорю сразу я не программист, поэтому возможно мой вопрос не корректный.
Я написал расчетный модуль к своему диплому. У меня 22" монитор, разрешение 1920х1080. Окно программы занимает 3/4 экрана. При запуске программы на другом компе (15", 1366x768) окно программы не помещается на экране и часть просто не видна.
Можно ли как-то "масштабировать" рабочее окно программы в зависимости от разрешения
cccombo вне форума Ответить с цитированием
Старый 27.05.2013, 15:25   #2
Toxa
Форумчанин Подтвердите свой е-майл
 
Аватар для Toxa
 
Регистрация: 01.12.2006
Сообщений: 514
По умолчанию

открой свойства формы (кликни на форму и F11), и внизу списка свойство WindowState, выбирай wsMaximized
Пишу на Delphi за еду
Toxa вне форума Ответить с цитированием
Старый 27.05.2013, 15:41   #3
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Ну и размещение элементов надо пересчитать
Вадим Мошев вне форума Ответить с цитированием
Старый 01.09.2013, 19:08   #4
Lanik
 
Регистрация: 01.09.2013
Сообщений: 7
По умолчанию

Цитата:
Ну и размещение элементов надо пересчитать
а как их правильно пересчитать? Если у меня на форме несколько выпадающих меню, таблица, три графика и несколько еще гридов, то для каждого делать коэффициент? Или есть что-то попроще? Допустим привязать их к панели, а внутри панели уже как-то автромасштаб можно делать?
Lanik вне форума Ответить с цитированием
Старый 01.09.2013, 22:08   #5
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Нужно установить свойства Align у компонентов исходя из нужного положения. Возможно, некоторые компоненты придётся поместить в дополнительные контейнеры (панели и т.п.)

Ещё как вариант сделать для "маленького" экрана (например, 1366x768) и при запуске изменять разрешение. Примерно так
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  dmScreenSettings: DEVMODE;
begin
  ZeroMemory(@dmScreenSettings, SizeOf(dmScreenSettings));
  with dmScreenSettings do begin
    dmSize:=SizeOf(dmScreenSettings);
    dmPelsWidth:=1366;
    dmPelsHeight:=768;
    dmBitsPerPel:=32;
    dmFields:=DM_PELSWIDTH or DM_PELSHEIGHT or DM_BITSPERPEL
  end;
  if (ChangeDisplaySettings(dmScreenSettings, CDS_FULLSCREEN)=DISP_CHANGE_FAILED) then begin
      MessageBox(0, 'Разрешение не сменилось', 'Ошибка', MB_OK or MB_ICONERROR);
      Application.Terminate
  end;
end;
eoln вне форума Ответить с цитированием
Старый 01.09.2013, 22:37   #6
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Уменьшите размер программы, и масштубируйте математикой. 3/4 от экрана по высоте или ширине?
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 02.09.2013, 09:30   #7
Lanik
 
Регистрация: 01.09.2013
Сообщений: 7
По умолчанию

Цитата:
Сообщение от eoln Посмотреть сообщение
Ещё как вариант сделать для "маленького" экрана (например, 1366x768) и при запуске изменять разрешение.
А если человек паралельно работает в других программах, то там тоже разрешение будет другое? Или можно как-то при изменении фокуса возвращать нормальное разрешение?
Lanik вне форума Ответить с цитированием
Старый 02.09.2013, 10:04   #8
Lanik
 
Регистрация: 01.09.2013
Сообщений: 7
По умолчанию

У меня на форме находится таблица и под ней два графика.
Расположила таблицу на одну панель. Растягивается только в ширину.
С графиками беда. И каждый на своей панели и оба на одной - при растягивании формы при всех разрешенных Align (как по идее должно быть) один график наезжает на второй. Они оба растягиваются относительно своего левого верхнего угла. Пробовала правый график поставить выравнивание по правой стороне - не помогает
Lanik вне форума Ответить с цитированием
Старый 02.09.2013, 12:43   #9
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Пример того, что Вам надо. Ключевая вещь - расстановка свойств Align. У панелей top left и client(для правой), а у контролов внутри панелей - только client.
Вложения
Тип файла: zip aligning.zip (373.5 Кб, 1 просмотров)
phomm вне форума Ответить с цитированием
Старый 02.09.2013, 12:45   #10
Lanik
 
Регистрация: 01.09.2013
Сообщений: 7
По умолчанию

Все спасибо. Я придумала. Может кому пригодится располагать горизонтально несколько рисунков.
1. Создаю панель 1 (платформа для двух форм). Мне она нужна для выравнивания рисунков всегда внизу. По идее теперь по этой технологии можно и высчитывать положение по вертикали. Но мне не нужно, т.к. рисунки всегда находятся снизу формы
1.1.На нее кидаю панель 2. Выравнивание левое. На нее график 1. Выравнивание - клиент.
1.2. Кидаю еще одну панель 3. Выравнивание правое. На нее график 2. Выравнивание - клиент
2. В событие FormConstrainedResize кидаю расчет:
Ширина формы 2 = ширина формы1 делен.пополам.
Форма3.Left = Ширина формы1 - Ширина формы 2 - 4 (на всякий случай расстояние между формами)
Теперь при распахивании или изменении окна мышкой рисунки пропорционально масштабируются
Lanik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Требуется программа на Delphi на тему "Автоматизация рабочего места администратора спортивного клуба" QuietRiot Помощь студентам 0 04.04.2012 11:35
[Delphi] "Создание рабочего стола Windows" JonMagon Помощь студентам 4 28.07.2011 00:17
Разработка "рабочего поля" программы сим. эл.схем (Delphi) WaruiOrochi Помощь студентам 4 28.11.2009 21:25
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
Работа с String Grid - помогите написать "Табель рабочего времени" Deicider Помощь студентам 3 29.11.2006 20:59