Eigentlich ist das nicht so schwierig:
Delphi-Quellcode:
procedure Tfrmmain.opendrawer(nr:integer);
Var
FH:THandle;
Buff: array[0..5] of char;
RetW:DWORD;
port:string;
cmd:ansistring;
acmd:ansistring;
p:pansichar;
stext,sdrucker:string;
begin
if dm.Schublade1typ=drawerprinter then // Drucker
begin
if nr=2 then
stext:=dm.Steuertext2 else
stext:=dm.steuertext;
sdrucker:=dm.Steuertextdrucker;
//if (dm.Steuertextoption=2) or (dm.Steuertextoption=1) then
begin
if (stext='Epson1') or (stext='Epson') then
acmd:=#27#112#48#250#250;
if stext='Epson2' then
acmd:=#27#112#49#250#250;
if stext='Bixolon SRP350' then
acmd:=#27#112#48#50#250;
if stext='Star1' then
acmd:=#7;
if stext='Star2' then
acmd:=#27#7#11#55#7;
if stext='Wincor1' then
acmd:=#27#48;
if stext='Boca' then
acmd:='#$1#$C';
p:=AnsiStrAlloc(length(acmd));
p:=StrPCopy(p,acmd);
rawdatatoprinter(pwidechar(sdrucker),pbyte(p),length(acmd));
if dm.Schubladedelay>0 then
sleep(dm.schubladedelay);
end;
end;
end;
Die Procedure ist etwas abgekürzt, die anderen Arten der Schubladensteuerung habe ich weggelassen.