델파이 초보라서 맨땅에 해딩하는 심정이군요.
Panel 위에 Label 을 3개쯤 올려놓은 콤포넌트를 만들려고 하는데요.
책을 보니 조상콤포넌트를 선정해서 만드는 예제가 있더군요..
책의 예제는 대충은 따라해봤는데,,
이런식으로 하면되는거 아닌가 했는데,, 폼에 배치하니 에러가 나서요..
좀 도와주시기를... 흑흑,,
unit MyPanel;
interface
uses
Windows, Messages, SysUtils, Classes, Controls, StdCtrls, ExtCtrls;
type
TMyPanel = class(TPanel)
A1 : TLabel;
A2 : TLabel;
A3 : TLabel;
private
{ Private declarations }
FHeadCaption : string; // A1에 들어갈 문자열
FTitleCaption : string; // A2에 들어갈 문자열
FBodyCaption : string; // A3에 들어갈 문자열
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
published
{ Published declarations }
Property HeadCaption : string read FHeadCaption write FHeadCaption ;
// A1에 들어갈 문자열
Property TitleCaption : string read FTitleCaption write FTitleCaption ;
// A2에 들어갈 문자열
Property BodyCaption : string read FBodyCaption write FBodyCaption ;
// A3에 들어갈 문자열
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Samples', [TMyPanel]);
end;
constructor TMyPanel.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
A1.Align := alTop;
A2.Align := alTop;
A3.Align := alClient;
end;
end.
// 강좌찾아보라고 좀 않했으면,,, 나도 다 찾아본건데
수고하십니다. ^____________^
델파이 디자인 환경에서 콤포넌트를 폼에 올려 놓으면 콤포넌트 생성을 시켜 줍니다.
코더가 콤포넌트를 사용하려면 직접 생성 시켜야 합니다.
클래스에는 Parent 와 Owner 가 있습니다. 두개가 다 설정되어야 합니다..^^
constructor TMyPanel.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
A1 := TLabel.Create(Self);
A1.Parent := Self;
A2 := TLabel.Create(Self);
A2.Parent := Self;
A3 := TLabel.Create(Self);
A3.Parent := Self;
A1.Align := alTop;
A2.Align := alTop;
A3.Align := alClient;
end;
와 같이 하면 생성 됩니다.
다음에 세 레이블의 사이즈를 정해야 겠죠.
그리고 Close() 이벤트에서 생성한 세 레이블의 인스턴스를 모두 제거해야 겠죠.
즐푸하세여..
타락천사..