?? unallego.pas
字號:
unit UNALLEGO;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls, ExtCtrls, Buttons, Spin, SPComm, Mask;
type
TFMALLEGO = class(TForm)
PageControl: TPageControl;
PAGE_A: TTabSheet;
ED_PORT: TRadioGroup;
ED_CUTTER: TCheckBox;
BitBtn1: TBitBtn;
TabSheet2: TTabSheet;
P_TEST_TEXT: TBitBtn;
Label5: TLabel;
ED_DENSITY: TSpinEdit;
Comm1: TComm;
Label6: TLabel;
ED_DIR: TRadioGroup;
Label7: TLabel;
P_TEXT: TEdit;
Label8: TLabel;
Label9: TLabel;
P_BARCODE: TEdit;
P_TEST_BARCODE: TBitBtn;
Label10: TLabel;
ED_DELAY: TSpinEdit;
ED_CODE: TComboBox;
Label16: TLabel;
Memo: TMemo;
Label17: TLabel;
Label1: TLabel;
ED_DOT: TSpinEdit;
ED_REF1: TMaskEdit;
ED_REF2: TMaskEdit;
Label2: TLabel;
P_CTEXT: TEdit;
P_TEST_CTEXT: TBitBtn;
procedure FormActivate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure P_TEST_TEXTClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure P_TEST_BARCODEClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ED_REF2Exit(Sender: TObject);
procedure P_TEST_CTEXTClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
FILENAME :STRING;
C_SPEED :STRING;
C_DOT :STRING;
C_DENSITY :STRING;
C_DIR :STRING;
C_REF1 :STRING;
C_REF2 :STRING;
C_CUTTER :STRING;
C_PORT :STRING;
C_DELAY :STRING;
C_CODE :STRING;
TF :TEXTFILE;
OUT_PORT :STRING;
PROCEDURE OPEN_PORT;
PROCEDURE READ_INI;
PROCEDURE WRITE_INI;
PROCEDURE CHANGE_INI;
PROCEDURE PRINT_TITLE;
PROCEDURE PRINT_END(CNT:INTEGER);
PROCEDURE PRINT_CLS;
PROCEDURE PRINT_ENTER_LABEL_FORMATTING_MODE;
PROCEDURE PRINT_BARCODE(X,Y,WIDTH,HEIGHT:INTEGER;EXPRESSION:STRING;SHOW_TEXT:BOOLEAN);
PROCEDURE PRINT_TEXT(FONT:STRING;X,Y:INTEGER;EXPRESSION:STRING);
PROCEDURE PRINT_TEXT_POINT(FONT:STRING;X,Y:INTEGER;EXPRESSION:STRING);
PROCEDURE PRINT_CUSTTEXT(EXPRESSION:STRING);
PROCEDURE PRINT_SAVE_CTEXT(CNAME:STRING;T_FONTSIZE:INTEGER;T_FONTNAME,EXPRESSION:STRING);
PROCEDURE PRINT_CTEXT(CNAME:STRING;X,Y:INTEGER);
FUNCTION TEXT_ENCODE_HEX(T_FONTSIZE:INTEGER;T_FONTNAME, T_STR:STRING):STRING;
end;
var
FMALLEGO: TFMALLEGO;
implementation
USES UN_UTL;
{$R *.DFM}
PROCEDURE TFMALLEGO.OPEN_PORT;
BEGIN
IF C_PORT = '0' THEN OUT_PORT := 'COM1';
IF C_PORT = '1' THEN OUT_PORT := 'COM2';
IF C_PORT = '2' THEN OUT_PORT := 'COM3';
IF C_PORT = '3' THEN OUT_PORT := 'COM4';
Comm1.CommName := OUT_PORT;
Comm1.StartComm;
Comm1.StopComm;
END;
PROCEDURE TFMALLEGO.READ_INI;
BEGIN
IF FileExists(FILENAME) = TRUE THEN
BEGIN
C_SPEED := FILE_READLN_REC(FILENAME,'LB_SPEED');
C_DOT := FILE_READLN_REC(FILENAME,'LB_DOT');
C_DENSITY:= FILE_READLN_REC(FILENAME,'LB_DENSITY');
C_DIR := FILE_READLN_REC(FILENAME,'LB_DIR');
C_REF1 := FILE_READLN_REC(FILENAME,'LB_REF1');
C_REF2 := FILE_READLN_REC(FILENAME,'LB_REF2');
C_CUTTER := FILE_READLN_REC(FILENAME,'LB_CUTTER');
C_PORT := FILE_READLN_REC(FILENAME,'LB_PORT');
C_DELAY := FILE_READLN_REC(FILENAME,'LB_DELAY');
C_CODE := FILE_READLN_REC(FILENAME,'LB_CODE');
END;
END;
PROCEDURE TFMALLEGO.WRITE_INI;
BEGIN
FILENAME := 'ALLEGRO.INI';
IF FileExists(FILENAME) = TRUE THEN
BEGIN
FILE_REWRITE(FILENAME);
// FILE_APPEND_LOG(FILENAME,'LB_SPEED' ,ED_SPEED.Text);
FILE_APPEND_LOG(FILENAME,'LB_DOT' ,ED_DOT.Text);
FILE_APPEND_LOG(FILENAME,'LB_DENSITY',ED_DENSITY.Text);
FILE_APPEND_LOG(FILENAME,'LB_DIR' ,INTTOSTR(ED_DIR.ItemIndex));
FILE_APPEND_LOG(FILENAME,'LB_REF1' ,ED_REF1.Text);
FILE_APPEND_LOG(FILENAME,'LB_REF2' ,ED_REF2.Text);
IF ED_CUTTER.CHECKED = FALSE THEN FILE_APPEND_LOG(FILENAME,'LB_CUTTER','0');
IF ED_CUTTER.CHECKED = TRUE THEN FILE_APPEND_LOG(FILENAME,'LB_CUTTER','1');
FILE_APPEND_LOG(FILENAME,'LB_PORT' ,INTTOSTR(ED_PORT.ItemIndex));
FILE_APPEND_LOG(FILENAME,'LB_DELAY',ED_DELAY.Text);
FILE_APPEND_LOG(FILENAME,'LB_CODE',INTTOSTR(ED_CODE.ItemIndex) );
END;
END;
PROCEDURE TFMALLEGO.CHANGE_INI;
BEGIN
// C_SPEED := ED_SPEED.Text;
C_DOT := ED_DOT.Text;
C_DENSITY := ED_DENSITY.Text;
C_DIR := INTTOSTR(ED_DIR.ItemIndex);
C_REF1 := ED_REF1.Text;
C_REF2 := ED_REF2.Text;
IF ED_CUTTER.Checked = FALSE THEN C_CUTTER := '0';
IF ED_CUTTER.Checked = TRUE THEN C_CUTTER := '1';
C_PORT := INTTOSTR(ED_PORT.ItemIndex);
C_DELAY := ED_DELAY.Text;
C_CODE := INTTOSTR(ED_CODE.ItemIndex);
END;
PROCEDURE TFMALLEGO.PRINT_TITLE;
VAR T_LIST : TSTRINGS;
BEGIN
T_LIST := TSTRINGLIST.Create;
CHANGE_INI;
OPEN_PORT;
T_LIST.Add(CHR(2)+'qA');
T_LIST.Add(CHR(2)+'e');
T_LIST.Add(CHR(2)+'f214'); //SET FORM STOP POSITION , BACKFEED
T_LIST.Add(CHR(2)+'V0'); //裁刀
T_LIST.Add(CHR(2)+'O0214'); //OFFSET偏量
T_LIST.Add(CHR(2)+'M0500'); //標簽最大長度
//T_LIST.Add('D'+C_DOT); //點的粗細 //要在 FORMAT MODE 后設
T_LIST.Add('W');
T_LIST.Add('PC'); //打印速度
T_LIST.Add('SC'); //FEED速度
T_LIST.Add('H'+C_DENSITY); //打印質量(溫度)
//T_LIST.Add('H07'); //打印質量(溫度)
IF TEST_OPEN_FILE(OUT_PORT) = FALSE THEN
BEGIN
SHOWMESSAGE('無法打開連接口');
END;
IF TEST_OPEN_FILE(OUT_PORT) = TRUE THEN
BEGIN
AssignFile(TF,OUT_PORT);
REWRITE(TF);
WRITELN(TF,T_LIST.TEXT);
CloseFile(TF);
{ C_CUTTER }
MEMO.Lines.Clear;
MEMO.Lines.TEXT := T_LIST.TEXT;
END;
T_LIST.FREE;
END;
PROCEDURE TFMALLEGO.PRINT_END(CNT:INTEGER);
BEGIN
DELAY(STRTOINTDEF(C_DELAY,0));
IF TEST_OPEN_FILE(OUT_PORT) = TRUE THEN
BEGIN
AssignFile(TF,OUT_PORT);
REWRITE(TF);
WRITELN(TF,'E');
CloseFile(TF);
MEMO.Lines.Add('E');
END;
END;
PROCEDURE TFMALLEGO.PRINT_CLS;
BEGIN
IF TEST_OPEN_FILE(OUT_PORT) = TRUE THEN
BEGIN
AssignFile(TF,OUT_PORT);
REWRITE(TF);
WRITELN(TF,'CLS');
CloseFile(TF);
END;
END;
PROCEDURE TFMALLEGO.PRINT_ENTER_LABEL_FORMATTING_MODE;
BEGIN
IF TEST_OPEN_FILE(OUT_PORT) = TRUE THEN
BEGIN
AssignFile(TF,OUT_PORT);
REWRITE(TF);
WRITELN(TF,CHR(2)+'L');
WRITELN(TF,'D'+C_DOT); //點的粗細
CloseFile(TF);
MEMO.Lines.Add(CHR(2)+'L');
END;
END;
PROCEDURE TFMALLEGO.PRINT_BARCODE(X,Y,WIDTH,HEIGHT:INTEGER;EXPRESSION:STRING;SHOW_TEXT:BOOLEAN);
VAR TP:STRING;
T_DIR:STRING;
BEGIN
//設定條形碼種類 ========================
IF SHOW_TEXT = FALSE THEN
case STRTOINTDEF(C_CODE,0) of
0 : TP := 'a';
1 : TP := 'o';
2 : TP := 'e';
3 : TP := 'f';
else TP := 'a';
end;
IF SHOW_TEXT = TRUE THEN
case STRTOINTDEF(C_CODE,0) of
0 : TP := 'A';
1 : TP := 'O';
2 : TP := 'E';
3 : TP := 'F';
else TP := 'A';
end;
T_DIR := INTTOSTR(STRTOINTDEF(C_DIR,0)+1);
X:= X + STRTOINTDEF(C_REF1,0);
Y:= Y + STRTOINTDEF(C_REF2,0);
IF TEST_OPEN_FILE(OUT_PORT) = TRUE THEN
BEGIN
AssignFile(TF,OUT_PORT);
REWRITE(TF);
WRITELN(TF,T_DIR+ TP
+ FILL_STR('0', INTTOSTR(WIDTH) , 'L' ,2 )
+ FILL_STR('0', INTTOSTR(HEIGHT) , 'L' ,3 )
+ FILL_STR('0', INTTOSTR(Y), 'L' ,4 )
+ FILL_STR('0', INTTOSTR(X), 'L' ,4 )
+ EXPRESSION );
CloseFile(TF);
MEMO.Lines.Add(T_DIR+ TP
+ FILL_STR('0', INTTOSTR(WIDTH) , 'L' ,2 )
+ FILL_STR('0', INTTOSTR(HEIGHT) , 'L' ,3 )
+ FILL_STR('0', INTTOSTR(Y), 'L' ,4 )
+ FILL_STR('0', INTTOSTR(X), 'L' ,4 )
+ EXPRESSION );
END;
END;
PROCEDURE TFMALLEGO.PRINT_TEXT(FONT:STRING;X,Y:INTEGER;EXPRESSION:STRING);
VAR T_DIR:STRING;
BEGIN
IF TEST_OPEN_FILE(OUT_PORT) = TRUE THEN
BEGIN
T_DIR := INTTOSTR(STRTOINTDEF(C_DIR,0)+1);
X:= X + STRTOINTDEF(C_REF1,0);
Y:= Y + STRTOINTDEF(C_REF2,0);
AssignFile(TF,OUT_PORT);
REWRITE(TF);
WRITELN(TF,T_DIR+ FONT
+ '11' + '000'
+ FILL_STR('0', INTTOSTR(Y), 'L' ,4 )
+ FILL_STR('0', INTTOSTR(X), 'L' ,4 )
+ EXPRESSION );
CloseFile(TF);
MEMO.Lines.Add(T_DIR+ FONT
+ '11' + '000'
+ FILL_STR('0', INTTOSTR(Y), 'L' ,4 )
+ FILL_STR('0', INTTOSTR(X), 'L' ,4 )
+ EXPRESSION );
END;
END;
PROCEDURE TFMALLEGO.PRINT_TEXT_POINT(FONT:STRING;X,Y:INTEGER;EXPRESSION:STRING);
VAR T_DIR, S:STRING;
BEGIN
IF TEST_OPEN_FILE(OUT_PORT) = TRUE THEN
BEGIN
T_DIR := INTTOSTR(STRTOINTDEF(C_DIR,0)+1);
X:= X + STRTOINTDEF(C_REF1,0);
Y:= Y + STRTOINTDEF(C_REF2,0);
S :=T_DIR+ '9'
+ '00' + FONT
+ FILL_STR('0', INTTOSTR(Y), 'L' ,4 )
+ FILL_STR('0', INTTOSTR(X), 'L' ,4 )
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -