![]() |
Re: Desktop auf den Kopf stellen?
Zitat:
![]() |
Re: Desktop auf den Kopf stellen?
Hallo 4toms,
Zitat:
Außerdem ist der Tisch nicht quadratförmig sondern 86 cm breit (tief) und 140 cm breit. Nach dem Motto alle mal aufstehen, der Monitor muss gedreht werden. Das kanns ja nicht sein. Ich bin mir sicher das so etwas geht. Gruß Alexander. |
Re: Desktop auf den Kopf stellen?
hallo alex,
nicos post bitte nicht übersehen, das ist die lösung ;) |
Re: Desktop auf den Kopf stellen?
Hallo NicoDE,
Zitat:
Zitat:
|
Re: Desktop auf den Kopf stellen?
Hallo phlux,
Zitat:
Alexabder |
Re: Desktop auf den Kopf stellen?
Hi!
Ich hab mich mal dank NicoDE's Hilfe an dem Code vergriffen, allerdings schmeißt der Compiler ne Fehlermessage aus, weil wohl die Var-Parameter nicht übereinstimmen, was wohl heißt das irgendwo was anders deklariert ist als es sein sollte (oder ich seh den Wald vor lauter bäumen nicht) Naja hier mal der Code, vllt findet anderer den Fehler, wie gesagt der Weg ist richtig, ist nur ein Fehler drin den ich nicht finde :(
Delphi-Quellcode:
Gedacht war jetzt, dass wenn man auf Button1 klickt sich das bild um 180Grad dreht und wenn man es dann schafft auf Button2 zu klicken das bild wieder normal wird. Aber wie gesagt der Compiler meckert.
//Konstanten übernommen aus dem PSDK, und Nicos mithilfe :)
const DMDO_0 = 0; DMDO_90 = 1; DMDO_180 = 2; DMDO_270 = 4; DM_DISPLAYORIENTATION = $00000080; //2 Buttons mit denen wir das Ganze mal spiegeln und wieder zurück setzen procedure TForm1.Button1Click(Sender: TObject); var aDevMode: TDevmode; begin aDevMode.dmSize := SizeOf(aDevMode); aDevMode.dmOrientation := DMDO_180; aDevMode.dmFields := DM_DISPLAYORIENTATION; ChangeDisplaySettingsEx(nil, @aDevMode, nil, 0, nil); end; procedure TForm1.Button2Click(Sender: TObject); var aDevMode: TDevmode; begin aDevMode.dmSize := SizeOf(aDevMode); aDevMode.dmOrientation := DMDO_0; aDevMode.dmFields := DM_DISPLAYORIENTATION; ChangeDisplaySettingsEx(nil, @aDevMode, nil, 0, nil); end; end. Ein bisschen laienhafte Erklärung gibts auch von mir: Mit ChangeDisplaySettingsEx können wir die Anzeigeeinstellungen ändern, die Funktion erwartet als einen Übergabeparameter einen Pointer auf eine devmode(TDevmode) Struktur, den rest können wir vergessen. In unserer Devmode Variable haben wir nur das nötigste ausgefüllt, mit dmOrientation geben wir an wie das Bild gedreht werden soll (die Konstanten stehen oben) bei dmFields geben wir an was jetzt genau an am Inhalt verändert wurde, in dem Fall halt die DisplayOrientation. Jetzt sollte man alles mit ChangeDisplaySettingsEx übergeben :kotz: und der Bildschirm sollte sich drehen, wie gesagt solte, ich find den Fehler nicht. mfg phlux :hi: |
Re: Desktop auf den Kopf stellen?
Wo meckert er denn ???
|
Re: Desktop auf den Kopf stellen?
So kompiliert es. Nur passieren tut nichts:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var aDevMode: TDevmode; begin SetLastError(0); Zeromemory(@aDevMode, sizeof(TDevmode)); aDevMode.dmSize := SizeOf(aDevMode); aDevMode. aDevMode.dmOrientation := DMDO_180; aDevMode.dmFields := DM_DISPLAYORIENTATION; ChangeDisplaySettingsEx(nil, aDevMode, Handle, 0, nil); ShowMessage(SysErrorMessage(GetLastError)); end; procedure TForm1.Button2Click(Sender: TObject); var aDevMode: TDevmode; begin SetLastError(0); Zeromemory(@aDevMode, sizeof(TDevmode)); aDevMode.dmSize := SizeOf(aDevMode); aDevMode.dmOrientation := DMDO_0; aDevMode.dmFields := DM_DISPLAYORIENTATION; ChangeDisplaySettingsEx(nil, aDevMode, Handle, 0, nil); ShowMessage(SysErrorMessage(GetLastError)); end; |
Re: Desktop auf den Kopf stellen?
Kann jetzt sein, dass ich ins Fettnäpfchen trete, aber wenn das so ist:
Code:
Und der erste Parameter nil ist:
LONG ChangeDisplaySettingsEx(
LPCTSTR lpszDeviceName, // name of display device LPDEVMODE lpDevMode, // graphics mode HWND hwnd, // not used; must be NULL DWORD dwflags, // graphics mode options LPVOID lParam // video parameters (or NULL) ); lpszDeviceName [in] Pointer to a null-terminated string that specifies the display device whose graphics mode will change. Only display device names as returned by EnumDisplayDevices are valid. See EnumDisplayDevices for further information on the names associated with these display devices.
Delphi-Quellcode:
Dann kann das doch gar nicht gehen ... oder ? :gruebel:
ChangeDisplaySettingsEx(nil, aDevMode, Handle, 0, nil);
|
Re: Desktop auf den Kopf stellen?
Da ist was wares darnn. Abert ich habe nur den Quellcode zum compilieren gebracht.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:49 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