Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.25;
Скачать: CL | DM;

Вниз

Автоматическое изменение окна...   Найти похожие ветки 

 
Builder   (2004-01-24 07:37) [0]

Здравствуйте уважаемые мастера,

- может ли Delphi автоматически определять размеры монитора и разрешения
и автоматически изменять размеры окна;
заранее спасибо...

P.S. если можно, то подробнее (в литературе смотрел)


 
Matrex   (2004-01-24 08:39) [1]

Если я правильно понял то:

Function GetXScreen:Integer;
begin
result:=screen.width;
end;

Function GetYScreen:Integer;
begin
result:=screen.Height;
end;

Form.width:=GetXScreen;
Form.Height:=GetYScreen;


 
Оптимал   (2004-01-24 12:06) [2]

Лучше добавить еще:

function GetXScreenEx: integer;
begin
 Result := GetXScreen;
end;

function GetXScreenEx2: integer;
begin
 Result := GetXScreenEx;
end;

То же самое и с Y-координатой. Использовать надо, естественно, GetXScreenEx2. Так намного оптимальнее...


 
Оптимал   (2004-01-24 12:13) [3]

Да, вот еще: нужно в начале программы написать {$OPTIMIZATION OFF}... А то вот начнет компилятор куралесить! Дураки какие-то в Borland"е сидят! Оптимизируют что-то, а потом проблемы!


 
Builder   (2004-01-24 13:01) [4]

Этот понятно, спасибо, но так мы получаем размеры рабочей области в пикселах? А может проще FullScreen как - нибудь сделать?
Или Delphi не может все настраивать автомат...?
И где убирается окантовка окна? Ну что-бы просто рабочее поле оставалось?


 
DENNIS ©   (2004-01-24 13:12) [5]

Чтобы просто раб. область остамась, есть свойство у формы: BoderStyle. Его значение: bsNone.
И не надо писать никаких функций. Проще сделать (хотя в зависимости от того что нужно):
Form.Width:=Screen.Width;
аналогично с Height,


 
MacX   (2004-01-24 13:25) [6]

Я так понял человеку нужно не это... нужно изменить в инспекторе свойство Form := wsMaximized


 
MacX   (2004-01-24 13:25) [7]

Извиняюсь Form.WindowState := wsMaximized


 
Builder   (2004-01-24 14:56) [8]

А если на форме есть image1? Ведь у него размер фиксированный, можно ли его маштабировать?


 
DENNIS ©   (2004-01-24 15:09) [9]

у Image есть свойство Stretch. Делаешь ему true и изменяя его длину и ширину, он будет растягивать изображение. Еще есть св-во Prorortional. Ему true и размеры изменяются пропорционально.


 
Builder   (2004-01-24 15:33) [10]

А если я начинаю изменять размер формы? image остается в прежнем виде...


 
DENNIS ©   (2004-01-24 22:03) [11]

Даже закрой, а потом вызови. Все останется. Кроме того можешь менять IMAGE не открывая его.


 
MacX   (2004-01-24 22:29) [12]

Вот еще что может помочь: у многих объектов есть такой свойство (в инспекторе объектов) Anchors. По умолчанию в нем стоят лево и верх. Т.е. когда изменяются размеры формы, объекты передвигаются так, что расстояние слева и сверху не изменяется. Другими словами, объекты привязаны к левому верхнему углу формы. Поэкспериментируй - поймешь как это работает. Кроме того, если выставить, например, лево и право, то при увеличении формы объект тоже увеличится в ширину, т.к. расстояния и справа и слева не должны меняться. Так можно автоматически масштабировать объекты на форме.

Еще у некоторый объектов (TMemo например) есть свойство Align. Тоже позволяет автоматически масштабировать объекты.


 
Mihey ©   (2004-01-24 23:42) [13]

>Еще у некоторый объектов (TMemo например) есть свойство Align. Тоже позволяет автоматически масштабировать объекты.

У TImage тоже есть. Собственно говоря, у всех потомков TControl.


 
Князев Сергей   (2004-01-26 08:14) [14]


function TfrmMain.SetNewScreenMode(_width, _height: Integer):Boolean;
var DeviceMode : TDevMode;
begin
with DeviceMode do begin
 dmSize:=SizeOf(DeviceMode);
 dmBitsPerPel:=16;
 dmPelsWidth:=_width;
 dmPelsHeight:=_height;
 dmFields:=DM_BITSPERPEL or DM_PELSWIDTH or DM_PELSHEIGHT;
 result:=False;
 if ChangeDisplaySettings(DeviceMode,CDS_TEST or CDS_UPDATEREGISTRY) <> DISP_CHANGE_SUCCESSFUL
  then Exit;
 Result:=ChangeDisplaySettings(DeviceMode,CDS_UPDATEREGISTRY) = DISP_CHANGE_SUCCESSFUL;
end;
end;


Задаещь при вызове ширину и высоту, и если результат True, то изменение экрана прошло успешно.



Страницы: 1 вся ветка

Текущий архив: 2004.04.25;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.049 c
3-1080651328
geg
2004-03-30 16:55
2004.04.25
Генерация номера заказа


8-1073767073
arcoant
2004-01-10 23:37
2004.04.25
quick graphics


11-1063273021
dataMaster
2003-09-11 13:37
2004.04.25
Panel и edgeStyle


4-1077978175
Defunct
2004-02-28 17:22
2004.04.25
Как убить свой поток?


14-1080757265
тихий вовочка
2004-03-31 22:21
2004.04.25
Самая быстрая запись на диск