Q&A

  • 동적생성한 버튼에서 이벤트를 발생시킬때..
안녕하세요. 동적생성한 버튼에서 이벤트를 발생시킬때..

B.OnClick := FindNode;

위와 같이 코딩을 했습니다. 그런데 문제는 동적생성한 버튼이 하나가 아니라

열개나 그 이상이라고 했을때, 어떤 버튼에서 이벤트를 받았는지 알아야 각각

의 버튼이 눌려졌을때 실행할 수 있는 프로시져를 작성할 수 있을 것 같은데요

어떻게 하면 되나요? 버튼을 동적생성할때 사용한 코드는 아래와 같습니다.

for Count := 1 to 30 do

begin

B[Count] := TButton.Create(Self);

B[Count].Parent := self;

B[Count].Onclick := FindNode; //이렇게 하면 30개 각각에 동일한 프로

... // 시져가 연결이 되거든요.

...

end;



버튼을 한꺼번에 열개 이상을 만들어 놓고 각각의 버튼에 각기 다른 OnClick이벤트 프로시져를 발생시키는 방법을 가르쳐 주시면 정말 고맙겠습니다.

1  COMMENTS
  • Profile
    최석기 1999.06.18 18:33
    북해 께서 말씀하시기를...

    > 안녕하세요. 동적생성한 버튼에서 이벤트를 발생시킬때..

    > B.OnClick := FindNode;

    > 위와 같이 코딩을 했습니다. 그런데 문제는 동적생성한 버튼이 하나가 아니라

    > 열개나 그 이상이라고 했을때, 어떤 버튼에서 이벤트를 받았는지 알아야 각각

    > 의 버튼이 눌려졌을때 실행할 수 있는 프로시져를 작성할 수 있을 것 같은데요

    > 어떻게 하면 되나요? 버튼을 동적생성할때 사용한 코드는 아래와 같습니다.

    > for Count := 1 to 30 do

    > begin

    > B[Count] := TButton.Create(Self);

    > B[Count].Parent := self;

    > B[Count].Onclick := FindNode; //이렇게 하면 30개 각각에 동일한 프로

    > ... // 시져가 연결이 되거든요.

    > ...

    > end;

    >

    > 버튼을 한꺼번에 열개 이상을 만들어 놓고 각각의 버튼에 각기 다른 OnClick이벤트 프로시져를 발생시키는 방법을 가르쳐 주시면 정말 고맙겠습니다.





    FindNode에서 Sender가 누구인지 아는 방법이라면 다음과 같이 하면 될꺼 같은데요..



    procedure TForm1.FindNode(Sender: TObject);

    var i: integer;

    begin

    for i := Low(B) to High(B) do begin

    if Sender = B[i] then

    break;

    end;



    case i of

    1: ShowMessage(IntToStr(i)); //각 버턴에 맞는 루틴을 이부분에

    //쓰면 되겠죠.

    2: ShowMessage(IntToStr(i));

    3: ShowMessage(IntToStr(i));

    4: ShowMessage(IntToStr(i));

    5: ShowMessage(IntToStr(i));

    6: ShowMessage(IntToStr(i));

    7: ShowMessage(IntToStr(i));

    8: ShowMessage(IntToStr(i));

    9: ShowMessage(IntToStr(i));

    .

    .

    .

    end;

    end;



    • 이정욱
      1999.04.11 08:10
      비베와 델파이... 사용자적 입장에서 봐야 합니다. 만약에 빌게이츠 처럼 베이직을 좋아하는 사람이라면,...
    • 하윤철
    • 1999.06.18 20:09
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.06.20 06:18
      컴파일 하실때 Debug정보등을 같이 넣어놓고 컴파일 하셔서 그러는 경우도 있을 수 있습니다. 컴파일 옵션...
    • 이정욱
      1999.04.11 08:10
      비베와 델파이... 사용자적 입장에서 봐야 합니다. 만약에 빌게이츠 처럼 베이직을 좋아하는 사람이라면,...
    • 김영묵
    • 1999.04.07 17:48
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.04.08 22:57
      현재 사용하시는 델파이 버전이 어떻게 되는지요? 김영묵 wrote: > 안녕하세요.. 처음으로 이곳에 도착...
    • 김영묵
      1999.04.09 04:41
      델파이 3.0 c/s버전입니다. 참고로 BDE에서 BLOB chace size를 늘려주었는데도 안됩니다. 이정욱 ...
    • 이정욱
      1999.04.10 19:21
      사실은 제가 DB쪽은 잘 모르지만.. ^^; 오라클 8.0을 제데로 지원할 수 있는것은 델파이4라고 하네요. 오...
    • 박형진
    • 1999.06.18 18:26
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최석기
      1999.06.18 18:57
      박형진 께서 말씀하시기를... > 안녕하세요 답변이 없어서 다시올립니다 > quickreport 미리보기를 for문...
    • 이해진
    • 1999.04.10 06:52
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김영묵
      1999.04.10 18:43
      다음과 같이 해보세요... sql.add('select * from smf_db where s_subject like ''%'+edit1.text+'%'' o...
    • 북해
    • 1999.06.18 18:04
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최석기
      1999.06.18 18:33
      북해 께서 말씀하시기를... > 안녕하세요. 동적생성한 버튼에서 이벤트를 발생시킬때.. > B.OnClick := ...
    • 이해진
    • 1999.04.10 06:52
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김영묵
      1999.04.10 18:43
      다음과 같이 해보세요... sql.add('select * from smf_db where s_subject like ''%'+edit1.text+'%'' o...
    • 박성훈
    • 1999.06.18 17:18
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최석기
      1999.06.18 18:20
      박성훈 께서 말씀하시기를... > 실행중에 노트북컴포넌트의 페이지를 필요한 수만큼 생성시키고, 각 페이...
    • 김영묵
    • 1999.04.07 17:48
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.04.08 22:57
      현재 사용하시는 델파이 버전이 어떻게 되는지요? 김영묵 wrote: > 안녕하세요.. 처음으로 이곳에 도착...
    • 김영묵
      1999.04.09 04:41
      델파이 3.0 c/s버전입니다. 참고로 BDE에서 BLOB chace size를 늘려주었는데도 안됩니다. 이정욱 ...
    • 이정욱
      1999.04.10 19:21
      사실은 제가 DB쪽은 잘 모르지만.. ^^; 오라클 8.0을 제데로 지원할 수 있는것은 델파이4라고 하네요. 오...
    • 최석기
      1999.06.18 18:09
      유원주 께서 말씀하시기를... > var >   v : variant; > begin >   v := CreateOLEObject('Excel.App...
    • qreport
    • 1999.04.08 22:36
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.04.08 23:03
      com이라는 컴포넌트가 무엇인지요? 세로는 되는데 가로는 안된다면... 확실하지는 않지만 가로의 길이가...
    • 이진수
    • 1999.04.08 19:05
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.04.08 23:01
      C++로 만든 DLL을 사용하시려면 먼저 *.h의 헤더파일을 델파이용으로 변환하셔야 합니다. 그러면 그 이후에...
    • 하윤철
      1999.06.18 17:28
      이소라 께서 말씀하시기를... > Readln(파일명,그리고 뭐더라.....)파라미터를 도움말을 봤는데 뭐라고 하...
    • 이소라
      1999.06.19 04:13
      하윤철 께서 말씀하시기를... > 이소라 께서 말씀하시기를... > > Readln(파일명,그리고 뭐더라.....)파...
    • 이소라
      1999.06.19 02:54
      하윤철 께서 말씀하시기를... > 이소라 께서 말씀하시기를... > > Readln(파일명,그리고 뭐더라.....)파...
    • 박성훈
      1999.06.18 17:10
      하수인 제가 한마디. 정확한지는 모르지만(하수의 특징) AssignFile로 만들어진 파일은 ASCII형태의 파일...
    • 김영묵
    • 1999.04.07 17:48
    • 5 COMMENTS
    • /
    • 0 LIKES
    • Heaven
      1999.06.18 10:20
      안녕하세요? 항상 도움을 많이 받는 Heaven입니다. DBGrid에서 궁금한것이 있어 이렇게 질문을 드립니...
    • 이정욱
      1999.04.08 22:57
      현재 사용하시는 델파이 버전이 어떻게 되는지요? 김영묵 wrote: > 안녕하세요.. 처음으로 이곳에 도착...
    • 박성훈
      1999.06.18 17:05
      만약 DBGrid가 Table1과 연결되어 있고 Name이라는 필드로 이동하려면 BDGrid1.SelectedField:=Table1Name...
    • 김영묵
      1999.04.09 04:41
      델파이 3.0 c/s버전입니다. 참고로 BDE에서 BLOB chace size를 늘려주었는데도 안됩니다. 이정욱 ...
    • 이정욱
      1999.04.10 19:21
      사실은 제가 DB쪽은 잘 모르지만.. ^^; 오라클 8.0을 제데로 지원할 수 있는것은 델파이4라고 하네요. 오...