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
[76374] Re:Re:Re:Re:exe파일 실행 속도 관련
라이손레종 [] 591 읽음    2022-11-12 23:23
Alone님 감사합니다!

전문으로 하는게 아니라.. 취미로 혼자 공부하다보니.. 깊이가 얕습니다.. ^-^
쉽게 풀이해주셔서 고맙습니다.

Alone님 덕분에 많은 도움이 되었습니다!  좋은 주말 되세요~!




Alone 님이 쓰신 글 :
: 아.., 당연히 아실거라 생각하고 안적었는데...
: 핸들러의 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파일 실행 속도 관련 라이손레종 848 2022/10/14
76362     Re:exe파일 실행 속도 관련 Alone 672 2022/11/02
76371         Re:Re:exe파일 실행 속도 관련 628 2022/11/11
76372             Re:Re:Re:exe파일 실행 속도 관련 Alone 585 2022/11/12
76374                 Re:Re:Re:Re:exe파일 실행 속도 관련 라이손레종 591 2022/11/12
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.