|
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1KeyUp(TObject *Sender, WORD &Key, TShiftState Shift)
{
if(Edit1->Text.Length() >= 5)
Edit1->Font->Color = clMaroon;
else
Edit1->Font->Color = clBlack;
}
//---------------------------------------------------------------------------
위의 소스는 Edit1의 입력된 글자길이가 5글자 이상이면 글자를 빨간색으로 바꾸는 예제입니다.
주의하실 사항은, 키 입력에 관련된 이벤트가 KeyDown, KeyPress, KeyUp 이 세개가 있는데, KeyDown 과 KeyPress는 키 입력이 되고 화면에 뿌려지기 전 (즉, 처리되기 전) 에 발생하는 이벤트기 때문에, 위의 이벤트에서 처리를 하시면 정확한 결과를 얻기 어렵습니다.
그래서 KeyUp 이벤트를 사용하셔야 하고요..
Q&A의 터줏대감 님이 쓰신 글 :
: 이 게시판의 문답에서
: 항상 도움을 많이 받고 있는
: 빌더초보입니다.
: 오늘도 역시 도움을 얻고자 다시 왔습니다.
: 생각해보면 별로 어려울 것 같지 않은데
: 잘 안되네요.
: 컴포넌트 중에 에디트에서 조건에 따라
: 폰트의 색을 바꾸는 방법이 궁금합니다.
: Q&A를 많이 뒤져 봤는데
: 잘 이해가 되지 않고
: 생각만큼 쉽지 않은 것 같던데..
: 이미 이 문제를 해결하신 분들의
: 도움을 기다립니다...
|