|
// Header
//---------------------------------------------------------------------------
private:
String g_ShapeName;
String g_OldShapeName;
// Source
//---------------------------------------------------------------------------
void __fastcall TForm1::AllShapeMouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
g_ShapeName = ((TShape*)Sender)->Name; // 님께서 하신대루 dynamic_cast를 해줘도 되겠져
if(g_OldShapeName == g_ShapeName)
return;
RichEdit1->Lines->Clear(); // if문 마다 Clear를 넣어주는것 보단 깔끔하겠죵.
if(Sender == A)
{
RichEdit1->Lines->Add("Device");
RichEdit1->Lines->Add("..........");
}
else if(Sender == B)
{
RichEdit1->Lines->Add("View");
RichEdit1->Lines->Add("!!!!!!!!!!");
}
else if(Sender == C)
{
RichEdit1->Lines->Add("Doc");
RichEdit1->Lines->Add("@@@@@@@@@@");
}
else if(Sender == D)
{
RichEdit1->Lines->Add("explore");
RichEdit1->Lines->Add("##########");
}
g_OldShapeName = ((TShape*)Sender)->Name;
}
//---------------------------------------------------------------------------
바램 님이 쓰신 글 :
: TShape로 A,B,C,D 4개를 버튼 모양으로 만든다음
: 각 Shape위로 마우스가 지나갈때..그 Shape의 동작 상태를
: RichEdit에 표시할려구 합니다.
:
: 그런데..다음과 같이 사용하니 마우스가 조금만 움직여도
: 다시 그리니 글자가 깜깜박하면서 계속 다시 써주더라구요..
:
: 하나의 Shape 사이즈 위에 있을때 한번만 그려주게 하는 방법은
: 어떻게 하면 좋은가여?
:
: void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift,int X, int Y)
: {
: TShape* Shape = dynamic_cast<TShape*>(Sender);
: if(Shape == A)
: {
:
: RichEdit1->Clear();
: RichEdit1->Lines->Add("Device");
: ....
: else if(Shape == B)
: {
:
: RichEdit1->Clear();
: RichEdit1->Lines->Add("View");
: ...
: }
: else if(Shape == C)
: {
:
: RichEdit1->Clear();
: RichEdit1->Lines->Add("Doc");
: ...
: }
: else if(Shape == D)
: {
:
: RichEdit1->Clear();
: RichEdit1->Lines->Add("explore");
: ...
: }
: }
:
:
|