Всем привет!
Разработал программу у себя на компе(разрешение экрана 1366х768) в полноэкранном режиме(свойство формы WindowState=WSMaximized). В программе присутствуют панели, имейджи, лейбелы и т.д. Запустив готовый скомпилированный экзешник на нетбуке(разрешение экрана 1024x600) почти половина программы не поместилась(не отобразилась) на экране нетбука. Как написать универсальную программу, которая бы нормально(во весь экран) отображалсь при любом разрешении экрана. Прогуглив инет и испробовав готовые коды, должного рез-та не добился. К примеру использовал след.код:
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Panel1: TPanel;
Image1: TImage;
Image2: TImage;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
const
ScreenWidth: Integer = 1366;
ScreenHeight: Integer = 768;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var x, y: LongInt;
begin
Form1.WindowState:=wsMaximized;
Image1.Align:=alClient;
Image1.Stretch:=True;
{Image1.Proportional:=True;}
Image2.Align:=alClient;
Image2.Stretch:=True;
{Image2.Proportional:=True;}
scaled := true;
x := getSystemMetrics(SM_CXSCREEN);
y := getSystemMetrics(SM_CYSCREEN);
if (x <> ScreenHeight) or (y <> ScreenWidth) then
begin
Form1.height := Form1.height * x div ScreenWidth;
Form1.width := Form1.width * y div ScreenHeight;
end;
if x <> ScreenWidth then
scaleBy(x, ScreenWidth);
end;
end.
Результат таков, что титульный Image(который расположен на форме отображается нормально при любом разрешении экрана), а компонент Panel и Image(который расположен на панели) по ширине отображается нормально, а высота отображается НЕ нормально, а именно меньше чем должна быть.
Код:
const
ScreenWidth: LongInt = 1366;
ScreenHeight: LongInt = 768;
procedure TForm1.FormCreate(Sender: TObject);
var
iPercentage:integer;
begin
Form1.Scaled:=True;
Image1.Align:=alClient;
Image1.Stretch:=True;
Image2.Align:=alClient;
Image2.Stretch:=True;
if (screen.width <> ScreenWidth) then
begin
height := longint(height) * longint(screen.height) div ScreenHeight;
width := longint(width) * longint(screen.width) div ScreenWidth;
scaleBy(screen.width, ScreenWidth);
end;
end.
Этот код тоже не помогает, результат таков же как и выше описанный...
Пожалуйста, помогите с кодом или посоветуйте в каком направлении копать дальше. Заранее спасибо!