Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Desktop auf den Kopf stellen? (https://www.delphipraxis.net/40361-desktop-auf-den-kopf-stellen.html)

NicoDE 15. Feb 2005 18:33

Re: Desktop auf den Kopf stellen?
 
Zitat:

Zitat von 4toms
der Link passt wie die Faust aufs Auge: Für Windows Mobile 2003 SE :cyclops:

Siehe MSDN-Library durchsuchenDEVMODE

axellang 15. Feb 2005 18:37

Re: Desktop auf den Kopf stellen?
 
Hallo 4toms,

Zitat:

Zitat von 4toms
Alexander ist doch auch ein Neuling hier :-D
Und das mit den Möbelrollen drunterschrauben hat er wohl auch noch nicht so ganz zur Kenntniss genommen :zwinker:

Eigentlich schon. Aber was mache ich mit den Kabeln?
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.

phlux 15. Feb 2005 18:39

Re: Desktop auf den Kopf stellen?
 
hallo alex,
nicos post bitte nicht übersehen, das ist die lösung ;)

axellang 15. Feb 2005 18:41

Re: Desktop auf den Kopf stellen?
 
Hallo NicoDE,

Zitat:

Zitat von NicoDE
Zitat:

Zitat von 4toms
der Link passt wie die Faust aufs Auge: Für Windows Mobile 2003 SE :cyclops:

Siehe MSDN-Library durchsuchenDEVMODE

genau! Ausserdem:
Zitat:

GDI can be used in all Windows-based applications.
Alexander

axellang 15. Feb 2005 18:42

Re: Desktop auf den Kopf stellen?
 
Hallo phlux,

Zitat:

Zitat von phlux
hallo alex,
nicos post bitte nicht übersehen, das ist die lösung ;)

die Posts haben sich überschnitten.

Alexabder

phlux 15. Feb 2005 20:39

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:
//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.
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.
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:

jfheins 15. Feb 2005 20:41

Re: Desktop auf den Kopf stellen?
 
Wo meckert er denn ???

Luckie 15. Feb 2005 20:44

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;

jfheins 15. Feb 2005 20:49

Re: Desktop auf den Kopf stellen?
 
Kann jetzt sein, dass ich ins Fettnäpfchen trete, aber wenn das so ist:
Code:
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.
Und der erste Parameter nil ist:
Delphi-Quellcode:
ChangeDisplaySettingsEx(nil, aDevMode, Handle, 0, nil);
Dann kann das doch gar nicht gehen ... oder ? :gruebel:

Luckie 15. Feb 2005 20:50

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.
Seite 3 von 4     123 4      

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