소스를 보시면 알겠지만,
버튼을 클릭하면 새로운 폼을 띄우고, 그 폼에 버튼을 하나 올린뒤
그 버튼을 클릭하면, ShowMessage를 띄우려고 합니다.
그런데, 생각만큼 쉽게 되지는 않는 군요...
좋은 방법이 없을까요???
그럼.. 안녕히 계시구요... 날씨가 쪼금 쌀쌀한데 건강들 조심하셔요..!! ^^
unit But;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TBut = class(TButton)
private
{ Private declarations }
Frm : TForm;
TBtn : TButton;
protected
{ Protected declarations }
procedure Click; override;
public
{ Public declarations }
published
{ Published declarations }
end;
TBtn = class(TBut)
procedure Click; override;
end;
procedure Register;
implementation
procedure TBut.Click;
begin
//inherited Click;
Frm := TForm.Create(Application);
TBtn := TButton.Create(Self);
TBtn.ParentWindow := Frm.Handle;
TBtn.Left := 50;
TBtn.Top := 50;
Frm.show;
end;
procedure TBtn.Click;
begin
inherited Click;
ShowMessage('성공');
end;
procedure Register;
begin
RegisterComponents('Samples', [TBut]);
end;
end.
저번에도 폼을 선택해서 실행하는거 만드신것 같은데...
이번에도 신기한 버튼이네요......
우선.. 아마 두번째 생성된 폼의 버튼은 따로 실행되어야 하는것 같은데.. 맞는지요..
우선 그럼.. 버튼이 따로 있어야 겠죠???/
클래스를 두개 등록하는게 제일 간단하겠네요..
type
TBut = class(TButton)
private
{ Private declarations }
Frm : TForm;
//TBtn : TButton; <-----------------------이거 삭제...
protected
{ Protected declarations }
procedure Click; override;
public
{ Public declarations }
published
{ Published declarations }
end;
/// 이건 똑같이 하시구요..
// 하나더 만드세요..
type
TBtn = class(TButton)
private
{ Private declarations }
protected
{ Protected declarations }
procedure Click; override;
public
{ Public declarations }
published
{ Published declarations }
end;
그럼.. 비슷하게