Einzelnen Beitrag anzeigen

HannsW

Registriert seit: 6. Jan 2010
26 Beiträge
 
#9

Re: Verfügbare Druckerschächte eines Druckers anzeigen

  Alt 25. Jan 2010, 14:10
Zitat von uwewo:
Probier mal das

Delphi-Quellcode:
function GetPaperTrays: TStrings;
var pDevMode : PDeviceMode;
    bin : array[0..255,0..23] of char;
    i : DWORD;
    Res : DWORD;
begin
if (FPaperTrays = nil) then begin
  try
    FPaperTrays := TStringList.Create;
  except
    FPaperTrays.Free;
    FPaperTrays := nil;
  raise;
  end;
end;
   FPaperTrays.Clear;
   GetPrinter(ADevice,ADriver,APort,hDMode);
   pDevMode := nil;
   Res := DeviceCapabilities(ADevice,APort,DC_BINNAMES,PCHAR(@(bin[0][0])),pDevMode);

    for i := 0 to Res-1 do
      begin
          FPaperTrays.Add(bin[i]);
      end;
    Result := FPaperTrays;
end;
Uwe
Hallo Uwe,
liegt ja nun schonein wenig zurück, aber: es klappt nicht!

FPapertrays: TStringList; in die VAR einzufügen habe ich geschafft, aber
Delphi-Quellcode:
  GetPrinter(ADevice,ADriver,APort,hDMode);
  pDevMode := nil;
  Res := DeviceCapabilities(ADevice,APort,DC_BINNAMES,PCHAR(@(bin[0][0])),pDevMode);
ergibt unter D5 diese Meldungen
Zitat:
undefinierter Bezeichner : 'GetPrinter'
undefinierter Bezeichner : 'ADevice'
undefinierter Bezeichner : 'APort'
inkompatible Typen: 'Integer' und 'PChar'
Die Aufrufparameter von "DeviceCapabilities" stimmen nicht mitdenen in windows.pas überein,
und es übersteigt meine Fähigkeiten, dies Fehler zu lösen
Hanns
  Mit Zitat antworten Zitat