📄 main.pas
字号:
unit Main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, DBCGrids, Db, DBTables, StdCtrls, Mask, DBCtrls,
Grids, DBGrids, DBBarcode, Printers;
type
TFormMain = class(TForm)
Panel1: TPanel;
DBNavigator1: TDBNavigator;
DBCtrlGrid1: TDBCtrlGrid;
Label1: TLabel;
Label2: TLabel;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBDuckBarCode: TDBDuckBarCode;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormMain: TFormMain;
implementation
Uses DataM;
{$R *.DFM}
procedure TFormMain.FormCreate(Sender: TObject);
begin
{ St := 'DEMOS\DEMODB';
StDB := Application.ExeName;
StDB := ExtractFileDir (StDB);
Delete (StDB, Length (StDB) - Length (St) + 1, Length (St));
StDB := UpperCase (StDB) + '\DATA';
Table.DatabaseName := StDB;
Table.Active := TRUE;}
end;
procedure TFormMain.FormDestroy(Sender: TObject);
begin
// Table.Active := FALSE;
end;
procedure TFormMain.Button1Click(Sender: TObject);
Var
x, y: Integer;
iRecord: Integer;
iLine: Integer;
St: String;
Rc: TRect;
iW: Integer;
Procedure PrintHeader;
Begin
y := 1;
St := 'Duck Barcode';
x := Printer.Canvas.TextWidth (St);
Printer.Canvas.TextOut (x, y, St);
y := y + (iLine * 2);
Printer.Canvas.MoveTo (0, y);
Printer.Canvas.LineTo (Printer.PageWidth, y);
y := iLine * 5;
End;
begin
if Printer = nil Then
raise Exception.Create('Can''t find printer');
Printer.BeginDoc;
Printer.Canvas.Font.Name := 'Times New Roman';
Printer.Canvas.Font.Size := 9;
iLine := Printer.Canvas.TextHeight ('X');
iRecord := iLine * 7;
PrintHeader;
DM.Table.DisableControls;
DM.Table.First;
Try
While not DM.Table.EOF Do
Begin
if (y + iRecord) >= Printer.PageHeight Then
Begin
Printer.NewPage;
PrintHeader;
End;
DBDuckBarCode.Barcode.Text := DM.TableProductID.Text;
Rc := DBDuckBarCode.PaintPoint (Printer.Canvas, Point (x, y + iLine));
St := DM.TableProductName.Text;
iW := Printer.Canvas.TextWidth (St);
if iW < (Rc.Right - Rc.Left) Then
Rc.Left := Rc.Left + ((Rc.Right - Rc.Left - iW) div 2);
Printer.Canvas.TextOut (Rc.Left, y, St);
y := y + iRecord;
DM.Table.Next;
End;
Finally
Printer.EndDoc;
DM.Table.EnableControls;
End;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -