|
|
||||
Tips > |
|||||
ControlStyle で UpDown の OnChanging を制御 |
更新 : 2010/10/10 |
||||
|
|
||
解説: コントロールスタイルの属性を示すプロパティに ControlStyle があります。 コントロールがマウスイベントをキャプチャする、コントロールの各種属性を調べる、などがスタイルフラグを設定することで可能になります。 マウスイベントでのキャプチャは便利なのですが、悪さもします。UpDown の OnChanging イベントでその様子を見てみます。 使用例: 以下の例では、アプリケーションを起動後、UpDown1 をクリックすると、変更の旨をメッセージします。その後、Button1 をクリックしてもメッセージが表示されてしまいます。コードを追加して、これを回避させます。 準備として Edit、UpDown を適当に置き、 追加で Button、CheckBox などを配置しておきます。 UpDown1 のAssociate プロパティには Edit1 を指定しておいてください。 UpDown1 をクリックすると、"変更します!!" のメッセージが表示され、Edit1 の数字が変わります。 その後、Button1 や CheckBox1 をクリックしてもメッセージが表示されてしまいます。 コンストラクタで ControlStyle のスタイルフラグを変更して回避させます。 スタイルフラグはいくつかありますので、各フラグを試しておくといいでしょう。 //------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { // 以下のコードを有効にしてキャプチャを回避 //UpDown1->ControlStyle = UpDown1->ControlStyle >> csCaptureMouse; } //------------------------------------------------------------------- void __fastcall TForm1::UpDown1Changing(TObject *Sender, bool &AllowChange) { ShowMessage("変更します!!"); } //------------------------------------------------------------------- |