Registriert seit: 28. Feb 2005
Ort: Berlin
281 Beiträge
Delphi 7 Professional
|
Monitor 2 Ansteuern?
19. Apr 2005, 09:10
Hallo ,
Ich habe eine Redion 9800 se Grafik Karte. Ich möchte nun den 2 Monitor ansteuern mit folgendem code.
Delphi-Quellcode:
Type
TPOINTL = Packed Record
x : DWORD;
y : DWORD;
End;
TPrinterMonitor = Packed Record
Case Integer Of
0 : (Paper: Packed Record
dmOrientation: SHORT;
dmPaperSize: SHORT;
dmPaperLength: SHORT;
dmPaperWidth: SHORT;
dmScale: SHORT;
dmCopies: SHORT;
dmDefaultSource: SHORT;
dmPrintQuality: SHORT;
End;);
1 : (Monitor: Packed Record
dmPosition : TPOINTL;
dmDisplayOrientation : DWORD;
dmDisplayFixedOutput : DWORD;
End;)
End;
TDevModeA_new = packed record
dmDeviceName: array[0..CCHDEVICENAME - 1] of AnsiChar;
dmSpecVersion: Word;
dmDriverVersion: Word;
dmSize: Word;
dmDriverExtra: Word;
dmFields: DWORD;
/// !!!
Dual : TPrinterMonitor;
/// !!!
dmColor: SHORT;
dmDuplex: SHORT;
dmYResolution: SHORT;
dmTTOption: SHORT;
dmCollate: SHORT;
dmFormName: array[0..CCHFORMNAME - 1] of AnsiChar;
dmLogPixels: Word;
dmBitsPerPel: DWORD;
dmPelsWidth: DWORD;
dmPelsHeight: DWORD;
dmDisplayFlags: DWORD;
dmDisplayFrequency: DWORD;
dmICMMethod: DWORD;
dmICMIntent: DWORD;
dmMediaType: DWORD;
dmDitherType: DWORD;
dmICCManufacturer: DWORD;
dmICCModel: DWORD;
dmPanningWidth: DWORD;
dmPanningHeight: DWORD;
end;
procedure TForm1.Button1Click(Sender: TObject);
Var
lDevMode : TDevModeA_new;
lRes : Cardinal;
begin
FillChar(lDevMode, SizeOf(lDevMode), 0);
lDevMode.dmSize := SizeOf(lDevMode);
lDevMode.dmBitsPerPel := 32;
lDevMode.dmDisplayFrequency := 85; // alles hard kodiert für meinen 2. Monitor
lDevMode.dmPelsWidth := 1280;
lDevMode.dmPelsHeight := 1024;
lDevMode.Dual.Monitor.dmPosition.x := 1280; // die Weite/Auflösung des primären Monitors bzw. Lage des Monitors in Relation zum primären Monitor mit 0,0 oben links
lDevMode.Dual.Monitor.dmPosition.y := 0;
lDevMode.dmFields := DM_BITSPERPEL Or
DM_DISPLAYFREQUENCY Or
DM_PELSWIDTH Or
DM_PELSHEIGHT Or
DM_POSITION;
lRes := ChangeDisplaySettingsEx( PChar('\\.\DISPLAY2'),
TDevMode(lDevMode),
0,
CDS_UPDATEREGISTRY,
0);
If lres <> 0 Then
ShowMessage('hat nicht geklappt');
end;
end.
Es funtioniert aber nur über den S-Video ausgang. Ich hätte es aber gerne das er es über den DVI ausgang macht.
MfG
Bernd Es ist keine Schande, nichts zu wissen, wohl aber, nichts lernen zu wollen.
Sokrates
|