|
| skærmopløsning Delphi 4. Fra : Torben Kristiansen |
Dato : 28-07-01 19:55 |
|
Hejsa
min ide var at jeg ønskede at mit program skulle kunne fremstår ens i alle
skærm opløsninger , og når man maksimerede skulle tingene blive propocinelt
stører , jeg har fundet frem til nedenstående løsning, der skal naturligvis
scales afhængig af skærm opløsning, spørgsmålet er denne løsnings skabelon
problemfri, jeg har kun ca 3 måndedes erfaring i programmering, så jeg kan
ikke rigtig overskue det, og ville gerne have nogle kommentere, evt smartere
metoder at gøre det samme på.
{ Private declarations }
procedure WMSysCommand(var Msg: TWMSysCommand);
message WM_SYSCOMMAND;
----
implementation
{$R *.DFM}
procedure TForm1.WMSysCommand;
begin
if (Msg.CmdType = SC_MAXIMIZE) then
begin
form1.scaleby(133,100); //der scales og formen fylder hele skærmen
form1.position := podefault;
end
else
inherited;
if (msg.CmdType = SC_RESTORE) then
begin
form1.scaleby(75,100); //der scales tilbage til oprindelig størelse
form1.Width := 249; //scal tallet er ikke helt korekt
form1.height := 396;
form1.position := poScreenCenter;
end
else
inherited;
end;
mvh Torben
| |
P.L. (28-07-2001)
| Kommentar Fra : P.L. |
Dato : 28-07-01 21:41 |
|
Hej Torben
Jeg gør følgende:
1. Programmerer antid i 1027*768 med små fonte.
2. Altid bruger den standardfont 'MS Sans Serif', som anvises af Delphi.
3. Arbejder med de standardstørrelser for standardfonten ('MS Sans Serif') har, dvs
8-10-12-14-18-24.
4. Form1.Scaled:=True, hvilket er standard, når en form bliver oprettes.
5. i proceduren: Procedure TForm1.FormShow(Sender: TObject), er den første linie;
PixelsPerInch:=Screen.PixelsPerInch*Screen.PixelsPerInch div 96;
// 96 henviser til at jeg bruger små fonte. Det kan du iøvrigt finde 'Object Inspector' i under
'PixelsPerInch'.
// der skal stå 120, hvis du programmeret i store fonte
Det plejer at virke upåklageligt.
Du må aldrig starte Delphi i andet end det format, som du begyndte et programmere i, for så kan du
få balade med skærmbilledet af formen.
Det er iøvrigt et problem, som jeg har sloges med, men til sidst fandt ud ovenstående.
P.L.
"Torben Kristiansen" <Torben-Kristiansen@mail.dk> skrev i en meddelelse
news:9jv1q1$ccm$1@news.cybercity.dk...
> Hejsa
>
> min ide var at jeg ønskede at mit program skulle kunne fremstår ens i alle
> skærm opløsninger , og når man maksimerede skulle tingene blive propocinelt
> stører , jeg har fundet frem til nedenstående løsning, der skal naturligvis
> scales afhængig af skærm opløsning, spørgsmålet er denne løsnings skabelon
> problemfri, jeg har kun ca 3 måndedes erfaring i programmering, så jeg kan
> ikke rigtig overskue det, og ville gerne have nogle kommentere, evt smartere
> metoder at gøre det samme på.
>
> { Private declarations }
> procedure WMSysCommand(var Msg: TWMSysCommand);
> message WM_SYSCOMMAND;
> ----
> implementation
> {$R *.DFM}
>
>
> procedure TForm1.WMSysCommand;
> begin
>
> if (Msg.CmdType = SC_MAXIMIZE) then
> begin
> form1.scaleby(133,100); //der scales og formen fylder hele skærmen
> form1.position := podefault;
> end
> else
> inherited;
>
>
> if (msg.CmdType = SC_RESTORE) then
> begin
> form1.scaleby(75,100); //der scales tilbage til oprindelig størelse
> form1.Width := 249; //scal tallet er ikke helt korekt
> form1.height := 396;
> form1.position := poScreenCenter;
> end
> else
> inherited;
> end;
>
> mvh Torben
>
>
>
| |
|
|