AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Desktop auf den Kopf stellen?

Ein Thema von axellang · begonnen am 14. Feb 2005 · letzter Beitrag vom 16. Feb 2005
Antwort Antwort
Seite 3 von 4     123 4      
NicoDE
(Gast)

n/a Beiträge
 
#21

Re: Desktop auf den Kopf stellen?

  Alt 15. Feb 2005, 19:33
Zitat von 4toms:
der Link passt wie die Faust aufs Auge: Für Windows Mobile 2003 SE
Siehe MSDN-Library durchsuchenDEVMODE
  Mit Zitat antworten Zitat
axellang

Registriert seit: 3. Mai 2003
Ort: München
138 Beiträge
 
Delphi XE2 Enterprise
 
#22

Re: Desktop auf den Kopf stellen?

  Alt 15. Feb 2005, 19:37
Hallo 4toms,

Zitat von 4toms:
Alexander ist doch auch ein Neuling hier
Und das mit den Möbelrollen drunterschrauben hat er wohl auch noch nicht so ganz zur Kenntniss genommen
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.
Alexander Lang
  Mit Zitat antworten Zitat
Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#23

Re: Desktop auf den Kopf stellen?

  Alt 15. Feb 2005, 19:39
hallo alex,
nicos post bitte nicht übersehen, das ist die lösung
Christian "phlux" Arndt
  Mit Zitat antworten Zitat
axellang

Registriert seit: 3. Mai 2003
Ort: München
138 Beiträge
 
Delphi XE2 Enterprise
 
#24

Re: Desktop auf den Kopf stellen?

  Alt 15. Feb 2005, 19:41
Hallo NicoDE,

Zitat von NicoDE:
Zitat von 4toms:
der Link passt wie die Faust aufs Auge: Für Windows Mobile 2003 SE
Siehe MSDN-Library durchsuchenDEVMODE
genau! Ausserdem:
Zitat:
GDI can be used in all Windows-based applications.
Alexander
Alexander Lang
  Mit Zitat antworten Zitat
axellang

Registriert seit: 3. Mai 2003
Ort: München
138 Beiträge
 
Delphi XE2 Enterprise
 
#25

Re: Desktop auf den Kopf stellen?

  Alt 15. Feb 2005, 19:42
Hallo phlux,

Zitat von phlux:
hallo alex,
nicos post bitte nicht übersehen, das ist die lösung
die Posts haben sich überschnitten.

Alexabder
Alexander Lang
  Mit Zitat antworten Zitat
Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#26

Re: Desktop auf den Kopf stellen?

  Alt 15. Feb 2005, 21:39
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 und der Bildschirm sollte sich drehen, wie gesagt solte, ich find den Fehler nicht.

mfg phlux
Christian "phlux" Arndt
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#27

Re: Desktop auf den Kopf stellen?

  Alt 15. Feb 2005, 21:41
Wo meckert er denn ???
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#28

Re: Desktop auf den Kopf stellen?

  Alt 15. Feb 2005, 21:44
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;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#29

Re: Desktop auf den Kopf stellen?

  Alt 15. Feb 2005, 21:49
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:
ChangeDisplaySettingsEx(nil, aDevMode, Handle, 0, nil); Dann kann das doch gar nicht gehen ... oder ?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#30

Re: Desktop auf den Kopf stellen?

  Alt 15. Feb 2005, 21:50
Da ist was wares darnn. Abert ich habe nur den Quellcode zum compilieren gebracht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:40 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