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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.07.2009, 19:16   #1
Копоть Артём
Пользователь
 
Аватар для Копоть Артём
 
Регистрация: 12.04.2009
Сообщений: 29
Вопрос Разрешение экрана

Здравствуйте!
Подскажите, пожалуйста, как программно устанавливать нужное разрешение.
Программист - это человек, который решает совершенно непонятным вам способом проблемы, о существовании которых вы даже не подозревали.
Копоть Артём вне форума Ответить с цитированием
Старый 20.07.2009, 19:37   #2
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Поменять разрешение в ОС или как бы полноэкранный режим для своего приложения?
И на каком языке делать-то?
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 20.07.2009, 20:27   #3
Копоть Артём
Пользователь
 
Аватар для Копоть Артём
 
Регистрация: 12.04.2009
Сообщений: 29
Печаль

Как бы полноэкранный режим для своего приложения ;-). Просто у меня компе разрешение 1920 на 1200 и у моих программ соответственное. А для других это не удобно (не влазит окно в монитор ;-)). Вот и думаю, что надо на время работы программы устанавливать конкретное разрешение, например: 1280 на 1024.
Я лично работаю на Delphi. Но вообще как вам удобно
Программист - это человек, который решает совершенно непонятным вам способом проблемы, о существовании которых вы даже не подозревали.
Копоть Артём вне форума Ответить с цитированием
Старый 20.07.2009, 20:36   #4
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

Цитата:
Как написать приложение, адекватно отображающееся на экранах с различным разрешением монитора
Код:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
  Button1: TButton;
  Edit1: TEdit;
  procedure Button1Click(Sender: TObject);
  procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    // Отлавливаем, сообщение о изменении разрешения экрана
    procedure WMDisplayChange(var message: TMessage); message WM_DISPLAYCHANGE;
  public
    { Public declarations }
    W, H: integer;
end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Width := Round(Width * 1.5);
  Height := Round(Height * 1.5);
  ScaleBy(150, 100)
end;

procedure TForm1.WMDisplayChange(var message: TMessage);
begin
  inherited;
  Width := Round(Width * LOWORD(message.LParam) / W);
  Height := Round(Height * HIWORD(message.LParam) / H);
  ScaleBy(LOWORD(message.LParam), W);
  W := Screen.Width;
  H := Screen.Height;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  W := Screen.Width;
  H := Screen.Height;
end;

end.
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума Ответить с цитированием
Старый 20.07.2009, 20:48   #5
Копоть Артём
Пользователь
 
Аватар для Копоть Артём
 
Регистрация: 12.04.2009
Сообщений: 29
Смущение IT-man'у

Спасибо, конечно, только я трошки не понял текст кода. Для чего кнопка? и что делает? разьясните, если не сложно
Программист - это человек, который решает совершенно непонятным вам способом проблемы, о существовании которых вы даже не подозревали.
Копоть Артём вне форума Ответить с цитированием
Старый 20.07.2009, 21:04   #6
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

>Полноэкранный режим<
>Полноэкранный режим формы<
На всякий случай:
>Как изменить разрешение экрана<

Но в таком случае, думаю, это не лучший вариант...
Просто узнавайте разрешение монитора и меняйте размеры в OnCreate (при создании формы)...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 20.07.2009, 22:37   #7
Копоть Артём
Пользователь
 
Аватар для Копоть Артём
 
Регистрация: 12.04.2009
Сообщений: 29
Смех DomiNick'у

Спасибо большое! Обязательно попробую
Программист - это человек, который решает совершенно непонятным вам способом проблемы, о существовании которых вы даже не подозревали.
Копоть Артём вне форума Ответить с цитированием
Старый 21.07.2009, 02:34   #8
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
Хорошо

Или можно сделать как один мой знакомый... Он правда где-то в И-Нете стырил этот вариант...

Делаем форму с BorderStyle=bsSizeable и пишем примерно такой код для каждого контрола в FormCreate и FormResize:

Код:
Var Form1: TForm1; Button1_W, Button1_H, Button1_L, Button1_T: Real;

...

Procedure TForm1.FormCreate(Sender: TObject);
Begin
Button1_W:=Button1.Width/ClientWidth;
Button1_H:=Button1.Height/ClientHeight;
Button1_L:=Button1.Left/ClientWidth;
Button1_T:=Button1.Top/ClientHeight;
End;

Procedure TForm1.FormResize(Sender: TObject);
Begin
Button1.Width:=Round(Button1_W*ClientWidth);
Button1.Height:=Round(Button1_H*ClientHeight);
Button1.Left:=Round(Button1_L*ClientWidth);
Button1.Top:=Round(Button1_T*ClientHeight);
End;
Получается что-то наподобие Html-страницы, все размеры которой заданы в процентах...

Немного неудобно, когда контролов слишком много...
Знакомый просто на VBasic'е делал - там было проще - не надо переменные объявлять и т.д.
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 21.07.2009, 14:31   #9
П@вел
 
Аватар для П@вел
 
Регистрация: 02.04.2009
Сообщений: 4
По умолчанию

Попытайся при помощи команды Screen
П@вел вне форума Ответить с цитированием
Старый 21.07.2009, 22:52   #10
Копоть Артём
Пользователь
 
Аватар для Копоть Артём
 
Регистрация: 12.04.2009
Сообщений: 29
Смех Доминику

Спасибо!
Только по-моему это трошки не то. Если я правильно понял, то по твоему последнему методу дофига текста писать для каждого элемента окна и получается лишь изменение размеров (длина-ширина). А это трошки не то.
Но всё равноо спасибо
Программист - это человек, который решает совершенно непонятным вам способом проблемы, о существовании которых вы даже не подозревали.
Копоть Артём вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как изменить разрешение экрана lionman Общие вопросы Delphi 7 07.01.2011 12:45
Разрешение экрана Sweta HTML и CSS 4 06.09.2008 10:05
Разрешение экрана Михаил Юрьевич Общие вопросы Delphi 3 11.07.2008 21:33
Разрешение экрана Манжосов Денис :) Gamedev - cоздание игр: Unity, OpenGL, DirectX 3 28.05.2008 23:17
Разрешение экрана -=<[Evklidd]>=- Общие вопросы Delphi 1 20.02.2008 10:55