Thema: Delphi Monitor 2 Ansteuern?

Einzelnen Beitrag anzeigen

Bernd29bln

Registriert seit: 28. Feb 2005
Ort: Berlin
281 Beiträge
 
Delphi 7 Professional
 
#1

Monitor 2 Ansteuern?

  Alt 19. Apr 2005, 08: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
  Mit Zitat antworten Zitat