全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2956
推到 Plurk!
推到 Facebook!

如果沒有單據機的驅動程式,請問該如何用程式控制??

答題得分者是:cmf
firefall
一般會員


發表:22
回覆:36
積分:11
註冊:2002-05-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-01-26 18:06:37 IP:61.70.xxx.xxx 未訂閱
請問前輩大大,小弟目前手上有一個單據機接在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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-01-26 18:21:09 IP:61.70.xxx.xxx 未訂閱
// 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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-01-26 20:21:32 IP:61.70.xxx.xxx 未訂閱
引言: // 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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-01-26 20:31:51 IP:61.70.xxx.xxx 未訂閱
//  找不到 預設列表機    請先選擇 列表機    procedure TForm1.Button1Click(Sender: TObject); var Fprn:TextFile; begin PrinterSetupDialog1.Execute ; try AssignPrn(FPrn); Rewrite(FPrn); Writeln(FPrn,'1111'); finally CloseFile(FPrn) end; end;
------
︿︿
firefall
一般會員


發表:22
回覆:36
積分:11
註冊:2002-05-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-01-26 20:47:51 IP:61.70.xxx.xxx 未訂閱
引言: // 找不到 預設列表機 請先選擇 列表機 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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-01-26 20:55:04 IP:61.70.xxx.xxx 未訂閱
    把你的  vb範例  貼上來 我幫你改看看    
------
︿︿
firefall
一般會員


發表:22
回覆:36
積分:11
註冊:2002-05-14

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-01-26 21:20:16 IP:61.70.xxx.xxx 未訂閱
引言: 把你的 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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-01-26 22:54:03 IP:61.70.xxx.xxx 未訂閱
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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-01-27 00:52:50 IP:61.70.xxx.xxx 未訂閱
謝謝cmf大大,小弟馬上執行,發現單據機沒反應,可能是小弟的MSCOMM沒設定 好,小弟再試試看,再次感謝cmf大大!! 沒有您,我怎麼辦啊!
cmf
尊榮會員


發表:84
回覆:918
積分:1032
註冊:2002-06-26

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-01-27 08:58:49 IP:61.218.xxx.xxx 未訂閱
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

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-01-28 11:28:17 IP:61.70.xxx.xxx 未訂閱
可以了。謝謝cmf大大,再次感謝您 祝福祝福祝福祝福祝福祝福祝福祝福~~您 新春愉快~~~
chingrenn
一般會員


發表:10
回覆:13
積分:4
註冊:2003-03-04

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-04-30 16:47:47 IP:211.20.xxx.xxx 未訂閱
此API是否支援WIN2000
cmf
尊榮會員


發表:84
回覆:918
積分:1032
註冊:2002-06-26

發送簡訊給我
#13 引用回覆 回覆 發表時間:2003-05-05 16:06:33 IP:61.218.xxx.xxx 未訂閱
引言: 此API是否支援WIN2000
應該是可以 不妨試試 僅供參考,歡迎繼續發言
------
︿︿
chingrenn
一般會員


發表:10
回覆:13
積分:4
註冊:2003-03-04

發送簡訊給我
#14 引用回覆 回覆 發表時間:2003-05-07 10:24:51 IP:211.20.xxx.xxx 未訂閱
以下程式碼為修改上述源碼,列印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

發送簡訊給我
#15 引用回覆 回覆 發表時間:2003-05-07 10:38:31 IP:61.218.xxx.xxx 未訂閱
chingrenn:    1. 請問有出現錯誤訊息嗎?    2. VB 的 OPEN "LPT1"函數,目前我只知 DELPHI 能用 LP := CreateFile(Pchar('LPT1'),GENERIC_READ+GENERIC_WRITE,0,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);    僅供參考,歡迎繼續發言願以此功德 莊嚴佛淨土 上報四重恩 下濟三塗苦 若有見聞者 悉發菩提心 盡此一報身 同生極樂國
------
︿︿
chingrenn
一般會員


發表:10
回覆:13
積分:4
註冊:2003-03-04

發送簡訊給我
#16 引用回覆 回覆 發表時間:2003-05-07 15:43:52 IP:211.20.xxx.xxx 未訂閱
cmf 無錯誤訊息! lpBuffer := '#!A1' '#IMN50.0/30.0' '#!H60' '#ER' '#J3.8#T4.6' '#YB7/0M/12/3///BARCODE' '#G' '#Q3' '#!P1'; 以字串方式,可以嗎?
cmf
尊榮會員


發表:84
回覆:918
積分:1032
註冊:2002-06-26

發送簡訊給我
#17 引用回覆 回覆 發表時間:2003-05-07 15:49:58 IP:61.218.xxx.xxx 未訂閱
你有 廠商給的範例嗎? 若有請貼上來我幫你看看    僅供參考,歡迎繼續發言願以此功德 莊嚴佛淨土 上報四重恩 下濟三塗苦 若有見聞者 悉發菩提心 盡此一報身 同生極樂國
------
︿︿
chingrenn
一般會員


發表:10
回覆:13
積分:4
註冊:2003-03-04

發送簡訊給我
#18 引用回覆 回覆 發表時間:2003-05-07 15:58:02 IP:211.20.xxx.xxx 未訂閱
cmf 條碼機命令為 '#!A1#IMN50.0/30.0#!H60#ER#J3.8#T4.6#YB7/0M/12/3///BARCODE#G#Q3#!P1' 將以上字串存成 test.txt 以copy test.txt lpt1 可以印出
cmf
尊榮會員


發表:84
回覆:918
積分:1032
註冊:2002-06-26

發送簡訊給我
#19 引用回覆 回覆 發表時間:2003-05-07 16:13:37 IP:61.218.xxx.xxx 未訂閱
沒有 程式碼 可參考嗎 ?    任何程式語言皆可    僅供參考,歡迎繼續發言願以此功德 莊嚴佛淨土 上報四重恩 下濟三塗苦 若有見聞者 悉發菩提心 盡此一報身 同生極樂國
------
︿︿
chingrenn
一般會員


發表:10
回覆:13
積分:4
註冊:2003-03-04

發送簡訊給我
#20 引用回覆 回覆 發表時間:2003-05-07 17:20:14 IP:211.20.xxx.xxx 未訂閱
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

發送簡訊給我
#21 引用回覆 回覆 發表時間:2003-05-07 20:07:30 IP:61.70.xxx.xxx 未訂閱
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;    僅供參考,歡迎繼續發言願以此功德 莊嚴佛淨土 上報四重恩 下濟三塗苦 若有見聞者 悉發菩提心 盡此一報身 同生極樂國
------
︿︿
系統時間:2024-04-26 1:54:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!