Q&A

  • 컴포턴트
패널의 컴포넌트는 상속받아 쓰고

여기에서 에디트와 레이블은 선언하여 사용할것입니다.

책에 있는 그대로인데 compile이 되지 않네요

이유좀 알려주세요

부탁합니다.


unit JJunEdit;

interface

uses
  SysUtils, Classes, Controls, ExtCtrls;

type
  TJJunEdit = class(TPanel)     // 패널을 상속받은 사용자 패널

  private
    { Private declarations }
    LabelS : TLabel;            // 에디트와 레이블의 특성을 사용할 것이므로
    EditS : TEdit;              // [Private]이곳에 선언

  protected
    { Protected declarations }

  public
    { Public declarations }
    constructor Create(Aowner:Tcomponent);override;

  published
    { Published declarations }
    // 에디트의 프로퍼티속성을 사용할 수 있도록 연결
    property EditK:TEdit read EditS write EditS;
    // 레이블의 프로퍼티속성을 사용할 수 있도록 연결
    property LabelK:TLabel read LabelS write LabelS;
  end;

procedure Register;

implementation
constructor TJJunEdit.Create(Aowner:Tcomponent);        // 직접 상속받은것
Begin
    inherited Create(Aowner);
    caption := ' ';
    width := 131;
    height := 50;

    EditS := TEdit.Create(self);
    EditS.parent := Self;
    EditS.font.Name := '굴림체';
    EditS.font.Size := 10;
    EditS.left := 5;
    EditS.top := 19;
    EditS.width := width-10;
    EidtS.text := '';
    EditS.show;

    LabelS := TLabel.Create(self);
    LabelS.parent := self;
    LabelS.font.name := '굴림체';
    LabelS.font.size := 10;
    LabelS.left := 7;
    LabelS.top := 5;
    LabelS.width := width - 10;
    LabelS.show;
end;

procedure Register;
begin
  RegisterComponents('Samples', [TJJunEdit]);
  // 컴포넌트팔레트의 Samples페이지에 등록
end;

initialization
    // 직접 선언되지 않았으므로 초기화할 때 클래스를 등록한다.
    RegisterClasses([TEdit]);
    RegisterClasses([TLabel]);
end.
0  COMMENTS