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
[12343] Re:콜님 다시 한번 부탁드립니다. Re:UpDown컴포넌트를 눌렀을때 hex값으로 증가시키게 할수 있
[] 736 읽음    2001-11-05 18:48
이런 문제는 기준을 잘 잡아야 합니다.
왜 이런 기능이 필요한지는 잘 모르겠지만..
지금 님께서 원하시는 기능은 기능 자체에 일관성이 없어보입니다.

28일때 옵션2로 해서 29,2A,2B로 증가하는건 말이 되지만..
거꾸로 2C일때 옵션을 1로 바꾸면 어떻게 되는거죠.?
이 부분이 정의되지 않았으니 구현도 알쏭달쏭할 수 밖에요.

자 그럼.. 위문제부터 풀면..
기준을 UpDown콤포의 Position이라고 하면 됩니다. 물론 십진수면 되죠.
Position은 UpDown콤포에서 내부 숫자를 저장하기 위해 사용합니다.
Edit와 연결되면 이 Position값이 십진수로 변환되서 보여지는거구요.

그러니까 Edit콤포하고는 연결하지 말고 옵션에 따라서 보여주는 숫자 형태를
10진수 또는 16진수로 하면 되겠죠.

여기서 문제는 28이란 숫자를 16진수로 봤을때 이것을 다시 10진수로 바꿔서
Position에 저장해야 보여지는 숫자가 제대로 나오겠죠.?

그래서 옵션이 16진수로 바뀐다면..
UpDown1->Position = AnsiString("0x"+Edit1->Text).ToInt();
이렇게 다시 16진수 값으로 바꿔주고
Edit콤포에 표시할때도 16진수로 표시하면..
십진수 28이 16진수 28로 표시가 되겠죠.

이해가 되셨나여??

그럼... 좋은 프로그램 만드시길.. ^^

PS.
제 아이디는 '콜'이 아니라 '꼴'이라고 불러주세요.




heartsim 님이 쓰신 글 :
: 답변 주신내용에 대해 정말 감사드립니다.
:
: 근데 문제가 있는데요.
: 처음부터 값을 증가시키는 것은 이해를 했습니다.그런데 ....
:
: Edit5->Text에는 숫자 값이 이미 들어가 있습니다.
: 이 상태에서 UpDown컴포넌트를 누르면 1씩 증가가 되지요.
: 근데 어떤 옵션에서는 UpDown 컴포넌트를 누르면 hex값으로 증가를 시켜야 되거든요.
: 가령 Edit5->Text에 28이란 숫자가 들어가 있으면 이것을 hex값으로 증가시켜야 됩니다.
: 옵션 1의 경우는 그냥 28, 29, 30, 31..........
: 옵션 2의 경우는      28, 29, 2A, 2B, 2C,.....
: ^^넘 질문이 많아서 죄송하네요.
: 아참 한가지 더 있는데, UpDown컴포넌트에서 Position의 의미가 뭔지 알려주시면 감사.
: 아직 초보라 많이 모릅니다. 이해해 주십시요.^^
: 좋은 하루 되세요.
:
:
:
:
:
:
:
:
:
: 생각을 좀 바꿔 봅시다.
: 이미 자동으로 증가 잘되는 UpDown콤포넌트는 그냥 나두고
: 보여주는 숫자만 16진수로 보여주면 되겠죠
:
: 자~ 해볼까요.
: Edit콤포넌트 두개 떨어뜨리고
: Edit1 Change이벤트랑
: UpDown1 Click이벤트에 아래 처럼 코딩하세요.
: 주의할건 UpDown1의 Associate 프로퍼티는 그냥 비워두셔야 함다.
:
:
: void __fastcall TF_Child1::Edit1Change(TObject *Sender)
: {
:     Edit1->Text = AnsiString::IntToHex(UpDown1->Position, 4);
: }
: //---------------------------------------------------------------------------
: void __fastcall TF_Child1::UpDown1Click(TObject *Sender, TUDBtnType Button)
: {
:    Edit1->Text = UpDown1->Position;
:    Edit2->Text = UpDown1->Position;
:
: }
:
: 박경원 님이 쓰신 글 :
: : 안녕하세요.
: : 질문이 있답니다.
: : 잘 안되서요..^^
: :
: : UpDown컴포넌트를 TEdit컴포넌트와 결합시키는 것까지는 성공을 했고,
: : 또 윗쪽 화살표버튼을 눌렀을 때는 1씩 증가하고 아랫쪽 화살표 버튼을
: : 누르면 1씩 자동 감소하더라구요.(하나도 코딩작업없이 컴포넌트가 알아서 다 지원해주더군요)
: :
: : 근데 문제는 일반숫자증가가 아니라 hex값으로 증가를 시켜야 되거든요.
: : 가령 Edit컴포넌트에 24라는 숫자가 있을때 UpDown컴포넌트를 증가하는 방향으로 눌렀을때
: : 25, 26, 27, 28, 29, 2A, 2B, 2C, 2D, 2E, 30........
: : 이런 식으로 해야하는데 잘 안돼네요.............
: : 도움좀 주세요.
: : 제 생각에는 UpDown컴포넌트의 이벤트를 이용해서 해야 할 듯 한데요...^^
: : UpDown컴포넌트 이벤트 중에 OnChange이벤트와 OnMouseUp, OnMouseDown 이벤트의 차이점에 대해서도
: : 설명좀 해주십시요.
: :
: : 그럼 기다리겠습니다.^^
: : 즐거운 하루되세요

+ -

관련 글 리스트
12340 콜님 다시 한번 부탁드립니다. Re:UpDown컴포넌트를 눌렀을때 hex값으로 증가시키게 할수 있나요 heartsim 720 2001/11/05
12343     Re:콜님 다시 한번 부탁드립니다. Re:UpDown컴포넌트를 눌렀을때 hex값으로 증가시키게 할수 있 736 2001/11/05
12361         Re:Re:콜님 다시 한번 부탁드립니다. Re:UpDown컴포넌트를 눌렀을때 hex값으로 증가시키게 할수 heartsim 672 2001/11/06
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.