Q&A

  • [컴포넌트]저의 부실한 소스에 친절한 조언 부탁드립니다..
소스를 보시면 알겠지만,

버튼을 클릭하면 새로운 폼을 띄우고, 그 폼에 버튼을 하나 올린뒤

그 버튼을 클릭하면, 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.

2  COMMENTS
  • Profile
    하얀까마귀 2000.05.07 03:18
    안녕하세요 하얀까마귀 입니다..



    저번에도 폼을 선택해서 실행하는거 만드신것 같은데...



    이번에도 신기한 버튼이네요......



    우선.. 아마 두번째 생성된 폼의 버튼은 따로 실행되어야 하는것 같은데.. 맞는지요..



    우선 그럼.. 버튼이 따로 있어야 겠죠???/



    클래스를 두개 등록하는게 제일 간단하겠네요..



    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;



    그럼.. 비슷하게
  • Profile
    최용일 2000.05.07 03:52
    안녕하세요. 최용일입니다.



    아래와 같이 고쳐서 해보세요. 잘되는데... 무슨 컴포넌트를 작성하는지는 모르겠지만.



    > TBut = class(TButton)

    > ...

    > Btn: TBtn; // TBtn : TButton;



    > procedure TBut.Click;

    > begin

    > ...

    > // TBtn -> Btn, TButton - > TBtn

    > Btn := TBtn.Create(Self); // TBtn -> Btn, TButton - > TBtn

    > Btn.ParentWindow := Frm.Handle;

    > Btn.Left := 50;

    > Btn.Top := 50;



    ^^ 항상 즐코하세요.



    양은주 wrote:

    > 소스를 보시면 알겠지만,

    > 버튼을 클릭하면 새로운 폼을 띄우고, 그 폼에 버튼을 하나 올린뒤

    > 그 버튼을 클릭하면, 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.

    • 남걸호
      2000.05.07 05:24
      홈페이지 wrote: > my.netian.com/~aaaa/ > > 에 있는 모든 파일목록을 알고 싶은데.. > > 어떤 ...
    • 최용일
      2000.05.07 06:11
      안녕하세요. 최용일입니다. 일반 텍스트파일은 랜덤하게 억세스하기가 상당히 까다롭습니다. 처음부터 ...
    • 이상현
    • 2000.05.07 02:10
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2000.05.07 02:44
      안녕하세요 하얀까마귀 입니다.. 1. 하나의 필드 합을 구하는것.. 원하시는 레코드만 오픈되어 있다...
    • 양은주
    • 2000.05.07 02:01
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2000.05.07 03:18
      안녕하세요 하얀까마귀 입니다.. 저번에도 폼을 선택해서 실행하는거 만드신것 같은데... 이번에도 ...
    • 최용일
      2000.05.07 03:52
      안녕하세요. 최용일입니다. 아래와 같이 고쳐서 해보세요. 잘되는데... 무슨 컴포넌트를 작성하는지는 ...
    • 하얀까마귀
      2000.05.07 01:46
      안녕하세요 하얀까마귀 입니다.. 좀 이상하네요... 당연히 보여야 할텐데... 우선 폼의 menu 에 추가...
    • 이재원
      2000.05.07 01:44
      디자인 하실때는 폼에 메뉴가 보이나요? 그리고 object inspector에서 Form의 메뉴 property 정해주셨나 ...
    • 최 소 영
      2000.05.07 01:54
      이재원 wrote: > 디자인 하실때는 폼에 메뉴가 보이나요? > 그리고 object inspector에서 Form의 메뉴 pr...
    • 하얀까마귀
      2000.05.07 01:58
      안녕하세요 하얀까마귀 입니다.. 자주 하는 말인데.. access Violation error 이 에러는 뭐가 잘못되었...
    • 김진호
    • 2000.05.07 03:38
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2000.05.07 03:29
      안녕하세요 하얀까마귀 입니다... 문제가 잘 이해가 안되네요... 오른쪽 화면밑에 나온다는 말이 ..????...
    • 김진호
      2000.05.07 03:40
      내용을 약간 수정 했네여....
    • 한석희
      2000.05.08 19:36
      병규 wrote: > 서버에 연결을 하였는데 원거리의 서버가 존재하지 않거나 시스템 다운으로 인해 연결이 ...
    • 하얀까마귀
      2000.05.07 02:10
      안녕하세요 하얀까마귀 입니다.. 서버를 찾지 못하는 경우 마찬가지로 클라이언트에서 예외를 발생시키...
    • 하늘맥
    • 2000.05.06 23:25
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이재식
      2000.05.07 01:45
      하늘맥 wrote: > update나 insert 중에 다음과 같은 에러 메세지가 발생합니다. > 'A user transaction i...
    • 이인숙
    • 2000.05.06 22:17
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2000.05.07 01:55
      안녕하세요 하얀까마귀 입니다.. 질문을 정확히 알지는 못하겠는데... 마스크 에디트에서 한글 입력...
    • nubigo
    • 2000.05.06 21:55
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 조복기
      2000.05.06 22:08
      종종 그런경우가 있는대요 프로그램 종료시 오픈되어있는 데이타셋들을 모두 닫아줘보시기 바랍니다.. ...
    • 어린왕자
      2000.05.06 22:17
      문형록 wrote: > 안녕하세요? > > sql문에서 사용하는 select 와 같은 기능은 델파이 에선 없나요? > ...
    • 조복기
      2000.05.06 22:12
      안녕하세요.. 아쉽게도 select등의 문장은 표준SQL문법입니다.. 델파이에서는 연결만 되어서 그기능...
    • young
    • 2000.05.06 19:48
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 조광석
      2000.05.06 22:14
      young wrote: > 폼에 체크박스를 두고 > > 클릭하면 dbchart의 series가 보여지고 > > 체크해제하...
    • 최용일
      2000.05.07 00:20
      안녕하세요. 최용일입니다. 레지스트리에 기록하는 방법도 있습니다. 요즘은 레지스트리를 많이 이용합...
    • nilriri
      2000.05.06 20:07
      [windows] load= run=C:V3SYSMON32.EXE NullPort=None device=삼성 Finale 8000+ (3208H/E),PCL5CH,COM...
    • 문형록
    • 2000.05.06 19:14
    • 6 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.05.07 00:14
      안녕하세요. 최용일입니다. 수없이 답변한 내용인데요. 몇일이 지났는가하는 것을 아는데에는 TTimeStam...
    • Mr.Q
      2000.05.06 21:57
      문형록 wrote: > 안녕하세요 델피언님들... > > 지금 전 새해 첫날 1월1일 부터 어떤 특정한 날이 몇...
    • DelChobo
      2000.05.06 21:37
      문형록 wrote: > 안녕하세요 델피언님들... > > 지금 전 새해 첫날 1월1일 부터 어떤 특정한 날이 몇...
    • 유도삼
      2000.05.06 20:25
      문형록 wrote: > 안녕하세요 델피언님들... > > 지금 전 새해 첫날 1월1일 부터 어떤 특정한 날이 몇...
    • 이창영
      2000.05.06 20:06
      > 지금 전 새해 첫날 1월1일 부터 어떤 특정한 날이 몇일이 지났는지 알고파서 코딩중 > 입니다. > 하...
    • 문형록
      2000.05.06 20:13
      너무 난해하내요... 좀 해설좀 부탁해요
    • DelChobo
      2000.05.06 21:42
      박설화 wrote: > 안녕하세요? 즐거운 주말입니다. > 다름이 아니오라 한 폼에서 3개의 db를 불러오는데 ...