Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Bildschirmauflösung (https://www.delphipraxis.net/7755-bildschirmaufloesung.html)

Taladan 20. Aug 2003 16:52


Bildschirmauflösung
 
Mein Proggi ist für 800x600 programmiert. Bei höheren auflösungen sieht dies unschön aus, geschweige den, bei niedriegeren.

Meine Fragen dazu:
1. wie kann ich die Bildschirmauflösung des Users abfragen?
2. wie kann ich die bildschirmauflösung wenn > 800x600 zurückstellen
3. muß ich im fall zwei, auser eine warnung an den user mit ja/nein button etwas besonderes beachten?

Stanlay Hanks 20. Aug 2003 16:58

Re: Bildschirmauflösung
 
Hallo.

1) Die Bildschirmauflösung kriegst du von Screen.Width und Screen.Height. Das sind zwei globale Varibalen, die die Pixelanzahl für Breite und Höhe des Bildschirms als Integer angeben.
2) Würde ich nicht machen, da du
3) ja Panels etc verwenden kannst , um das etwas zu kompensieren. :wink:
Aber du könntest auch die Komponenten in deinem Programm beim Programmstart nach der Bildschirmauflösung ausrichten. Das wäre komfortabler, denn welcher User will schon seine Auflösung verändert haben.

Übrigens: Wenn du wirklich die Auflösung verändern willst, dann kümmere dich auch darum, dass bei Programmende alles wieder zurückgesetzt wird...

Aber wie man die Auflösung ändert, weiß ich grade auch nicht. Aber ich glaube, sowas hatten wir schonmal im Forum... (> Suche :wink:)

Man liest sich, Stanlay :hi:

hummer 20. Aug 2003 16:58

Re: Bildschirmauflösung
 
Hallo Die aktuelle Bildschirmauflösung kann man so rausfinden

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  MessageDlg(Format('Screen Width = %d' + #13#10 + 'Screen Height = %d',
            [Screen.Width, Screen.Height]), mtInformation, [mbOK], 0);
end;

Alexander 20. Aug 2003 17:04

Re: Bildschirmauflösung
 
Also darf ich dir raten, die Bildschirmauflösung bei normalen Anwendungen (bei größeren Vollbildspielen mag das, was anderes sein...) die Auflösung nicht zu ändern?

Benutze Panels etc und kuck dir mal die Eigenschaft Align an, damit die Anordnung der Komponenten bei verschiedenen Auflösung besser aussieht...

Nachtrag:
Sonst poste mal einen Screenshot deiner Anwendung, vielleicht kann man dir mit der Anordnung so besser helfen....(vielleicht bekommst du es ja auch alleine hin)

overmoon 20. Aug 2003 19:36

Re: Bildschirmauflösung
 
Ansonsten kann man auch über "ScaleBy" die Komponenten einer VCL-Anwendung anpassen.

THE MATRIX 20. Aug 2003 20:17

Re: Bildschirmauflösung
 
also du holst dir erstmal ALLE möglichen Desktop-größen
Delphi-Quellcode:
procedure Tmainsys.getdisplaymodes;
var
  ii : Integer;
  DevMode : TDevMode;
begin
  ii := 0;
  while EnumDisplaySettings(nil,ii,Devmode) do begin
    with Devmode do
      ListBox1.Items.Add(Format('%dx%d %d Colors',[dmPelsWidth,dmPelsHeight,1 shl dmBitsperPel]));
    Inc(ii);
  end;
end;
dann s.o. guckst halt welche momentan verwendet wird und kannst dann über
Delphi-Quellcode:
 
if Listbox1.items.count<>-1 then
 begin
  Listbox1.ItemIndex:=strtoint(tmpstr);
  EnumDisplaySettings(nil,Listbox1.ItemIndex,Devmode);
  if ChangeDisplaySettings(DevMode,0)= DISP_CHANGE_SUCCESSFUL then ShowMessage('Geändert'); end else showMessage('Sry ging nicht :D');
die sache ändern :D

Taladan 20. Aug 2003 22:19

Re: Bildschirmauflösung
 
Also die anwendung existiert zur zeit nur in meinen Kopf. Es soll aber schon eine etwas grafisch aufwendigere werden. (mit hintergrundbild, dynamischen images, und sogar hintergründen hinter listbox usw (ich weiß, ich werd wohl mich mit eigenen komponenten rumärgern mussen, und das als newbie).

Also im Stiel ungefähr so

Meine Homepage

D. H. schwarzer hintergrund, images und listboxen und teilweise andere elemente mit dem wie dort abgebildeten design von einen alten papier.
Gerne auch flammende Überschrift (leider hab ich keine ahnung wie ich DAS bewerkstellen soll, aber vielleicht hab ich ja noch ein geistesblitz)

da das design natürlich da sehr viel arbeit abverlangt, und das kopieren von design von form auf form nicht möglich ist, gibt es in delphi sowas wie dynamische anzeige (in html auch dynamisches html genannt), oder zumindest frames?


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz