이벤트 루틴을 40개를 복사해서 만들지 말고 하나로 통일해서 아래처럼 쓰세요.
TMaskEdit *me = dynamic_cast<TMaskEdit*>(Sender);
switch(Key)
{
case VK_UP:
if (StrToInt(me->Text)>=255); else me->Text = StrToInt(me->Text) + 1;
break;
case VK_DOWN:
if (StrToInt(me->Text)<=0); else me->Text = StrToInt(me->Text) - 1;
break;
} //switch
-locke
Homin 님이 쓰신 글 :
: 40여개의 TEdit가 Form1에 있습니다.
: TEdit에는 각각 숫자가 들어 있습니다.
:
: 예를들어 TEdit1에 focus를 한 후, 키보드 up과 down으로 움직이면 값이 변하는 것을 하려고 합니다.
: 각각 하나의 TEdit의 이벤트에 coding하는것은 너무 비효율 적인것 같아서
: up/down코드를 작성 후, focusing이 된 객체의 Text를 바꿔 주려고 하는데요...
: Screen->ActiveControl->Name을 이용하여 각 TEdit의 이름은 가져 올 수 있는데, Text를 어떻게 가져오는지가 궁금합니다.
:
: 아래와 같은 코드를 40개나 복사하려니..... ㅠㅠ
:
:
: void __fastcall TForm1::MaskEdit1KeyDown(TObject *Sender, WORD &Key,
: TShiftState Shift)
: {
: switch(Key)
: {
: case VK_UP:
: if(StrToInt(MaskEdit1->Text)>=255);
: else
: MaskEdit1->Text = StrToInt(MaskEdit1->Text)+1;
: break;
: case VK_DOWN:
: if(StrToInt(MaskEdit1->Text)<=0);
: else
: MaskEdit1->Text = StrToInt(MaskEdit1->Text)-1;
: break;
: }
: }
: |