如果沒有單據機的驅動程式,請問該如何用程式控制?? |
答題得分者是:cmf
|
firefall
一般會員 發表:22 回覆:36 積分:11 註冊:2002-05-14 發送簡訊給我 |
請問前輩大大,小弟目前手上有一個單據機接在lpt1上,廠商給的是vb範例,能列印,但無驅動程式。小弟用
var
Fprn:TextFile;
begin AssignPrn(FPrn);//在這裡,delphi要求要有印表機
Rewrite(FPrn);
Printer.Canvas.Font.Name := '細明體';
Printer.Canvas.TextOut(1,1,'111');
Writeln(FPrn,memo1.Lines.Text);
finally
CloseFile(FPrn)
end;
end; 請教各位大大,該如何改才能列印,小弟只要列印文字即可。謝謝!!
|
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
// UESE Printers;
unit Unit1; interface uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, ExtCtrls, StdCtrls,Printers; type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations } public
{ Public declarations }
end; var
Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject);
var
Fprn:TextFile;
begin try
AssignPrn(FPrn);
Rewrite(FPrn);
Writeln(FPrn,'1111');
finally
CloseFile(FPrn)
end;
end; end.
------
︿︿ |
firefall
一般會員 發表:22 回覆:36 積分:11 註冊:2002-05-14 發送簡訊給我 |
引言: // UESE Printers; unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, ExtCtrls, StdCtrls,Printers; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); var Fprn:TextFile; begin try AssignPrn(FPrn); Rewrite(FPrn); Writeln(FPrn,'1111'); finally CloseFile(FPrn) end; end; end.報告CMF大大 小弟用了大大的方法之後,出現錯誤訊息"there is no defalut printer currently selected" 請問大大該如何解決 |
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
|
firefall
一般會員 發表:22 回覆:36 積分:11 註冊:2002-05-14 發送簡訊給我 |
引言: // 找不到 預設列表機 請先選擇 列表機 procedure TForm1.Button1Click(Sender: TObject); var Fprn:TextFile; begin PrinterSetupDialog1.Execute ; try AssignPrn(FPrn); Rewrite(FPrn); Writeln(FPrn,'1111'); finally CloseFile(FPrn) end; end;嗚嗚~~大大,我沒有它的驅動程式,我的印表機是Hp 930c ,不能用!? ,請問cmf大大,我該怎麼做 |
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
|
firefall
一般會員 發表:22 回覆:36 積分:11 註冊:2002-05-14 發送簡訊給我 |
引言: 把你的 vb範例 貼上來 我幫你改看看Cmf大大 您真好 小弟已上傳整個範例 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=25395 VB程式部分內容 VERSION 5.00 Object = "{648A5603-2C6E-101B-82B6-000000000014}#1.1#0"; "MSCOMM32.OCX" Begin VB.Form Form1 Caption = "PP3000 Print Demo Program" ClientHeight = 4695 ClientLeft = 1125 ClientTop = 1335 ClientWidth = 7365 Icon = "Form1.frx":0000 LinkTopic = "Form1" PaletteMode = 1 'UseZOrder ScaleHeight = 4695 ScaleWidth = 7365 Begin VB.CommandButton Command4 Caption = "Receipt 8 CPI" BeginProperty Font Name = "Times New Roman" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 492 Left = 5040 TabIndex = 7 Top = 840 Width = 855 End Begin VB.CommandButton Command3 Caption = "Receipt 12 CPI" BeginProperty Font Name = "Times New Roman" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 492 Left = 4200 TabIndex = 6 Top = 840 Width = 855 End Begin VB.TextBox Text1 BeginProperty Font Name = "Courier New" Size = 12 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 3252 Left = 0 MaxLength = 42 MultiLine = -1 'True ScrollBars = 3 'Both TabIndex = 5 Text = "Form1.frx":0CCA Top = 1440 Width = 7212 End Begin VB.CommandButton Command2 Cancel = -1 'True Caption = "Exit" BeginProperty Font Name = "Times New Roman" Size = 12 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 492 Left = 6120 TabIndex = 4 Top = 840 Width = 1092 End Begin VB.CommandButton Command1 Caption = "Receipt 15 CPI" Default = -1 'True BeginProperty Font Name = "Times New Roman" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 492 Left = 3360 TabIndex = 3 Top = 840 Width = 855 End Begin VB.ComboBox Combo1 BeginProperty Font Name = "Times New Roman" Size = 12 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00FF0000& Height = 360 ItemData = "Form1.frx":0E24 Left = 1440 List = "Form1.frx":0E31 TabIndex = 2 Text = "LPT1" Top = 840 Width = 1692 End Begin MSCommLib.MSComm MSComm1 Left = 0 Top = 1200 _ExtentX = 794 _ExtentY = 794 _Version = 393216 DTREnable = -1 'True Handshaking = 3 OutBufferSize = 2048 RTSEnable = -1 'True End Begin VB.Label Label2 Caption = "Port Setting:" BeginProperty Font Name = "Times New Roman" Size = 12 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00FF0000& Height = 372 Left = 0 TabIndex = 1 Top = 840 Width = 1332 End Begin VB.Label Label1 BorderStyle = 1 'Fixed Single Caption = " POSiFLEX PP-3000 DEMO Program" BeginProperty Font Name = "Times New Roman" Size = 19.5 Charset = 0 Weight = 700 Underline = 0 'False Italic = -1 'True Strikethrough = 0 'False EndProperty ForeColor = &H00FF0000& Height = 612 Left = 0 TabIndex = 0 Top = 120 Width = 7332 End End Attribute VB_Name = "Form1" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Dim LptPort, Com1Port, Com2Port As String Private Sub Command1_Click() Call PFunction("M") End Sub Private Sub Command3_Click() Call PFunction("P") End Sub Private Sub Command4_Click() Call PFunction(":") End Sub Private Sub PFunction(mCPIcode As String) Dim OldCaption As String Dim TmpPort As String ' Note MSCOMM1... must Handshaking & BaudRate OldCaption = Form1.Caption TmpPort = Combo1.Text If TmpPort = Com1Port Or TmpPort = Com2Port Then Form1.Caption = "PP3000 Printing ..." '**Printing begin. On Error Resume Next MSComm1.CommPort = Val(Right(TmpPort, 1)) MSComm1.PortOpen = True ' Cash Drawer Open & Select ?? CPI character MSComm1.Output = Chr$(&H7) + Chr$(&H1B) + mCPIcode ' Font Double-Width MSComm1.Output = Chr$(&HE) + "POSiFLEX PP3000" + Chr$(&HD) + Chr$(&HA) MSComm1.Output = Chr$(&H14) + Chr$(&HD) + Chr$(&HA) ' Underline printing MSComm1.Output = Chr$(&H1B) + Chr$(&H2D) + "1" + "DATE : " + Date$ + Space(1) + "TIME : " + Time$ + Chr$(&HD) + Chr$(&HA) MSComm1.Output = Chr$(&H1B) + Chr$(&H2D) + "0" + Text1.Text MSComm1.Output = Chr$(&HD) + Chr$(&HA) ' Font Double-Width MSComm1.Output = Chr$(&HE) + "-- Thank You --" + Chr$(&HD) + Chr$(&HA) MSComm1.Output = Chr$(&H14) ' Form feed MSComm1.Output = Chr$(&HC) MSComm1.PortOpen = False Form1.Caption = OldCaption 'on error If Err.Number <> 0 Then Msg = "Error # " & Str(Err.Number) & " was generated by " _ & Err.Source & Chr(13) & Err.Description MsgBox Msg, , "Error", Err.HelpFile, Err.HelpContext End If On Error GoTo 0 '**Printing end. ElseIf TmpPort = LptPort Then Form1.Caption = "PP3000 Printing...LPT1" '**Printing begin. On Error Resume Next Open LptPort For Output As #1 ' Cash Drawer Open & Select 12CPI character Print #1, Chr$(&H7) + Chr$(&H1B) + mCPIcode ' Font Double-Width Print #1, Chr$(&HE) + "POSiFLEX PP3000" + Chr$(&HD) + Chr$(&HA); Print #1, Chr$(&H14) ' Underline printing Print #1, Chr$(&H1B) + Chr$(&H2D) + "1" + "DATE : " + Date$ + Space(1) + "TIME : " + Time$ + Chr$(&HD) + Chr$(&HA); Print #1, Chr$(&H1B) + Chr$(&H2D) + "0" + Text1.Text ' Font Double-Width Print #1, Chr$(&HE) + "-- Thank You --" + Chr$(&HD) + Chr$(&HA); Print #1, Chr$(&H14); ' Form feed Print #1, Chr$(&HC); Close #1 Form1.Caption = OldCaption 'on error If Err.Number <> 0 Then Msg = "Error # " & Str(Err.Number) & " was generated by " _ & Err.Source & Chr(13) & Err.Description MsgBox Msg, , "Error", Err.HelpFile, Err.HelpContext End If On Error GoTo 0 '**Printing end. End If End Sub Private Sub Command2_Click() Unload Form1 End Sub Private Sub Form_Load() LptPort = "LPT1" Com1Port = "COM1" Com2Port = "COM2" End Sub 麻煩大大,感謝您 |
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
unit Unit1; interface uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, OleCtrls, MSCommLib_TLB; const
LptPort = 'LPT1';
Com1Port = 'COM1';
Com2Port = 'COM2'; type
TForm1 = class(TForm)
MSComm1: TMSComm;
Button1: TButton;
Button2: TButton;
Button3: TButton;
ComboBox1: TComboBox;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1; procedure PFunction(mCPIcode : String); implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Lines.LoadFromFile('Form1.frx'); end; // Receipt 15 CPI
procedure TForm1.Button1Click(Sender: TObject);
begin
PFunction('M');
end; // Receipt 12 CPI
procedure TForm1.Button2Click(Sender: TObject);
begin
PFunction('P');
end;
// Receipt 8 CPI
procedure TForm1.Button3Click(Sender: TObject);
begin
PFunction(':');
end; procedure PFunction(mCPIcode : String);
var
OldCaption : String ;
TmpPort : String ;
LP:HFILE;
lpBuffer:string;
nNumberOfBytesToWrite:integer;
lpNumberOfBytesWritten:Cardinal ;
oo:OFSTRUCT;
begin TmpPort :=' Note MSCOMM1... must Handshaking & BaudRate';
OldCaption := Form1.Caption;
TmpPort := Form1.ComboBox1.Text; If (TmpPort = Com1Port) Or (TmpPort = Com2Port) Then
begin
Form1.Caption := 'PP3000 Printing ...'; //**Printing begin. if Com1Port = TmpPort then
Form1.MSComm1.CommPort := 1
else
if Com2Port = TmpPort then
Form1.MSComm1.CommPort := 2;
try Form1.MSComm1.PortOpen := True ;
// Cash Drawer Open & Select ?? CPI character
Form1.MSComm1.Output := Chr($7) + Chr($1B) + mCPIcode;
// Font Double-Width
Form1.MSComm1.Output := Chr($E) + 'POSiFLEX PP3000' + Chr($D) + Chr($A);
Form1.MSComm1.Output := Chr($14) + Chr($D) + Chr($A);
// Underline printing
Form1.MSComm1.Output := Chr($1B) + Chr($2D) + '1' + 'DATE : ' + DATETOSTR(NOW()) + ' ' +
'TIME : ' + TIMETOSTR(NOW()) + Chr($D) + Chr($A);
Form1.MSComm1.Output := Chr($1B) + Chr($2D) + '0' + Form1.Memo1.Lines.Text;
Form1.MSComm1.Output := Chr($D) + Chr($A);
// Font Double-Width
Form1.MSComm1.Output := Chr($E) + '-- Thank You --' + Chr($D) + Chr($A);
Form1.MSComm1.Output := Chr($14);
// Form feed
Form1.MSComm1.Output := Chr($C);
Form1.MSComm1.PortOpen := False ;
Form1.Caption := OldCaption; except
showMessage('Error ');
end; end
Else
If TmpPort = LptPort Then
begin
Form1.Caption := 'PP3000 Printing...LPT1';
//''**Printing begin. LP:=OpenFile(LptPort ,oo,OF_EXIST OR OF_READWRITE ); // ' Cash Drawer Open & Select 12CPI character
lpBuffer:=Chr($7) + Chr($1B) + mCPIcode;
nNumberOfBytesToWrite:=strlen(Pchar(lpBuffer));
WriteFile(LP,lpBuffer,nNumberOfBytesToWrite,lpNumberOfBytesWritten,nil); // Font Double-Width
lpBuffer:= Chr($E) + 'POSiFLEX PP3000' + Chr($D) + Chr($A);
nNumberOfBytesToWrite:=strlen(Pchar(lpBuffer));
WriteFile(LP,lpBuffer,nNumberOfBytesToWrite,lpNumberOfBytesWritten,nil); lpBuffer:= Chr($14);
nNumberOfBytesToWrite:=strlen(pchar(lpBuffer));
WriteFile(LP,lpBuffer,nNumberOfBytesToWrite,lpNumberOfBytesWritten,nil); // Underline printing
lpBuffer := Chr($1B) + Chr($2D) + '1' + 'DATE : ' + DATETOSTR(NOW()) + ' ' +
'TIME : ' + TIMETOSTR(NOW()) + Chr($D) + Chr($A); nNumberOfBytesToWrite:=strlen(Pchar(lpBuffer));
WriteFile(LP,lpBuffer,nNumberOfBytesToWrite,lpNumberOfBytesWritten,nil); lpBuffer := Chr($1B) + Chr($2D) + '0' + Form1.Memo1.Lines.Text;
nNumberOfBytesToWrite:=strlen(Pchar(lpBuffer));
WriteFile(LP,lpBuffer,nNumberOfBytesToWrite,lpNumberOfBytesWritten,nil); // Font Double-Width
lpBuffer:= Chr($E) + '-- Thank You --' + Chr($D) + Chr($A);
nNumberOfBytesToWrite:=strlen(Pchar(lpBuffer));
WriteFile(LP,lpBuffer,nNumberOfBytesToWrite,lpNumberOfBytesWritten,nil); lpBuffer:= Chr($14);
nNumberOfBytesToWrite:=strlen(Pchar(lpBuffer));
WriteFile(LP,lpBuffer,nNumberOfBytesToWrite,lpNumberOfBytesWritten,nil); // Form feed
lpBuffer:= Chr($C);
nNumberOfBytesToWrite:=strlen(Pchar(lpBuffer));
WriteFile(LP,lpBuffer,nNumberOfBytesToWrite,lpNumberOfBytesWritten,nil); _lclose(LP); // handle to file to close Form1.Caption := OldCaption; End;
End; end. 發表人 - cmf 於 2003/01/26 22:59:16
------
︿︿ |
firefall
一般會員 發表:22 回覆:36 積分:11 註冊:2002-05-14 發送簡訊給我 |
|
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
firefall: 你不用 設定 MSCOMM
因為 你是 LPT1 輸出的
所以你可以把 MSCOMM 移除掉 修改成下列 procedure PFunction(mCPIcode : String);
var
OldCaption : String ;
TmpPort : String ;
LP:HFILE;
lpBuffer:string;
nNumberOfBytesToWrite:integer;
lpNumberOfBytesWritten:Cardinal ; begin TmpPort :=' Note MSCOMM1... must Handshaking & BaudRate';
OldCaption := Form1.Caption;
TmpPort := 'LPT1'; Form1.Caption := 'PP3000 Printing...LPT1';
//''**Printing begin. LP := CreateFile(
PChar(TmpPort),
GENERIC_READ+GENERIC_WRITE,
0,
nil,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0); // ' Cash Drawer Open & Select 12CPI character
lpBuffer:=Chr($7) + Chr($1B) + mCPIcode;
nNumberOfBytesToWrite:=strlen(Pchar(lpBuffer));
WriteFile(LP,lpBuffer,nNumberOfBytesToWrite,lpNumberOfBytesWritten,nil); // Font Double-Width
lpBuffer:= Chr($E) + 'POSiFLEX PP3000' + Chr($D) + Chr($A);
nNumberOfBytesToWrite:=strlen(Pchar(lpBuffer));
WriteFile(LP,lpBuffer,nNumberOfBytesToWrite,lpNumberOfBytesWritten,nil); lpBuffer:= Chr($14);
nNumberOfBytesToWrite:=strlen(pchar(lpBuffer));
WriteFile(LP,lpBuffer,nNumberOfBytesToWrite,lpNumberOfBytesWritten,nil); // Underline printing
lpBuffer := Chr($1B) + Chr($2D) + '1' + 'DATE : ' + DATETOSTR(NOW()) + ' ' +
'TIME : ' + TIMETOSTR(NOW()) + Chr($D) + Chr($A); nNumberOfBytesToWrite:=strlen(Pchar(lpBuffer));
WriteFile(LP,lpBuffer,nNumberOfBytesToWrite,lpNumberOfBytesWritten,nil); lpBuffer := Chr($1B) + Chr($2D) + '0' + Form1.Memo1.Lines.Text;
nNumberOfBytesToWrite:=strlen(Pchar(lpBuffer));
WriteFile(LP,lpBuffer,nNumberOfBytesToWrite,lpNumberOfBytesWritten,nil); // Font Double-Width
lpBuffer:= Chr($E) + '-- Thank You --' + Chr($D) + Chr($A);
nNumberOfBytesToWrite:=strlen(Pchar(lpBuffer));
WriteFile(LP,lpBuffer,nNumberOfBytesToWrite,lpNumberOfBytesWritten,nil); lpBuffer:= Chr($14);
nNumberOfBytesToWrite:=strlen(Pchar(lpBuffer));
WriteFile(LP,lpBuffer,nNumberOfBytesToWrite,lpNumberOfBytesWritten,nil); // Form feed
lpBuffer:= Chr($C);
nNumberOfBytesToWrite:=strlen(Pchar(lpBuffer));
WriteFile(LP,lpBuffer,nNumberOfBytesToWrite,lpNumberOfBytesWritten,nil); CloseHandle(LP ); // handle to file to close Form1.Caption := OldCaption; End;
發表人 - cmf 於 2003/01/27 09:47:09 發表人 - cmf 於 2003/01/27 09:53:26
------
︿︿ |
firefall
一般會員 發表:22 回覆:36 積分:11 註冊:2002-05-14 發送簡訊給我 |
|
chingrenn
一般會員 發表:10 回覆:13 積分:4 註冊:2003-03-04 發送簡訊給我 |
|
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
|
chingrenn
一般會員 發表:10 回覆:13 積分:4 註冊:2003-03-04 發送簡訊給我 |
以下程式碼為修改上述源碼,列印barcode print,但 LPT1送出卻無動作
希望大大可否幫個忙,
另外請問VB 有OPEN "LPT1"函數來將資料寫入LPT,不知 DELPHI 可否有此函數 procedure PFunction();
var
OldCaption : String ;
TmpPort : String ;
LP:HFILE;
lpBuffer:string;
nNumberOfBytesToWrite:integer;
lpNumberOfBytesWritten:Cardinal ;
begin TmpPort :='LPT1';
OldCaption := Form1.Caption;
if TmpPort = 'LPT1' then
try
Form1.Caption := 'Printing...LPT1';
LP := CreateFile(
PChar(TmpPort),
GENERIC_READ GENERIC_WRITE,
0,
nil,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
if(LP=invalid_Handle_value) then
begin
showmessage('通訊阜錯誤');
end;
lpBuffer := '#!A1'
'#IMN50.0/30.0'
'#!H60'
'#ER'
'#J3.8#T4.6'
'#YB7/0M/12/3///BARCODE'
'#G'
'#Q3'
'#!P1'; nNumberOfBytesToWrite:=strlen(Pchar(lpBuffer));
WriteFile (LP,lpBuffer,nNumberOfBytesToWrite,lpNumberOfBytesWritten,nil);
closeHandle(LP ); // handle to file to close
Form1.Caption := OldCaption;
except
showMessage('Error ');
end; End;
|
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
|
chingrenn
一般會員 發表:10 回覆:13 積分:4 註冊:2003-03-04 發送簡訊給我 |
|
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
|
chingrenn
一般會員 發表:10 回覆:13 積分:4 註冊:2003-03-04 發送簡訊給我 |
|
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
|
chingrenn
一般會員 發表:10 回覆:13 積分:4 註冊:2003-03-04 發送簡訊給我 |
cmf Private Sub Command1_Click()
Dim i As Integer
Dim barStr, defultStr As String
defultStr = Form2.Text1.Text
Command1.Enabled = False
'For i = 0 To Val(Form2.Text2.Text) - 1
Open "LPT1:" For Output Access Write As #1
Print #1, "#!A1"
Print #1, "#IMN50.0/30.0"
Print #1, "#!H60"
Print #1, "#PO 2"
Print #1, "#PR5/5"
Print #1, "#ER"
Print #1, "#R000.00/000.00"
' Print #1, "#J3.8#T4.6#YB7/0M/12/3///" & defultStr & "#G"
Print #1, "#J3.8#T4.6#YB7/0M/12/3///BARCODE#G"
Print #1, "#Q1"
Print #1, "#!P1"
Close #1
barStr = InputBox("Message", "Title", "", 500, 500)
If defultStr <> barStr Then
List1.AddItem "第" & i & "筆資料錯誤 " & defultStr
'Else
' MsgBox "恭喜,資料正確繼續列印"
End If
'Next i
Command1.Enabled = True
End Sub //這是我用vb寫的
delphi 方式如何將資料送入"LPT1"
|
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
SORRY 實在看不出 差異在哪 ? 再試試吧! procedure PFunction();
var
OldCaption : String ;
TmpPort : String ;
LP:HFILE;
lpBuffer:string;
nNumberOfBytesToWrite:integer;
lpNumberOfBytesWritten:Cardinal ;
begin TmpPort :='LPT1';
OldCaption := Form1.Caption;
if TmpPort = 'LPT1' then
try
Form1.Caption := 'Printing...LPT1';
LP := CreateFile(PChar(TmpPort),GENERIC_READ+GENERIC_WRITE,0,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0); if(LP=invalid_Handle_value) then
begin
showmessage('通訊阜錯誤');
exit;
end; lpBuffer := '#!A1' ;
nNumberOfBytesToWrite:=strlen(Pchar(lpBuffer));
WriteFile (LP,lpBuffer,nNumberOfBytesToWrite,lpNumberOfBytesWritten,nil); lpBuffer :='#IMN50.0/30.0' ;
nNumberOfBytesToWrite:=strlen(Pchar(lpBuffer));
WriteFile (LP,lpBuffer,nNumberOfBytesToWrite,lpNumberOfBytesWritten,nil); lpBuffer :='#!H60' ;
nNumberOfBytesToWrite:=strlen(Pchar(lpBuffer));
WriteFile (LP,lpBuffer,nNumberOfBytesToWrite,lpNumberOfBytesWritten,nil); lpBuffer :='#ER' ;
nNumberOfBytesToWrite:=strlen(Pchar(lpBuffer));
WriteFile (LP,lpBuffer,nNumberOfBytesToWrite,lpNumberOfBytesWritten,nil); lpBuffer :='#J3.8#T4.6' ;
nNumberOfBytesToWrite:=strlen(Pchar(lpBuffer));
WriteFile (LP,lpBuffer,nNumberOfBytesToWrite,lpNumberOfBytesWritten,nil); lpBuffer :='#YB7/0M/12/3///BARCODE' ;
nNumberOfBytesToWrite:=strlen(Pchar(lpBuffer));
WriteFile (LP,lpBuffer,nNumberOfBytesToWrite,lpNumberOfBytesWritten,nil); lpBuffer :='#G' ;
nNumberOfBytesToWrite:=strlen(Pchar(lpBuffer));
WriteFile (LP,lpBuffer,nNumberOfBytesToWrite,lpNumberOfBytesWritten,nil); lpBuffer :='#Q3' ;
nNumberOfBytesToWrite:=strlen(Pchar(lpBuffer));
WriteFile (LP,lpBuffer,nNumberOfBytesToWrite,lpNumberOfBytesWritten,nil); lpBuffer :='#!P1';
nNumberOfBytesToWrite:=strlen(Pchar(lpBuffer));
WriteFile (LP,lpBuffer,nNumberOfBytesToWrite,lpNumberOfBytesWritten,nil); closeHandle(LP ); // handle to file to close
Form1.Caption := OldCaption;
except
showMessage('Error ');
end; End; 願以此功德 莊嚴佛淨土 上報四重恩 下濟三塗苦 若有見聞者 悉發菩提心 盡此一報身 同生極樂國
------
︿︿ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |