Q&A

  • 버튼을 동적으로 생성시....
버튼을 동적으로 생성할 때 의 문제입니다.

이런 코드를 넣으면 버튼이 동적으로 생성되는데





mybutton := TButton.create(self);

mybutton.parent := form1;

mybutton.height := 40;

mybutton.width := 100;

mybutton.caption := 'hi';

mybutton.left := 60;

mybutton.top := 30;





문제는 이것이 formcreate나 다른 버튼을 이용해서 click 메소드에서

하면 되는데...

폼을 클릭하는 formclick 에서는 이것이 안되는데..

이것이 왜 그럴까요. 좀 가르쳐주세요.

왜 그럴까요?

2  COMMENTS
  • Profile
    안치봉 1999.10.12 11:04
    아래는 제가 해본건데 잘됩니다... 소스를 다시한번 찬찬히 보십시오.

    의외로 버그는 간단한 것일수도 있습니다.



    unit Unit1;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, stdctrls;



    type

    TForm1 = class(TForm)

    procedure FormClick(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;



    var

    Form1: TForm1;



    implementation



    {$R *.DFM}



    procedure TForm1.FormClick(Sender: TObject);

    var

    mybutton: TButton;

    begin

    mybutton := TButton.create(self);

    mybutton.parent := form1;

    mybutton.height := 40;

    mybutton.width := 100;

    mybutton.caption := 'hi';

    mybutton.left := 60;

    mybutton.top := 30;







    end;



    end.





    고한석 wrote:

    > 버튼을 동적으로 생성할 때 의 문제입니다.

    > 이런 코드를 넣으면 버튼이 동적으로 생성되는데

    >

    >

    > mybutton := TButton.create(self);

    > mybutton.parent := form1;

    > mybutton.height := 40;

    > mybutton.width := 100;

    > mybutton.caption := 'hi';

    > mybutton.left := 60;

    > mybutton.top := 30;

    >

    >

    > 문제는 이것이 formcreate나 다른 버튼을 이용해서 click 메소드에서

    > 하면 되는데...

    > 폼을 클릭하는 formclick 에서는 이것이 안되는데..

    > 이것이 왜 그럴까요. 좀 가르쳐주세요.

    > 왜 그럴까요?

  • Profile
    이대우 1999.10.13 02:13
    그런데요 ...

    그것이 버튼이나 에디트 박스는 되는데...

    PANEL과 SHAPE는 그게 안되더라고요.. 왜 그렇죠?

    이것들을 꼭 동적으로 생성시켜야 하는데..

    해결책을 좀 알려주세요..