0

TPaintBox から新しいコンポーネントを作成しようとしています。新しいコンポーネントのサイズは Rect(0,0,160,248) です。新しいコンポーネントに 2 つの四角形を描画しました。上の四角形のそれぞれにイベントを実装したいと思います。

Get Rectangle は Rect(102,43,157,63) にあり、この Rectangle area に対して OnGetClick 、 OnGetMouseDown 、 OnGetMouseUp などのイベントを実装したいと思います。

四角形の設定は Rect(102,69,157,89) にあり、この四角形領域に対して OnSetClick、OnSetMouseDown、OnSetMouseUp などのイベントを実装したいと考えています。

新しいコンポーネント領域の残りの部分は、VGauge に関連する値を表示する予定であり、以下のコードには含まれていません。

class PACKAGE TVGauge : public TPaintBox
{
   public:
     virtual void __fastcall Paint(void) ;
};
void __fastcall TVGauge::Paint(void)
{
  int ind1, ind2 ;
  TRect tempR ;
  String str;
  Canvas->Font->Size  = 8 ;

  //whole rect
  Canvas->Pen->Color        = clSilver ;
  Canvas->Brush->Color      = clBtnFace ;
  Canvas->Rectangle(ClientRect) ; //Rect(0,0,160,248)

  //----------
  Canvas->Pen->Color    = clMedGray ;
  Canvas->Font->Color   = clWindowText ;
  Canvas->Brush->Color  = clWhite ;

  //Get Button ; draw a rectangle and it should act like a button
  Canvas->Rectangle(102 , 43  , 157 , 63 ) ;
  Canvas->TextOut(112,  48 ,L"Get");

  //Set Button ; draw a rectangle and it should act like a button
   Canvas->Rectangle(102 , 69  , 157 , 89 ) ;
   Canvas->TextOut(112,  74 ,L"Set");

  //display values related to the VGauge 
  //..
  //..

   if(OnPaint != NULL)  OnPaint(this) ;
}

上記のイベントを新しいコンポーネントに実装する方法がわかりません。ですから、このコンポーネントを実装するための提案を得たいと思っています。

4

1 に答える 1