Einzelnen Beitrag anzeigen

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