Hola a tod@s.
Tengo esta función para activar/desactivar la función "duplex" de las impresoras:
Código Delphi
[-]
Function funcSetDuplex(Duplex : Boolean): Boolean;
var
Device, Driver, Port : array[0..255] of char;
hDMode : THandle;
pMode, PDMode : PDevMode;
begin
Result := False;
printer.GetPrinter(Device, Driver, Port, hDMode);
if hDMode <> 0 then begin
pDMode := GlobalLock(hDMode);
if pDMode <> nil then begin
if DeviceCapabilitiesA(Device, Port, DC_DUPLEX, nil, nil) = 1 then begin
Result := True;
pDMode^.dmFields := pDMode^.dmFields or dm_Duplex;
if Duplex
then pDMode^.dmDuplex := dmDup_VERTICAL
else pDMode^.dmDuplex := dmDup_SIMPLEX;
end
else Result := False;
GlobalUnlock(hDMode);
end;
end;
end;
Esto con mi Delphi 2007 va perfectamente pero estoy intentando pasarla a Delphi Berlin y me da el siguiente error al compilar:
Incompatible types: 'PAnsiChar' and 'array[0..255] or Char
señalando la variable "Device" de la linea "if DeviceCapabilitiesA(Device, Port, DC_DUPLEX, nil, nil) = 1 then begin"
Imagino que habrá que hacer alguna conversión de tipos de variable pero la verdad es que no doy con la tecla.
¿Alguien me puede iluminar?
Gracias y un saludo