Einzelnen Beitrag anzeigen

Y.Elm

Registriert seit: 19. Sep 2011
Ort: Berlin
21 Beiträge
 
Delphi 2010 Professional
 
#15

AW: Re: Monitor X per ChangeDisplaySettingsEx (A) akivieren ?

  Alt 23. Nov 2011, 11:10
Bei delphi 2009 bringt diese Zeile


lRes := ChangeDisplaySettingsEx( PChar('\\.\DISPLAY2'),
TDevMode(lDevMode),
0,
CDS_UPDATEREGISTRY,
0);

einen Typenumwandlungsfehler, wie muss es denn geändert werden das es auch mit delphi 2009 geht?

Martin
Die Antwort kommt wohl etwas spät, aber vielleicht hilft es ja doch noch jemandem:
Das Record TPrinterMonitor ist ja nicht viel mehr als eine Erweiterung von Windows.TDevMode.
Wenn man nun den ganzen Verweisen folgt, sieht man, dass TDevMode in älteren Delphi-Versionen letztendlich auf TDeviceModeA verweist. Durch die ganze Unicode-Umstellung ab Delphi 2009 verweist es nun aber auf TDeviceModeW.
Man muss also folgende Zeilen ändern, um TDevModeA_new zuweisungskompatibel zu TDeviceModeW zu machen:
Delphi-Quellcode:
  TDevModeW_new = packed record // Name wurde der Konsistenz halber geändert, ist aber nicht unbedingt nötig
    dmDeviceName: array[0..CCHDEVICENAME - 1] of WideChar;
    ...
    dmFormName: array[0..CCHFORMNAME - 1] of WideChar;
  Mit Zitat antworten Zitat