Q&A

  • 바코드 설치후 폼에서 어떻게 구현하는지?
여기서 바코드 컴포넌트를 다운받아서 설치했는데 설치후 어떻게 폼에서 구현을 하는지를 모르겠네여..
T컴포넌트인데..
barcode1:Tbarcode;

바코드 컴포넌트를 폼에 놓으면 위와 같이 돼더라구요..
점 도와저여....
이제 좀 걸음마를 뗄려구하는 델파이 3살짜리가...
3  COMMENTS
  • Profile
    이민수 2002.08.25 21:37

    바코드가 어떤건지 잘 모르겠는데여...
    버튼같은거 클릭해서 이벤트 뼈대 만드신 다음에
    barcode1 다음에 쩜 찍고 쫌만 기다려 보세여... 그럼 중요한 속성/메소드가 나오는데... 그 중에 있을 겁니다.

    바코드는 폼에 놓으면 바로 보이는 것도 있나 모르겠는데 제가 본건 대개 특정한 캔버스에 출력해야 하는 그런 종류였는데요...
    즉 barcode1.PaintTo(Form1.Canvas) 머 이런 식으로... 아마 질문하신 컴포넌트도 이런 식으로 쓸 겁니다. 메소드 이름이나 사용법은 좀 다르겠지만...
    소스 있으면 소스 보시는 것도 가장 빨리 알아낼 방법도 되죠...
  • Profile
    김헌대 2002.08.25 23:58
    제가 쓰는건 Zbarcode인데여..
    소스봐도 잘모르겠어여..
    워나기 초보라서..
    아마두..
    소스보면 이런부분이 있는데..이렇게 하는게 아닌가..

    TZBarcode.Create (AOwner: TComponent);
    근데..
    Aowner를 어캐 지정해줘야햐져..

    에이 소스몽땅올릴테니 좀 봐줘여..
    ==================================================================
    unit ZBarcode;

    {************************************************************************

    Generic (non-visual) Barcode Component for Delphi
    ?1996-2000 Zorn Software, Amsterdam, The Netherlands
    No part of this code may be copied or used in other programs.

    *************************************************************************}

    // The following define only makes sense if you have purchased the
    // registered version which includes the barcoreg.obj file

    {/$define BARCOMPREG}

    interface

    uses
      windows, classes, sysutils, graphics, dialogs;

    const
    {$ifdef BARCOMPREG}
      CVersion = '3.0 Registered';
    {$else}
      CVersion = '3.0 Demo';
    {$endif}

    type
      TBarType = (btCode39, btCode39wCheck, btEAN13, btEAN8, btCode128,
                  btITF, btITFwCheck, btPostnet, btUPCA);
      TRatio   = (r10to20, r10to25, r10to30);

      TZBarCode = class(TComponent)
      private
        FBarType: TBarType;
        FPrefix, FText, FAddOn: string;
        FfgColor, FbgColor: TColor;
        FTransparent: boolean;
        FHeight, FWidth: integer;
        FRatio: TRatio;
        FVersion: string;
        FFont: TFont;
        Picture: TMetafile;
        FAtom: integer;
        StringDummy: string;
        IntDummy: integer;
        procedure SetHeight (Value: integer);
        procedure SetRatio (Value: TRatio);
        procedure SetfgColor (Value: TColor);
        procedure SetbgColor (Value: TColor);
        procedure SetBarType (Value: TBarType);
        procedure SetPrefix (Value: string);
        procedure SetAddOn (Value: string);
        procedure SetText (Value: string);
        procedure SetTransparent (Value: boolean);
        procedure Redraw;
        procedure SetAtom (Value: integer);
        procedure SetEnhanced (Value: boolean);
        procedure SetFont (Value: TFont);
        function GetEnhanced: boolean;
      public
        constructor Create (AOwner: TComponent); override;
        destructor Destroy; override;
        property Barcode: TMetafile read Picture;
      published
        property BarType: TBarType read FBarType write SetBarType;
        property Text: string read FText write SetText;
        property Prefix: string read FPrefix write SetPrefix;
        property AddOn: string read FAddOn write SetAddOn;
        property Font: TFont read FFont write SetFont;
        property bgColor: TColor read FbgColor write SetbgColor default clWhite;
        property fgColor: TColor read FfgColor write SetfgColor default clBlack;
        property Transparent: boolean read FTransparent write SetTransparent default False;
        property Ratio: TRatio read FRatio write SetRatio default r10to25;
        property Version: string read FVersion write StringDummy;
        property Height: integer read FHeight write SetHeight;
        property Width: integer read FWidth write IntDummy;
        property Atom: integer read FAtom write SetAtom;
        property Enhanced: boolean read GetEnhanced write SetEnhanced;
      end;

    procedure Register;

    implementation

    {$R *.DCR}

    function Paint_Barcode (hdc: HDC; Prefix, Text, AddOn: Pchar; BarType,
             bPaint, height, smal, leth, iRatio: integer; brush: THandle): integer;
             stdcall; external;

    {$ifdef BARCOMPREG}
    {$L 'barcoreg.obj'}
    {$else}
    {$L 'barcomp.obj'}
    {$endif}

    procedure TZBarcode.Redraw;
    begin
      FWidth := Paint_Barcode (0, PChar (FPrefix), Pchar (FText), Pchar (FAddOn), ord (FBarType), 0, 0, Atom, 0, ord (FRatio), 0);
      if FWidth < 0 then FWidth := -FWidth;
      Picture.Width := FWidth;
      Picture.Height := FHeight;

      with TMetafileCanvas.Create (Picture, 0) do
      try
        if not FTransparent then
        begin
          Brush.Color := FbgColor;
          FillRect (Rect(0, 0, FWidth, FHeight));
        end;
        Brush.Color := fgColor;
        Font.Assign (FFont);
        Font.Size := abs (Font.Size * Atom);
        Paint_Barcode (Handle, Pchar (Prefix), Pchar (Text), Pchar (Addon), ord (FBarType), 1, FHeight,
              Atom, (abs (Font.Size) + abs (Font.Height)) div 2, ord (FRatio), Brush.Handle);
      finally
        free;
      end;
    end;

    constructor TZBarcode.Create (AOwner: TComponent);
    begin
      inherited Create (AOwner);
      Picture := TMetafile.Create;
      FFont := TFont.Create;
      FFont.Name := 'Arial';
      FFont.Size := 8;
      FHeight := 60;
      FbgColor := clWhite;
      FfgColor := clBlack;
      FRatio := r10to25;
      FVersion := CVersion;
      FAtom := 4;
      Redraw;
    end;

    destructor TZBarcode.Destroy;
    begin
      Picture.Free;
      Font.Free;
      inherited Destroy;
    end;

    procedure Register;
    begin
      RegisterComponents('Zorn Software', [TZBarcode]);
    end;

    procedure TZBarcode.SetEnhanced (Value: boolean);
    begin
      if Value <> Picture.Enhanced then
      begin
        Picture.Enhanced := Value;
        Redraw;
      end;
    end;

    function TZBarcode.GetEnhanced: boolean;
    begin
      Result := Picture.Enhanced;
    end;

    procedure TZBarcode.SetBarType (Value: TBarType);
    begin
      if Value <> FBarType then
      begin
        FBarType := Value;
        Redraw;
      end;
    end;

    procedure TZBarcode.SetFont (Value: TFont);
    begin
      FFont.Assign (Value);
      Redraw;
    end;

    procedure TZBarcode.SetHeight (Value: integer);
    begin
      if Value <> FHeight then
      begin
        FHeight := Value;
        Redraw;
      end;
    end;

    procedure TZBarcode.SetRatio (Value: TRatio);
    begin
      if Value <> FRatio then
      begin
        FRatio := Value;
        Redraw;
      end;
    end;

    procedure TZBarcode.SetAtom (Value: integer);
    begin
      if Value <> FAtom then
      begin
        FAtom := Value;
        Redraw;
      end;
    end;

    procedure TZBarcode.SetTransparent (Value: boolean);
    begin
      if Value <> FTransparent then
      begin
        FTransparent := Value;
        Redraw;
      end;
    end;

    procedure TZBarcode.SetfgColor (Value: TColor);
    begin
      if Value <> FfgColor then
      begin
        FfgColor := Value;
        Redraw;
      end;
    end;

    procedure TZBarcode.SetbgColor (Value: TColor);
    begin
      if Value <> FbgColor then
      begin
        FbgColor := Value;
        Redraw;
      end;
    end;

    procedure TZBarcode.SetPrefix (Value: string);
    begin
      if Value <> FPrefix then
      begin
        FPrefix := Value;
        Redraw;
      end;
    end;

    procedure TZBarcode.SetAddOn (Value: string);
    begin
      if Value <> FAddOn then
      begin
        FAddOn := Value;
        Redraw;
      end;
    end;

    procedure TZBarcode.SetText (Value: string);
    begin
      if Value <> FText then
      begin
        FText := Value;
        Redraw;
      end;
    end;

    {$ifndef BARCOMPREG}
    initialization
      if Paint_Barcode (0, '', '1', '', 1, 0, 0, 2, 0, 0, 0) < 0 then
        ShowMessage
          ('This demo version can only be used while Delphi is running');
    {$endif}
    end.

    ======================================================================

    그럼..


  • Profile
    이민수 2002.08.26 07:56

    이건 컴포넌트를 실행시에 동적으로 생성해서 사용할 때 필요한거구요
    디자인할 때 폼에 추가시킨 것은 자동 생성/소멸입니다.

    보면 값을 변경하면 컴포넌트 내부에서 TMetaFile인 BarCode를
    새로 그리네요... 이걸 TImage 같은데 옮기시면 되겠죠?
    TImage.Picture.Assign(Barcode1.Metafile);

    이렇게 하면 될라나.... 안되면... 전화하세여....
    국번없이 113
    • 김종균
    • 2002.08.26 23:09
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 한원희
      2002.08.26 23:19
      안녕하세요. 한원희입니다. 델파이의 string 형은 문자열의 길이와 문자열에 대한 참조값을 같이 가지고...
    • 김경민
    • 2002.08.26 21:13
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 이승근
    • 2002.08.26 21:11
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 홍성락
      2002.08.26 21:18
      hsr/////////////////////////////////////////////////// 아래처럼해보세요 ComboBox1.ItemIndex := Com...
    • 김경민
      2002.08.26 21:18
      방법상에 문제가 좀 있는것 같군요 table record가 변할때 combobox에 보여줄려고 하는것 같은데 table에...
    • 나옹이
    • 2002.08.26 20:59
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 나옹이
      2002.08.26 23:45
      procedure TForm1.Button1Click(Sender: TObject); begin with ZipMaster1 do try ZipFileName :...
    • 박상기
      2002.08.27 00:52
      C:test.txt <==============요거 맞나요? C:test.txt가 맞을 듯....
    • 나옹이
      2002.08.27 01:07
      C:test.txt 일케 했는데요... ZipFileName := 'c:ZipTest.zip'; 일케두 바꾸공.... 걍 주거버리내...
    • 나옹이
      2002.08.27 01:13
      디렉토리를 하니깐....잘 되는뎅.... test.txt 라고 파일 하나만 압축하라고 지정하니깐...못하네요... ...
    • 안경훈
    • 2002.08.26 19:41
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 2002.08.26 22:03
      var   Series1 : TLineSeries; begin   Series1 := TLineSeries.Create(Chart1); ...
    • 양종석
    • 2002.08.26 19:40
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 강혁진
      2002.08.30 22:33
      ================================================ 한델에서 답변이 없어서 다우교육장인 키미아카데...
    • 홍성락
      2002.08.26 22:50
      hsr/////////////////////////////////////////////////////////// 위 소스에서 버튼 위치가 아니러 커서 ...
    • 델파이사랑
      2002.08.26 23:33
      갈수록 델파이가 재미있어지네여.........ㅎㅎㅎ
    • 델사랑
    • 2002.08.26 18:29
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 한원희
      2002.08.26 23:02
      안녕하세요. 한원희입니다. 스크롤바 메시지 중에, WM_VSCROLL 메시지가 있습니다. 스크롤바를 움직일 ...
    • 김종균
    • 2002.08.26 11:26
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 바다를향해
      2002.08.26 23:16
      정확한 답변이 될런지는 모르겠지만.... 예를 들어서 NULL 은 코엑스에 가보니 코엑스몰이 없더라는 것...
    • 한원희
      2002.08.26 22:58
      안녕하세요. 한원희입니다. Null은 Variant 타입에만 적용되는 것으로 Nil과는 용법이 다릅니다. 다른 ...
    • 이추형
      2002.08.28 02:19
      일단 실시간으로 데이타가 쌓이는 테이블에 대해서 Range Scan은 잘 사용하지 않는것으로 압니다. 왜냐하...
    • YoungMan
      2002.08.26 05:23
      테이블 이나 쿼리 컴포넌트 위에서 마우스 오른쪽버튼 눌러서 필드에디터를 부르시면 DisplayFormat라는 ...
    • 이성근
    • 2002.08.26 03:54
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 한원희
      2002.08.26 23:13
      안녕하세요. 한원희입니다. 제가 보기에는 마이다스의 ClientDataSet으로 로컬 DB를 만드신 후에, 이를 ...
    • 김헌대
    • 2002.08.25 20:26
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이민수
      2002.08.25 21:37
      바코드가 어떤건지 잘 모르겠는데여... 버튼같은거 클릭해서 이벤트 뼈대 만드신 다음에 barcode1 ...
    • 김헌대
      2002.08.25 23:58
      제가 쓰는건 Zbarcode인데여.. 소스봐도 잘모르겠어여.. 워나기 초보라서.. 아마두.. 소스보면 이런부...
    • 이민수
      2002.08.26 07:56
      이건 컴포넌트를 실행시에 동적으로 생성해서 사용할 때 필요한거구요 디자인할 때 폼에 추가시킨 것은...
    • 유성욱
    • 2002.08.25 08:58
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2002.08.25 11:49
      안녕하세요 하얀까마귀 입니다. 넘 어렵게 생각하신것 같네요.. 그냥 간단한겁니다. var  &nb...
    • 유성욱
      2002.08.26 08:58
      ^^ 감사합니다.  제가 초보라서 한가지만 더 여쭤볼께요 역변환은 어떻게 하죠. 어떤 함수...
    • 유희철
    • 2002.08.25 07:42
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2002.08.25 11:53
      안녕하세요 하얀까마귀 입니다. SDI 라면 간단하게 폼에서 코드몇줄 써주시면 될것 같네요.. 폼에 보...
    • 유희철
      2002.08.25 22:14
      답변 감사드립니다 님두 즐거운하루되세요 ^ ^
    • 조걸
    • 2002.08.25 06:02
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2002.08.25 12:02
      안녕하세요 하얀까마귀 입니다. 딱히 답변이라고는 못하겠고.. 프로그래밍 하면서 좀 기분나쁜게.. ...
    • 이민수
      2002.08.25 08:41
      대개 컴포넌트를 쓰면 편합니다. 폼모양 바꾸는거, 타이틀바 없애거나 버튼추가/제거하는거, 테두리...
    • 하병준
      2002.08.26 21:28
      움 디자인이라면 스킨엔진이라는 컴포넌트가 잇씁니다.~ 원하는 (버튼,폼 패널, 등등의 여러 컨트롤)의 ...
    • 최용일
      2002.08.24 22:47
      안녕하세요. 최용일입니다. WM_NCLBUTTONDBLCLK메세지를 이용하세요... type    &nb...