![]() |
Bildschirmauflösung steuern?
Hallo!
Ich bin gerade über ein kleines problem gestolpert: Mein Programm funktioniert & sieht gut aus.... ...allerdings nur auf MEINEM Rechner.... Da ich die relativ exotische Auflösung 1280x960 benutze, hat das Programm ein Problem auf den meisten anderen Rechnern, die es bisher über sich ergehen lassen mussten. Daher meine Frage: Kann ich die Bildschirmauflösung aus dem Programm heraus steuern? ---> Anfangs auf 1280x960 stellen, und beim verlassen wieder rückgängig ? :dp: |
Re: Bildschirmauflösung steuern?
Kannst du. Aber so macher benutzer dürfte was adgegen haben, wenn er noch mit anderen Programmen nebenbei arbeitet. Besonders schön fndet er es bestimmt, wenn er da anch seine zwei Dutzend Icons neu sortieren darf. Udn wenn es der Monitor nicht mit macht könnte es auch teuer für dich werden.
Also pass dein Programm an und nicht umgekehrt. Wie man seine Programme für verschiedenen Bildschirmauflösungen optimiert hatten wir hier auch schon desöfteren Besprochen. |
Re: Bildschirmauflösung steuern?
pass einfach im create deiner form die größe an
raik und zwar so
Delphi-Quellcode:
const
screenwidthdev : = 1250; screenheigthdev: = 960; var x,y:integer; begin scaled := true; x:= Screen.width; y:= Screen.Height; if(y <> ScreenHeightDev) or (x <> ScreenwidthDev) then begin frmMain.Height := (frmMain.ClientHeight* y div ScreenHeightDev) + frmMain.Height- frmMain.ClientHeight; frmMain.Width := (frmMain.ClientWidth * x div ScreenWidthDev) + frmMain.Height - frmMain.ClientHeight; scaleBy(x,Screenwidthdev); end; |
Re: Bildschirmauflösung steuern?
Wie Luckie schon sagte: Klar kann man die Auflösung per Delphi ändern, allerdings würde wohl kaum jemand ein Programm benutzen, das einfach die Auflösung umstellt. Ich übrigens auch nicht. Man sollte beim Erstellen von Programmen und auch Webseiten immer darauf achten, dass die Seite auf allen Bildschirmen dargestellt werden kann. Da es immer noch User mit 800x600 gibt, stellt dies wohl den kleinsten (sinnvollen) Nenner dar.
|
Re: Bildschirmauflösung steuern?
tjaaa...
Das Problem ist, dass das Programm eigentlich fertig ist, bis auf die Kleinigkeit, dass man gleich zu beginn einige wichtige Schaltflächen nicht bedienen kann, da sie ´ausserhalb´ des Monitors liegen, sofern man nicht die Auflösung 1280x960 Pixeln eingestellt hat. :cyclops: Ich habe den Alternativvorschlag getestet, leider scheitert er an der Fehlermeldung, ´frmMain´ sei ein undeclared identifier.... Wie kann ich nun rabiaterweise doch noch die Auflösung steuern? bzw mein Programm in allen auflösungen vernünftig laufen lassen?? :gruebel: |
Re: Bildschirmauflösung steuern?
Schlechte Planung.
Zitat:
|
Re: Bildschirmauflösung steuern?
Ich habe den Quelltextvorschlag von kiar (s.o.) in meine start-unit eingebaut....
beim compilieren bleibt es wie gesagt leider an frmMain hängen :( |
Re: Bildschirmauflösung steuern?
vielleicht liegt es an meiner Delphi-version?
------>Delphi 7 Enterprise |
Re: Bildschirmauflösung steuern?
die frmmain ist die hauptform. die musst du schon an deine anpassen.
somit hatte luckie recht wenn er sagt, das er frmmain nicht kennt. die wird es bei dir nicht geben. das kommt von copy und paste raik |
Re: Bildschirmauflösung steuern?
:lol:
achsooo.... |
Re: Bildschirmauflösung steuern?
Nun gut... jetzt wird mein Bildschirm schwarz beim Programmstart, nach mehrmaligem hektischen alt+strg+entf-gedrücke, ist mein PC neu hochgefahren :gruebel:
das ist mein Quellcode für die ´start´-unit (create):
Code:
hmmm....
procedure TForm4.FormCreate(Sender: TObject);
const screenwidthdev = 1280; ScreenHeightDev = 960; var HTaskbar: HWND; x,y:integer; begin {screenresolution} scaled := true; screenwidth:= Screen.width; screenheigth:= Screen.Height; if(y <> ScreenHeightDev) or (x <> ScreenwidthDev) then begin form4.Height := (form4.ClientHeight* y div ScreenHeightDev) + form4.Height- form4.ClientHeight; form4.Width := (form4.ClientWidth * x div ScreenWidthDev) + form4.Height - form4.ClientHeight; scaleBy(x,Screenwidthdev); end; // Find handle of TASKBAR HTaskBar := FindWindow('Shell_TrayWnd', nil); // Disable the taskbar EnableWindow(HTaskBar, False); // Hide the taskbar ShowWindow(HTaskbar, SW_HIDE); BorderStyle := bsNone; Left := 0; Top := 0; Height := Screen.Height; Width := Screen.Width; form4.color:=clblack; end; |
Re: Bildschirmauflösung steuern?
oh ich bin soooo blöd...
Danke jungs!! es funzt jetzt! |
Re: Bildschirmauflösung steuern?
nochmal zum verständnis.
diese code mußt du in die formcreate einfügen von dem formular, welches du anpassen willst.dabei sollten die const im implemation teil deklariert werden. desweiteren solltest du im create bereich dann auch nicht mehr mir width und heigth spielen. bei mir funktioniert der code einwandfrei. raik |
Re: Bildschirmauflösung steuern?
woran lag es denn?
|
Re: Bildschirmauflösung steuern?
Ich hoffe den teil:
Delphi-Quellcode:
Hast du wieder rausgenommen. Oder hast du einen Grund den Computer für den Benutzer nahezu unbedienbar zu machen?
// Find handle of TASKBAR
HTaskBar := FindWindow('Shell_TrayWnd', nil); // Disable the taskbar EnableWindow(HTaskBar, False); // Hide the taskbar ShowWindow(HTaskbar, SW_HIDE); BorderStyle := bsNone; Left := 0; Top := 0; Height := Screen.Height; Width := Screen.Width; |
Re: Bildschirmauflösung steuern?
Zitat:
|
Re: Bildschirmauflösung steuern?
Ich hatte nur ein paar variablen falsch benannt, DARAN lags, Kiar.
(anstatt dein x,y hatte ich screenheigth/screenwidth genommen, weite runten aber nicht verändert...fertig) :lol: Nur ein bisserl mies ist: Mein Programm umfasst ca.40 Forms/Units...... Muss ich da jetzt für JEDE einzelne Form diesen code in das formcreate packen?? :wiejetzt: |
Re: Bildschirmauflösung steuern?
mache in einer unit eine eigene procedure und rufe diese im create der jeweiligen form auf.
raik |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz