main.pas

Package [view]: TSC_SET.rar
Upload User: monqiqifly
Upload Date: 2008-05-15
Package Size: 2724k
Code Size: 8k
Category: Printing program
Development Platform: Delphi
  1. unit main;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5.   Dialogs, ComCtrls, StdCtrls, ExtCtrls, Buttons,printers, jpeg,IniFiles;
  6. type
  7.   TForm1 = class(TForm)
  8.     Panel3: TPanel;
  9.     Label5: TLabel;
  10.     StatusBar1: TStatusBar;
  11.     BitBtn1: TBitBtn;
  12.     BitBtn2: TBitBtn;
  13.     BitBtn3: TBitBtn;
  14.     BitBtn4: TBitBtn;
  15.     GroupBox1: TGroupBox;
  16.     Panel1: TPanel;
  17.     GroupBox2: TGroupBox;
  18.     GroupBox3: TGroupBox;
  19.     LabeledEdit1: TLabeledEdit;
  20.     LabeledEdit2: TLabeledEdit;
  21.     Label1: TLabel;
  22.     ComboBox1: TComboBox;
  23.     LabeledEdit3: TLabeledEdit;
  24.     LabeledEdit4: TLabeledEdit;
  25.     LabeledEdit7: TLabeledEdit;
  26.     LabeledEdit8: TLabeledEdit;
  27.     LabeledEdit9: TLabeledEdit;
  28.     LabeledEdit10: TLabeledEdit;
  29.     LabeledEdit11: TLabeledEdit;
  30.     LabeledEdit12: TLabeledEdit;
  31.     CheckBox1: TCheckBox;
  32.     Button1: TButton;
  33.     PrintDialog1: TPrintDialog;
  34.     Image2: TImage;
  35.     Image1: TImage;
  36.     lbledit_cur_print: TLabeledEdit;
  37.     BitBtn5: TBitBtn;
  38.     LabeledEdit5: TLabeledEdit;
  39.     CheckBox2: TCheckBox;
  40.     Label2: TLabel;
  41.     ComboBox2: TComboBox;
  42.     procedure BitBtn4Click(Sender: TObject);
  43.     procedure Button1Click(Sender: TObject);
  44.     procedure FormCreate(Sender: TObject);
  45.     procedure BitBtn1Click(Sender: TObject);
  46.     procedure BitBtn2Click(Sender: TObject);
  47.   private
  48.     { Private declarations }
  49.   public
  50.     { Public declarations }
  51.   end;
  52. var
  53.   Form1: TForm1;
  54.   tsc_host,LabelWidth, LabelHeight, Speed, Density, Sensor, Vertical,Offset,bar_x,bar_y,bar_h,bar_c,bar_font:pchar;
  55. procedure openport(PrinterName:pchar);stdcall;far; external 'tsclib.dll';
  56. procedure closeport; external 'tsclib.dll';
  57. procedure sendcommand(Command:pchar);stdcall;far;external 'tsclib.dll';
  58. procedure setup(LabelWidth, LabelHeight, Speed, Density, Sensor, Vertical,Offset:pchar);stdcall; far; external 'tsclib.dll';
  59. procedure downloadpcx(Filename,ImageName:pchar);stdcall;far;external 'tsclib.dll';
  60. procedure barcode(X, Y, CodeType, Height, Readable, Rotation, Narrow,Wide, Code :pchar); stdcall; far; external 'tsclib.dll';
  61. procedure printerfont(X, Y, FontName, Rotation, Xmul, Ymul, Content:pchar);stdcall;far; external 'tsclib.dll';
  62. procedure clearbuffer; external 'tsclib.dll';
  63. procedure printlabel(NumberOfSet, NumberOfCopoy:pchar);stdcall; far;external 'tsclib.dll';
  64. procedure formfeed;external 'tsclib.dll';
  65. procedure nobackfeed; external 'tsclib.dll'
  66. procedure windowsfont (X, Y, FontHeight, Rotation, FontStyle,FontUnderline : integer; FaceName,TextContect:pchar);stdcall;far;external 'tsclib.dll';
  67. implementation
  68. {$R *.dfm}
  69. procedure TForm1.BitBtn4Click(Sender: TObject);
  70. begin
  71.   application.Terminate;
  72. end;
  73. procedure TForm1.Button1Click(Sender: TObject);
  74. var 
  75. pDevice : pChar; 
  76. pDriver : pChar; 
  77. pPort : pChar; 
  78. hDMode : THandle; 
  79. begin
  80.   if PrintDialog1.Execute then
  81.   begin
  82.     GetMem(pDevice,cchDeviceName);
  83.     GetMem(pDriver,MAX_PATH);
  84.     GetMem(pPort,MAX_PATH);
  85.     Printer.GetPrinter(pDevice,pDriver,pPort,hDMode);
  86.     if lStrLen(pDriver) = 0 then
  87.     begin
  88.       GetProfileString('Devices',pDevice,'',pDriver,MAX_PATH);
  89.       pDriver[pos(',',pDriver) - 1] := #0;
  90.     end;
  91.     if lStrLen(pPort) = 0 then
  92.     begin
  93.       GetProfileString('Devices',pDevice,'',pPort,MAX_PATH);
  94.       lStrCpy(pPort,@pPort[lStrLen(pPort) + 2]);
  95.     end;
  96.     //Memo1.Lines.Add('Device := ' + StrPas(pDevice));
  97.     //Memo1.Lines.Add('Driver := ' + StrPas(pDriver));
  98.     //Memo1.Lines.Add('Port := ' + StrPas(pPort));
  99.     lbledit_cur_print.text:=strpas(pdevice);
  100.     FreeMem(pDevice,cchDeviceName);
  101.     FreeMem(pDriver,MAX_PATH);
  102.     FreeMem(pPort,MAX_PATH);
  103.   end;
  104. end;
  105. procedure TForm1.FormCreate(Sender: TObject);
  106. var
  107.    ini:TINIFILE;
  108. begin
  109.   if not fileexists('TSCLib.dll') then
  110.   begin
  111.     messagebox(0,'无法打印,请安装TSC条码打印机驱动程序。','农垦农产品质量追溯软件Ver2008',mb_ok+MB_ICONERROR);
  112.     exit;
  113.   end;
  114.     if not fileexists('bcpsetup.ini') then
  115.     begin
  116.       messagebox(0,'条码打印配置文件不存在,请使用本程序配置打印参数,并保存打印配置文件!','农垦农产品质量追溯软件Ver2008',mb_ok+MB_ICONERROR);
  117.     end
  118.     else
  119.     begin
  120.       //读取bcpsetup.ini的配置文件信息
  121.       ini:=TIniFile.Create('bcpsetup.ini');
  122.       tsc_host:=PCHAR(ini.ReadString('CONFIG','HOSTNAME','TSC TTP-343'));
  123.       LabelWidth:=PCHAR(ini.ReadString('CONFIG','LabelWidth','60'));//标签宽度
  124.       LabelHeight:=PCHAR(ini.ReadString('CONFIG','LabelHeight','45'));//标签高度
  125.       Speed:=PCHAR(ini.ReadString('CONFIG','Speed','10'));//列印速度
  126.       Density:=PCHAR(ini.ReadString('CONFIG','Density','10'));//列印浓度
  127.       Sensor:=PCHAR(ini.ReadString('CONFIG','Sensor','0'));//感应器类别
  128.       Vertical:=PCHAR(ini.ReadString('CONFIG','Vertical','2'));//垂直间距高度
  129.       Offset:=PCHAR(ini.ReadString('CONFIG','Offset','0'));//偏移距离
  130.       bar_x:=PCHAR(ini.ReadString('CONFIG','Bar_x','650'));//条码X位置
  131.       bar_y:=PCHAR(ini.ReadString('CONFIG','Bar_y','150'));//条码Y位置
  132.       bar_h:=PCHAR(ini.ReadString('CONFIG','Bar_h','96'));//条码高度
  133.       bar_c:=PCHAR(ini.ReadString('CONFIG','Bar_c','180'));//条码旋转
  134.       bar_font:=PCHAR(ini.ReadString('CONFIG','Bar_font','1'));//列印条码文字
  135.       lbledit_cur_print.Text:=tsc_host;
  136.       LabeledEdit3.Text:=labelwidth;
  137.       LabeledEdit4.Text:=labelheight;
  138.       LabeledEdit9.Text:=speed;
  139.       LabeledEdit10.Text:=density;
  140.       labelededit7.Text:=bar_x;
  141.       labelededit8.Text:=bar_y;
  142.       labelededit5.Text:=bar_h;
  143.       labelededit2.Text:=bar_c;
  144.       if bar_font='1' then checkbox2.Checked:=true else checkbox2.Checked:=false;
  145.       if sensor='0' then checkbox1.Checked:=true else checkbox1.Checked:=false;
  146.       LabeledEdit11.Text:=vertical;
  147.       LabeledEdit12.Text:=offset;
  148.       ini.Free;
  149.     end;
  150. end;
  151. procedure TForm1.BitBtn1Click(Sender: TObject);
  152. var
  153.   i:integer;
  154. begin
  155.   //获得当前的配置信息
  156.   tsc_host:=pchar(lbledit_cur_print.Text);
  157.   labelwidth:=pchar(labelededit3.Text);
  158.   labelheight:=pchar(labelededit4.Text);
  159.   speed:=pchar(labelededit9.Text);
  160.   density:=pchar(labelededit10.Text);
  161.   if checkbox1.checked then sensor:='0' else sensor:='1';
  162.   vertical:=pchar(labelededit11.Text);
  163.   offset:=pchar(labelededit12.Text);
  164.   bar_x:=pchar(labelededit7.Text);
  165.   bar_y:=pchar(labelededit8.Text);
  166.   bar_h:=pchar(labelededit5.Text);
  167.   if checkbox2.Checked then bar_font:='1' else bar_font:='0';
  168.   bar_c:=pchar(combobox2.text);
  169.   labelwidth:=pchar(labelededit3.Text);
  170.   //开始打印
  171.   openport(tsc_host);
  172.   setup(labelwidth,labelheight,speed,density,sensor,vertical,offset);
  173.   sendcommand('FORMFEED');
  174.   clearbuffer();
  175.   barcode(bar_x,bar_y,'128',bar_h,bar_font,bar_c,'2','4',pchar(labelededit1.text));
  176.   printlabel('1',pchar(labelededit2.text));
  177.   closeport();
  178.   messagebox(0,'打印结束','农垦农产品质量追溯软件Ver2008',mb_ok+MB_ICONINFORMATION);
  179. end;
  180. procedure TForm1.BitBtn2Click(Sender: TObject);
  181. var
  182.   ini:tinifile;
  183. begin
  184.   //获得当前的配置信息
  185.   tsc_host:=pchar(lbledit_cur_print.Text);
  186.   labelwidth:=pchar(labelededit3.Text);
  187.   labelheight:=pchar(labelededit4.Text);
  188.   speed:=pchar(labelededit9.Text);
  189.   density:=pchar(labelededit10.Text);
  190.   if checkbox1.checked then sensor:='0' else sensor:='1';
  191.   vertical:=pchar(labelededit11.Text);
  192.   offset:=pchar(labelededit12.Text);
  193.   bar_x:=pchar(labelededit7.Text);
  194.   bar_y:=pchar(labelededit8.Text);
  195.   bar_h:=pchar(labelededit5.Text);
  196.   if checkbox2.Checked then bar_font:='1' else bar_font:='0';
  197.   bar_c:=pchar(combobox2.text);
  198.   labelwidth:=pchar(labelededit3.Text);
  199.   ini:=TIniFile.Create(ExtractFilePath(Paramstr(0))+'bcpsetup.ini');
  200.   ini.WriteString('CONFIG','HOSTNAME',tsc_host);
  201.   ini.WriteString('CONFIG','LabelWidth',LabelWidth);
  202.   ini.WriteString('CONFIG','LabelHeight',LabelHeight);
  203.   ini.WriteString('CONFIG','Speed',Speed);
  204.   ini.WriteString('CONFIG','Density',Density);
  205.   ini.WriteString('CONFIG','Sensor',Sensor);
  206.   ini.WriteString('CONFIG','Vertical',Vertical);
  207.   ini.WriteString('CONFIG','Offset',Offset);
  208.   ini.WriteString('CONFIG','Bar_x',bar_x);
  209.   ini.WriteString('CONFIG','Bar_y',bar_y);
  210.   ini.WriteString('CONFIG','Bar_c',bar_c);
  211.   ini.WriteString('CONFIG','Bar_h',bar_h);
  212.   ini.WriteString('CONFIG','Bar_font',bar_font);
  213.   ini.Free;
  214.   messagebox(0,'配置文件保存成功!','农垦农产品质量追溯软件Ver2008',mb_ok+MB_ICONINFORMATION);
  215. end;
  216. end.