Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Formular Bildschirmauflösung anpassen


neffets - Do 17.05.07 14:38
Titel: Formular Bildschirmauflösung anpassen
Ich programmieren auf dem Laptop mit einer Auflösung 1200X800.
Wenn ich das Programm auf einem PC mit Auflösung 800X600 ausführe muß füchterlich gescrollt werden, um alle Komponenten ansprechen zu könnne.
Gibt es eine Procedure, die je nach Bildschirmauflösung alle Formulare mit ihren Komponenten in gleichem Maße scaliert, daß immer Fullscreen ohne scrollbalken erhalten wird?

Beste Grüße


D. Annies - Sa 19.05.07 09:16

Hi, neffets,

ja, die gibt es, ich muss sie bloß noch wiederfinden...

Melde mich dann, bis bald, wohl noch heute.

D. Annies


neffets - Sa 19.05.07 09:39
Titel: formular Bildschirmauflösung anpassen
das wäre nett.
Ich habe zwar schon eine Procedur gefunden, die scaliert zwar das Formular, aber die darauf enthaltenen buttons, pagecontrol u.ä. werden verzerrt und z.b. bei pagecontroll sind die Reiter total verdeckt.


Blackheart666 - Sa 19.05.07 10:28

Musst Du mal schaun, bei Mir hatt das bis jetzt funktioniert.

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
procedure TForm1.FormShow(Sender: TObject);
const breite=800{Auflösung, unter der das Fenster erstellt wurde}
  hoehe=600;
var schrift: integer;
begin
  schrift := pixelsperinch-96;
  if screen.width>breite then begin
    if schrift>0 then
      {für große Schriften}
      ScaleBy(round(((screen.width/breite)*100)-((screen.width/breite-1)*100)),100)
    else
      {für kleine Schriften}
      ScaleBy(round(((screen.width/breite)*100)),100);
  end
else begin
    if screen.width=breite then
      ScaleBy(round(((screen.width/breite)*100)-schrift),100)
    else begin
      if schrift>0 then
        {für große Schriften}
        ScaleBy(round((100-(breite/screen.width-1)*100)-(breite/screen.width-1)*100),100)
      else
        {für kleine Schriften}
        ScaleBy(round((100-(breite/screen.width-1)*100)),100);
    end;
  end;
end;


D. Annies - Sa 19.05.07 21:22

Hi, neffets,

hab's noch nicht wiedergefunden, leider!
Ich suche morgen weiter, es muss auf meinem zweiten Rechner
sein - Geduld!

Grüße von D. Annies


Mindforce - Sa 19.05.07 21:26

Hi,

Blackheart666 hat bereits den Code gepostet den ich dir eigentlich auch Posten wollte :D
Der funzt sehr gut und muss auch gehen!

MF


neffets - So 20.05.07 17:03
Titel: formular bildschirmauflösung anpassen
besten Dank
diese Procedure fuktioniert tatsächlich.
beste Grüße