C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[76372] Re:Re:Re:exe파일 실행 속도 관련
Alone [] 547 읽음    2022-11-12 22:35
아.., 당연히 아실거라 생각하고 안적었는데...
핸들러의 Object 주체가 달라지니까요. 아래처럼 Sender를  이용합니다.

void __fastcall TForm1::B_Click(TObject *Sender)
{
       // 클릭된 Button을 btn이란 이름으로 받아옵니다.
       // TButton *btn = dynamic_cast<TButton *>(Sender);  
       TButton *btn = (TButton *)Sender;    // 여기서는 TButton만 걸리니까. 바로 TButton *로 받아도 됩니다.
      
       Edit1->Text = btn->Tag;  // Tag 값 확인용
       switch (btn->Tag) {
    case 1 : Edit2->Text = "1"; break;
    case 2 : Edit2->Text = "2"; break;



님이 쓰신 글 :
: Alone님 감사합니다. ^-^  답변을 포기 하고 있었습니다.. ㅜ
: 음 그런데.. 답변 해주신 내용으로 해보았으나.. Tag값이.. 0으로만 들어옵니다.
:
: Form1 에 버튼 2개를 만들고 Edit 2개를 만들어 테스트를 했습니다.
: Button1의 Tag는 1 , Button2의 Tag는 2  이렇게 설정하고.. 실행했습니다.
:
: code 내용..
:
: [unit1.h]
: void __fastcall B_Click(TObject *Sender);
:
: [unit1.cpp]
: void __fastcall TForm1::B_Click(TObject *Sender)
: {
: Edit1->Text = Tag;  // Tag 값 확인용
: switch (Tag) {
:     case 1 : Edit2->Text = "1"; break;
:     case 2 : Edit2->Text = "2"; break;
:     }   
: }
:
: 값이.. 계속 0으로만 들어옵니다..  제가 놓친게.. 있나요.. ㅜ
:
:
:
:
:
:
: Alone 님이 쓰신 글 :
: : 음,  버튼 클릭 이벤트 핸들러가 많아지면 그렇게 느려진다고 하시니...
: : 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);
: : :
: : : 빠른 프로그램은 호출 함수가 하나도 없습니다..
: : : 물론 느렸던 프로그램에 호출함수를 주석처리하면 빨라집니다..
: : :
: : : 저는 파일을 실행 했을때 빨리 화면이 떳으면 합니다.. 좋은 방법이 있을까요 ?
: : : 매우 초보입니다.. 쉽게 부탁 드려봅니다..
: : :
: : : 감사합니다.

+ -

관련 글 리스트
76342 exe파일 실행 속도 관련 라이손레종 791 2022/10/14
76362     Re:exe파일 실행 속도 관련 Alone 633 2022/11/02
76371         Re:Re:exe파일 실행 속도 관련 590 2022/11/11
76372             Re:Re:Re:exe파일 실행 속도 관련 Alone 547 2022/11/12
76374                 Re:Re:Re:Re:exe파일 실행 속도 관련 라이손레종 552 2022/11/12
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.