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