Unit1.pas
上传用户:xdwang_66
上传日期:2016-04-26
资源大小:1726k
文件大小:20k
源码类别:

Static控件

开发平台:

Delphi

  1. unit Unit1;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5.   Dialogs, ExtCtrls, pBarCode, StdCtrls, Grids, ValEdit, HBarcode, Printers;
  6. type
  7.   TForm1 = class(TForm)
  8.     PropEdit: TValueListEditor;
  9.     SelColor: TColorDialog;
  10.     SelFont: TFontDialog;
  11.     panDraw: TPanel;
  12.     Panel2: TPanel;
  13.     BarCode1: TBarCode;
  14.     DrawEdit: TValueListEditor;
  15.     imgDraw: TImage;
  16.     btnDraw: TButton;
  17.     PrinEdit: TValueListEditor;
  18.     btnPrint: TButton;
  19.     procedure PropEditGetPickList(Sender: TObject;
  20.       const KeyName: String; Values: TStrings);
  21.     procedure PropEditStringsChange(Sender: TObject);
  22.     procedure FormShow(Sender: TObject);
  23.     procedure PropEditDrawCell(Sender: TObject; ACol, ARow: Integer;
  24.       Rect: TRect; State: TGridDrawState);
  25.     procedure PropEditSelectCell(Sender: TObject; ACol, ARow: Integer;
  26.       var CanSelect: Boolean);
  27.     procedure btnDrawClick(Sender: TObject);
  28.     procedure DrawEditStringsChange(Sender: TObject);
  29.     procedure btnPrintClick(Sender: TObject);
  30.     procedure PrinEditGetPickList(Sender: TObject;
  31.       const KeyName: String; Values: TStrings);
  32.     procedure PrinEditStringsChange(Sender: TObject);
  33.     procedure FormCreate(Sender: TObject);
  34.     procedure DrawEditGetPickList(Sender: TObject; const KeyName: String;
  35.       Values: TStrings);
  36.   private
  37.     { Private declarations }
  38.   public
  39.     { Public declarations }
  40.   end;
  41. var
  42.   Form1: TForm1;
  43.   Setting: Boolean = False;
  44.   DrawEditing: Boolean = False;
  45.   PrinEditing: Boolean = False;
  46.   function iif(C: Boolean; A, B: Variant): Variant;
  47. implementation
  48. {$R *.dfm}
  49. function iif(C: Boolean; A, B: Variant): Variant;
  50. begin
  51.   if C then Result := A else Result := B;
  52. end;
  53. procedure TForm1.PropEditGetPickList(Sender: TObject;
  54.   const KeyName: String; Values: TStrings);
  55. begin
  56.   if KeyName = 'BarType' then
  57.   begin
  58.     Values.Append('bcCode_2_5_interleaved');
  59.     Values.Append('bcCode_2_5_industrial');
  60.     Values.Append('bcCode_2_5_matrix');
  61.     Values.Append('bcCode39');
  62.     Values.Append('bcCode39Extended');
  63.     Values.Append('bcCode128A');
  64.     Values.Append('bcCode128B');
  65.     Values.Append('bcCode128C');
  66.     Values.Append('bcCode93');
  67.     Values.Append('bcCode93Extended');
  68.     Values.Append('bcCodeMSI');
  69.     Values.Append('bcCodePostNet');
  70.     Values.Append('bcCodeCodabar');
  71.     Values.Append('bcCodeEAN8');
  72.     Values.Append('bcCodeEAN13');
  73.     Values.Append('bcCodeUPC_A');
  74.     Values.Append('bcCodeUPC_E0');
  75.     Values.Append('bcCodeUPC_E1');
  76.     Values.Append('bcCodeUPC_Supp2');
  77.     Values.Append('bcCodeUPC_Supp5');
  78.     Values.Append('bcCodeEAN128A');
  79.     Values.Append('bcCodeEAN128B');
  80.     Values.Append('bcCodeEAN128C');
  81.   end else
  82.   if KeyName = 'CheckSum' then
  83.   begin
  84.     Values.Append('csNone');
  85.     Values.Append('csModulo10');
  86.   end else
  87.   if KeyName = 'TextShow' then
  88.   begin
  89.     Values.Append('tsNone');
  90.     Values.Append('tsBarCode');
  91.     Values.Append('tsBarType');
  92.     Values.Append('tsBoth');
  93.   end else
  94.   if KeyName = 'TextPosition' then
  95.   begin
  96.     Values.Append('tpTopLeft');
  97.     Values.Append('tpTopRight');
  98.     Values.Append('tpTopCenter');
  99.     Values.Append('tpBottomLeft');
  100.     Values.Append('tpBottomRight');
  101.     Values.Append('tpBottomCenter');
  102.   end else
  103.   if KeyName = 'Orientation' then
  104.   begin
  105.     Values.Append('toLeftRight');
  106.     Values.Append('toRightLeft');
  107.     Values.Append('toTopBottom');
  108.     Values.Append('toBottomTop');
  109.   end else
  110.   if KeyName = 'Alignment' then
  111.   begin
  112.     Values.Append('taCenter');
  113.     Values.Append('taLeftJustify');
  114.     Values.Append('taRightJustify');
  115.   end else
  116.   if (KeyName = 'BevelInner') or (KeyName = 'BevelOuter')then
  117.   begin
  118.     Values.Append('bvLowered');
  119.     Values.Append('bvNone');
  120.     Values.Append('bvRaised');
  121.     Values.Append('bvSpace');
  122.   end else
  123.   if KeyName = 'BorderStyle' then
  124.   begin
  125.     Values.Append('bsNone');
  126.     Values.Append('bsSingle');
  127.   end else
  128.   if KeyName = 'Align' then
  129.   begin
  130.     Values.Append('alBottom');
  131.     Values.Append('alClient');
  132.     Values.Append('alCustom');
  133.     Values.Append('alLeft');
  134.     Values.Append('alNone');
  135.     Values.Append('alRight');
  136.     Values.Append('alTop');
  137.   end else
  138.   if (KeyName = 'AutoWidth') or (KeyName = 'Ctl3D') or (KeyName = 'Visible') then
  139.   begin
  140.     Values.Append('True');
  141.     Values.Append('False');
  142.   end;
  143. end;
  144. procedure TForm1.PropEditStringsChange(Sender: TObject);
  145. begin
  146.   if not Setting then
  147.   with Barcode1 do
  148.   begin
  149.     AutoWidth := iif(PropEdit.Values['AutoWidth']='True',True,False);
  150.     if PropEdit.Values['BarType'] = 'bcCode_2_5_interleaved' then BarType := bcCode_2_5_interleaved;
  151.     if PropEdit.Values['BarType'] = 'bcCode_2_5_industrial' then BarType := bcCode_2_5_industrial;
  152.     if PropEdit.Values['BarType'] = 'bcCode_2_5_matrix' then BarType := bcCode_2_5_matrix;
  153.     if PropEdit.Values['BarType'] = 'bcCode39' then BarType := bcCode39;
  154.     if PropEdit.Values['BarType'] = 'bcCode39Extended' then BarType := bcCode39Extended;
  155.     if PropEdit.Values['BarType'] = 'bcCode128A' then BarType := bcCode128A;
  156.     if PropEdit.Values['BarType'] = 'bcCode128B' then BarType := bcCode128B;
  157.     if PropEdit.Values['BarType'] = 'bcCode128C' then BarType := bcCode128C;
  158.     if PropEdit.Values['BarType'] = 'bcCode93' then BarType := bcCode93;
  159.     if PropEdit.Values['BarType'] = 'bcCode93Extended' then BarType := bcCode93Extended;
  160.     if PropEdit.Values['BarType'] = 'bcCodeMSI' then BarType := bcCodeMSI;
  161.     if PropEdit.Values['BarType'] = 'bcCodePostNet' then BarType :=bcCodePostNet;
  162.     if PropEdit.Values['BarType'] = 'bcCodeCodabar' then BarType := bcCodeCodabar;
  163.     if PropEdit.Values['BarType'] = 'bcCodeEAN8' then BarType := bcCodeEAN8;
  164.     if PropEdit.Values['BarType'] = 'bcCodeEAN13' then BarType := bcCodeEAN13;
  165.     if PropEdit.Values['BarType'] = 'bcCodeUPC_A' then BarType := bcCodeUPC_A;
  166.     if PropEdit.Values['BarType'] = 'bcCodeUPC_E0' then BarType := bcCodeUPC_E0;
  167.     if PropEdit.Values['BarType'] = 'bcCodeUPC_E1' then BarType := bcCodeUPC_E1;
  168.     if PropEdit.Values['BarType'] = 'bcCodeUPC_Supp2' then BarType := bcCodeUPC_Supp2;
  169.     if PropEdit.Values['BarType'] = 'bcCodeUPC_Supp5' then BarType := bcCodeUPC_Supp5;
  170.     if PropEdit.Values['BarType'] = 'bcCodeEAN128A' then BarType := bcCodeEAN128A;
  171.     if PropEdit.Values['BarType'] = 'bcCodeEAN128B' then BarType := bcCodeEAN128B;
  172.     if PropEdit.Values['BarType'] = 'bcCodeEAN128C' then BarType := bcCodeEAN128C;
  173.     Barcode := PropEdit.Values['Barcode'];
  174.     BarHeight := StrToIntDef(PropEdit.Values['BarHeight'],0);
  175.     if PropEdit.Values['CheckSum'] = 'csNone' then CheckSum := csNone;
  176.     if PropEdit.Values['CheckSum'] = 'csModulo10' then CheckSum := csModulo10;
  177.     Modul := StrToIntDef(PropEdit.Values['Modul'],1);
  178.     Ratio := StrToFloatDef(PropEdit.Values['Ratio'],2);
  179.     if PropEdit.Values['TextShow'] = 'tsNone' then TextShow := tsNone;
  180.     if PropEdit.Values['TextShow'] = 'tsBarCode' then TextShow := tsBarCode;
  181.     if PropEdit.Values['TextShow'] = 'tsBarType' then TextShow := tsBarType;
  182.     if PropEdit.Values['TextShow'] = 'tsBoth' then TextShow := tsBoth;
  183.     if PropEdit.Values['TextPosition'] = 'tpTopLeft' then TextPosition := tpTopLeft;
  184.     if PropEdit.Values['TextPosition'] = 'tpTopRight' then TextPosition := tpTopRight;
  185.     if PropEdit.Values['TextPosition'] = 'tpTopCenter' then TextPosition := tpTopCenter;
  186.     if PropEdit.Values['TextPosition'] = 'tpBottomLeft' then TextPosition := tpBottomLeft;
  187.     if PropEdit.Values['TextPosition'] = 'tpBottomRight' then TextPosition := tpBottomRight;
  188.     if PropEdit.Values['TextPosition'] = 'tpBottomCenter' then TextPosition := tpBottomCenter;
  189.     if PropEdit.Values['Orientation'] = 'toRightLeft' then Orientation := toRightLeft;
  190.     if PropEdit.Values['Orientation'] = 'toTopBottom' then Orientation := toTopBottom;
  191.     if PropEdit.Values['Orientation'] = 'toBottomTop' then Orientation := toBottomTop;
  192.     if PropEdit.Values['Orientation'] = 'toLeftRight' then Orientation := toLeftRight;
  193.     if PropEdit.Values['Alignment'] = 'taLeftJustify' then Alignment := taLeftJustify;
  194.     if PropEdit.Values['Alignment'] = 'taRightJustify' then Alignment := taRightJustify;
  195.     if PropEdit.Values['Alignment'] = 'taCenter' then Alignment := taCenter;
  196.     HMargin := StrToIntDef(PropEdit.Values['HMargin'],0);
  197.     Left := StrToIntDef(PropEdit.Values['Left'],0);
  198.     Top  := StrToIntDef(PropEdit.Values['Top'],0);
  199.     Height  := StrToIntDef(PropEdit.Values['Height'],0);
  200.     Width  := StrToIntDef(PropEdit.Values['Width'],0);
  201.     if PropEdit.Values['BevelInner'] = 'bvNone' then BevelInner := bvNone;
  202.     if PropEdit.Values['BevelInner'] = 'bvRaised' then BevelInner := bvRaised;
  203.     if PropEdit.Values['BevelInner'] = 'bvSpace' then BevelInner := bvSpace;
  204.     if PropEdit.Values['BevelInner'] = 'bvLowered' then BevelInner := bvLowered;
  205.     if PropEdit.Values['BevelOuter'] = 'bvNone' then BevelOuter := bvNone;
  206.     if PropEdit.Values['BevelOuter'] = 'bvRaised' then BevelOuter := bvRaised;
  207.     if PropEdit.Values['BevelOuter'] = 'bvSpace' then BevelOuter := bvSpace;
  208.     if PropEdit.Values['BevelOuter'] = 'bvLowered' then BevelOuter := bvLowered;
  209.     BevelWidth := StrToIntDef(PropEdit.Values['BevelWidth'],1);
  210.     BorderStyle := iif(PropEdit.Values['BorderStyle']='bsNone',bsNone,bsSingle);
  211.     BorderWidth := StrToIntDef(PropEdit.Values['BorderWidth'],1);
  212.     Ctl3D := iif(PropEdit.Values['Ctl3D']='True',True,False);
  213.     Visible := iif(PropEdit.Values['Visible']='True',True,False);
  214.     Paint;
  215.     btnDrawClick(Sender);
  216.     FormShow(Sender);
  217.   end;
  218. end;
  219. procedure TForm1.FormShow(Sender: TObject);
  220. begin
  221.   Setting := True;
  222.   with Barcode1 do
  223.   begin
  224.     PropEdit.Values['Width'] := IntToStr(Width);
  225.     PropEdit.Values['Left'] := IntToStr(Left);
  226.     PropEdit.Values['Top'] := IntToStr(Top);
  227.     PropEdit.Values['Height'] := IntToStr(Height);
  228.     if BarType = bcCode_2_5_interleaved then PropEdit.Values['BarType'] := 'bcCode_2_5_interleaved';
  229.     if BarType = bcCode_2_5_industrial then  PropEdit.Values['BarType'] := 'bcCode_2_5_industrial';
  230.     if BarType = bcCode_2_5_matrix then  PropEdit.Values['BarType'] := 'bcCode_2_5_matrix';
  231.     if BarType = bcCode39 then  PropEdit.Values['BarType'] := 'bcCode39';
  232.     if BarType = bcCode39Extended then  PropEdit.Values['BarType'] := 'bcCode39Extended';
  233.     if BarType = bcCode128A then  PropEdit.Values['BarType'] := 'bcCode128A' ;
  234.     if BarType = bcCode128B then  PropEdit.Values['BarType'] := 'bcCode128B' ;
  235.     if BarType = bcCode128C then  PropEdit.Values['BarType'] := 'bcCode128C' ;
  236.     if BarType = bcCode93 then  PropEdit.Values['BarType'] := 'bcCode93' ;
  237.     if BarType = bcCode93Extended then  PropEdit.Values['BarType'] := 'bcCode93Extended' ;
  238.     if BarType = bcCodeMSI then  PropEdit.Values['BarType'] := 'bcCodeMSI';
  239.     if BarType = bcCodePostNet then  PropEdit.Values['BarType'] := 'bcCodePostNet' ;
  240.     if BarType = bcCodeCodabar then  PropEdit.Values['BarType'] := 'bcCodeCodabar' ;
  241.     if BarType = bcCodeEAN8 then  PropEdit.Values['BarType'] := 'bcCodeEAN8' ;
  242.     if BarType = bcCodeEAN13 then  PropEdit.Values['BarType'] := 'bcCodeEAN13' ;
  243.     if BarType = bcCodeUPC_A then  PropEdit.Values['BarType'] := 'bcCodeUPC_A' ;
  244.     if BarType = bcCodeUPC_E0 then  PropEdit.Values['BarType'] := 'bcCodeUPC_E0' ;
  245.     if BarType = bcCodeUPC_E1 then  PropEdit.Values['BarType'] := 'bcCodeUPC_E1' ;
  246.     if BarType = bcCodeUPC_Supp2 then  PropEdit.Values['BarType'] := 'bcCodeUPC_Supp2' ;
  247.     if BarType = bcCodeUPC_Supp5 then  PropEdit.Values['BarType'] := 'bcCodeUPC_Supp5' ;
  248.     if BarType = bcCodeEAN128A then  PropEdit.Values['BarType'] := 'bcCodeEAN128A' ;
  249.     if BarType = bcCodeEAN128B then  PropEdit.Values['BarType'] := 'bcCodeEAN128B' ;
  250.     if BarType = bcCodeEAN128C then  PropEdit.Values['BarType'] := 'bcCodeEAN128C' ;
  251.     //PropEdit.Values['BarType'] := BarTypeName;
  252.     PropEdit.Values['Barcode'] := Barcode;
  253.     PropEdit.Values['BarHeight'] := IntToStr(BarHeight);
  254.     PropEdit.Values['CheckSum'] := iif(CheckSum=csNone,'csNone','csModulo10');
  255.     PropEdit.Values['Modul'] := IntToStr(Modul);
  256.     PropEdit.Values['Ratio'] := FloatToStr(Ratio);
  257.     if TextShow = tsNone then PropEdit.Values['TextShow'] := 'tsNone';
  258.     if TextShow = tsBarCode then PropEdit.Values['TextShow'] := 'tsBarCode';
  259.     if TextShow = tsBarType then PropEdit.Values['TextShow'] := 'tsBarType';
  260.     if TextShow = tsBoth then PropEdit.Values['TextShow'] := 'tsBoth';
  261.     if TextPosition = tpTopLeft then PropEdit.Values['TextPosition'] := 'tpTopLeft';
  262.     if TextPosition = tpTopRight then PropEdit.Values['TextPosition'] := 'tpTopRight';
  263.     if TextPosition = tpTopCenter then PropEdit.Values['TextPosition'] := 'tpTopCenter';
  264.     if TextPosition = tpBottomLeft then PropEdit.Values['TextPosition'] := 'tpBottomLeft';
  265.     if TextPosition = tpBottomRight then PropEdit.Values['TextPosition'] := 'tpBottomRight';
  266.     if TextPosition = tpBottomCenter then PropEdit.Values['TextPosition'] := 'tpBottomCenter';
  267.     if Orientation = toLeftRight then PropEdit.Values['Orientation'] := 'toLeftRight';
  268.     if Orientation = toRightLeft then PropEdit.Values['Orientation'] := 'toRightLeft';
  269.     if Orientation = toTopBottom then PropEdit.Values['Orientation'] := 'toTopBottom';
  270.     if Orientation = toBottomTop then PropEdit.Values['Orientation'] := 'toBottomTop';
  271.     if Alignment = taCenter then PropEdit.Values['Alignment'] := 'taCenter';
  272.     if Alignment = taLeftJustify then PropEdit.Values['Alignment'] := 'taLeftJustify';
  273.     if Alignment = taRightJustify then PropEdit.Values['Alignment'] := 'taRightJustify';
  274.     PropEdit.Values['HMargin'] := IntToStr(HMargin);
  275.     PropEdit.Values['AutoWidth'] := iif(AutoWidth,'True','False');
  276.     if BevelInner = bvLowered then PropEdit.Values['BevelInner'] := 'bvLowered';
  277.     if BevelInner = bvNone then PropEdit.Values['BevelInner'] := 'bvNone';
  278.     if BevelInner = bvRaised then PropEdit.Values['BevelInner'] := 'bvRaised';
  279.     if BevelInner = bvSpace then PropEdit.Values['BevelInner'] := 'bvSpace';
  280.     if BevelOuter = bvLowered then PropEdit.Values['BevelOuter'] := 'bvLowered';
  281.     if BevelOuter = bvNone then PropEdit.Values['BevelOuter'] := 'bvNone';
  282.     if BevelOuter = bvRaised then PropEdit.Values['BevelOuter'] := 'bvRaised';
  283.     if BevelOuter = bvSpace then PropEdit.Values['BevelOuter'] := 'bvSpace';
  284.     PropEdit.Values['BevelWidth'] := IntToStr(BevelWidth);
  285.     PropEdit.Values['BorderStyle'] := iif(BorderStyle=bsNone,'bsNone','bsSingle');
  286.     PropEdit.Values['BorderWidth'] := IntToStr(BorderWidth);
  287.     PropEdit.Values['Ctl3D'] := iif(Ctl3D,'True','False');
  288.     PropEdit.Values['Visible'] := iif(Visible,'True','False');
  289.   end;
  290.   Setting := False;
  291.   BarCode1.Paint;
  292.   btnDrawClick(Sender);
  293. end;
  294. procedure TForm1.PropEditDrawCell(Sender: TObject; ACol, ARow: Integer;
  295.   Rect: TRect; State: TGridDrawState);
  296. var
  297.   DrawRect: TRect;
  298. begin
  299.   DrawRect.Left := Rect.Left + 2;
  300.   DrawRect.Right := Rect.Right - 2;
  301.   DrawRect.Top := Rect.Top + 2;
  302.   DrawRect.Bottom := Rect.Bottom - 2;
  303.   if ACol = 1 then
  304.   begin
  305.     if ARow = 5 then
  306.     begin
  307.       PropEdit.Canvas.Brush.Color := Barcode1.ColorBar;
  308.       PropEdit.Canvas.Pen.Color := clBlack;
  309.       PropEdit.Canvas.Rectangle(DrawRect);
  310.     end else
  311.     if ARow = 6 then
  312.     begin
  313.       PropEdit.Canvas.Brush.Color := Barcode1.ColorSpc;
  314.       PropEdit.Canvas.Pen.Color := clBlack;
  315.       PropEdit.Canvas.Rectangle(DrawRect);
  316.     end else
  317.     if ARow = 11 then
  318.     begin
  319.       PropEdit.Canvas.Pen.Color := Barcode1.Font.Color;
  320.       PropEdit.Canvas.Font := Barcode1.Font;
  321.       PropEdit.Canvas.Font.Size := PropEdit.Font.Size; 
  322.       PropEdit.Canvas.TextOut(Rect.Left + 1,Rect.Top + 1,Barcode1.Font.Name);
  323.     end else
  324.     if ARow = 12 then
  325.     begin
  326.       PropEdit.Canvas.Brush.Color := Barcode1.TextColor;
  327.       PropEdit.Canvas.Pen.Color := clBlack;
  328.       PropEdit.Canvas.Rectangle(DrawRect);
  329.     end else
  330.     if ARow = 17 then
  331.     begin
  332.       PropEdit.Canvas.Brush.Color := Barcode1.Color;
  333.       PropEdit.Canvas.Pen.Color := clBlack;
  334.       PropEdit.Canvas.Rectangle(DrawRect);
  335.     end;
  336.   end;
  337. end;
  338. procedure TForm1.PropEditSelectCell(Sender: TObject; ACol, ARow: Integer;
  339.   var CanSelect: Boolean);
  340. begin
  341.   if ACol = 1 then
  342.   begin
  343.     if ARow = 5 then
  344.     begin
  345.       SelColor.Color := Barcode1.ColorBar;
  346.       if SelColor.Execute then
  347.         Barcode1.ColorBar := SelColor.Color;
  348.       CanSelect := False;
  349.     end else
  350.     if ARow = 6 then
  351.     begin
  352.       SelColor.Color := Barcode1.ColorSpc;
  353.       if SelColor.Execute then
  354.         Barcode1.ColorSpc := SelColor.Color;
  355.       CanSelect := False;
  356.     end else
  357.     if ARow = 11 then
  358.     begin
  359.       SelFont.Font := Barcode1.Font;
  360.       if SelFont.Execute then
  361.         Barcode1.Font := SelFont.Font;
  362.       CanSelect := False;
  363.     end else
  364.     if ARow = 12 then
  365.     begin
  366.       SelColor.Color := Barcode1.TextColor;
  367.       if SelColor.Execute then
  368.         Barcode1.TextColor := SelColor.Color;
  369.       CanSelect := False;
  370.     end else
  371.     if ARow = 17 then
  372.     begin
  373.       SelColor.Color := Barcode1.Color;
  374.       if SelColor.Execute then
  375.         Barcode1.Color := SelColor.Color;
  376.       CanSelect := False;
  377.     end;
  378.     PropEdit.Repaint;
  379.     btnDrawClick(Sender);
  380.   end;
  381. end;
  382. procedure TForm1.btnDrawClick(Sender: TObject);
  383. begin
  384.   imgDraw.Canvas.Rectangle(imgDraw.Canvas.ClipRect);
  385.   if DrawEdit.Values['BackGround'] = 'True' then
  386.     imgDraw.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'Back.bmp');
  387.   Barcode1.Draw(imgDraw.Canvas,StrToIntDef(DrawEdit.Values['Left'],0),
  388.     StrToIntDef(DrawEdit.Values['Top'],0),
  389.     StrToIntDef(DrawEdit.Values['Height'],0),
  390.     StrToFloatDef(DrawEdit.Values['Angle'],0));
  391. end;
  392. procedure TForm1.DrawEditGetPickList(Sender: TObject;
  393.   const KeyName: String; Values: TStrings);
  394. begin
  395.   if KeyName = 'BackGround' then
  396.   begin
  397.     Values.Append('True');
  398.     Values.Append('False');
  399.   end;
  400. end;
  401. procedure TForm1.DrawEditStringsChange(Sender: TObject);
  402. begin
  403.   if not DrawEditing then
  404.   begin
  405.     DrawEditing := True;
  406.     if DrawEdit.Values['BackGround'] <> 'False' then DrawEdit.Values['BackGround'] := 'True';
  407.     DrawEdit.Values['Left'] := IntToStr(StrToIntDef(DrawEdit.Values['Left'],10));
  408.     DrawEdit.Values['Top'] := IntToStr(StrToIntDef(DrawEdit.Values['Top'],10));
  409.     DrawEdit.Values['Height'] := IntToStr(StrToIntDef(DrawEdit.Values['Height'],50));
  410.     DrawEdit.Values['Angle'] := FloatToStr(StrToFloatDef(DrawEdit.Values['Angle'],0));
  411.     DrawEditing := False;
  412.     btnDrawClick(Sender);
  413.   end;
  414. end;
  415. procedure TForm1.btnPrintClick(Sender: TObject);
  416. begin
  417.   Printer.BeginDoc;
  418.   Barcode1.Print(
  419.     iif(PrinEdit.Values['Unit'] = 'utInch',utInch,utMillimeter),
  420.     StrToFloatDef(DrawEdit.Values['Left'],10.0),
  421.     StrToFloatDef(PrinEdit.Values['Top'],10.0),
  422.     StrToFloatDef(PrinEdit.Values['Height'],30.0),
  423.     StrToFloatDef(PrinEdit.Values['Modul'],0.35),
  424.     StrToFloatDef(PrinEdit.Values['Angle'],0));
  425.   Printer.EndDoc;
  426. end;
  427. procedure TForm1.PrinEditGetPickList(Sender: TObject;
  428.   const KeyName: String; Values: TStrings);
  429. begin
  430.   if KeyName = 'Unit' then
  431.   begin
  432.     Values.Append('utMillimeter');
  433.     Values.Append('utInch');
  434.   end;
  435. end;
  436. procedure TForm1.PrinEditStringsChange(Sender: TObject);
  437. begin
  438.   if not PrinEditing then
  439.   begin
  440.     PrinEditing := True;
  441.     if PrinEdit.Values['Unit'] <> 'utInch' then PrinEdit.Values['Unit'] := 'utMillimeter';
  442.     PrinEdit.Values['Left'] := FloatToStr(StrToFloatDef(PrinEdit.Values['Left'],10.0));
  443.     PrinEdit.Values['Top'] := FloatToStr(StrToFloatDef(PrinEdit.Values['Top'],10.0));
  444.     PrinEdit.Values['Height'] := FloatToStr(StrToFloatDef(PrinEdit.Values['Height'],30));
  445.     PrinEdit.Values['Modul'] := FloatToStr(StrToFloatDef(PrinEdit.Values['Modul'],0.35));
  446.     PrinEdit.Values['Angle'] := FloatToStr(StrToFloatDef(PrinEdit.Values['Angle'],0));
  447.     PrinEditing := False;
  448.   end;
  449. end;
  450. procedure TForm1.FormCreate(Sender: TObject);
  451. begin
  452.   PrinEditStringsChange(Sender);
  453.   DrawEditStringsChange(Sender);
  454. end;
  455. end.