음, 버튼 클릭 이벤트 핸들러가 많아지면 그렇게 느려진다고 하시니...
ButtonClick 라는 이벤트 핸들러를 딱 하나만 만드시고,
모든 버튼을 이 핸들러에 Click 이벤트를 걸어주시구요.
각 버튼의 Tag 값을 서로 다르게 지정하신 후, Tag 별로 핸들러 내에서 처리하시면,
핸들러 하나에 서 버튼 Tag별 처리를 하실 수 있습니다.
switch(Tag) {
case 1:
// Tag가 1인 버튼의 할 일
break;
case 2:
break;
....
}
라이손레종 님이 쓰신 글 :
: 안녕하세요 ? 오랜만에 방문한 초보입니다..
:
: 다름이 아니라.. 프로그램 단순 실행 속도를 개선 하고 싶습니다. (실행 후 연산이 아닌..)
:
: 현재
: Form1에 Button을 35개 배치하여,
: 각 버튼 마다 아주 단순한 기능을 넣었습니다. Button 클릭시 Edit1->Text = "A"; 이런 정도.
: 컴파일후 파일을 실행하면 약 3초 가까이 걸려서 프로그램이 뜹니다.
: 버튼이 많이 늘어날때마다 느려지는게 체감이 됩니다.
:
: 무엇 때문에 그런지 테스트용으로
: 새로운 Form1에 단순히 컴포넌트를 100개 이상 넣어 컴파일해보았는데
: 실행 파일의 속도는 느리거나 하지 않습니다. 약 1초이내 프로그램이 뜹니다.
:
:
: 두 차이점이..
: 느린 프로그램은 아래 처럼 버튼이나 컴포넌트 호출 함수가 많았고..
: void __fastcall Button1Click(TObject *Sender); ~ void __fastcall Button35Click(TObject *Sender);
:
: 빠른 프로그램은 호출 함수가 하나도 없습니다..
: 물론 느렸던 프로그램에 호출함수를 주석처리하면 빨라집니다..
:
: 저는 파일을 실행 했을때 빨리 화면이 떳으면 합니다.. 좋은 방법이 있을까요 ?
: 매우 초보입니다.. 쉽게 부탁 드려봅니다..
:
: 감사합니다.
|