来源(怡园)
From: http://yynets.best.163.com/cbuilder.htm
如何使用OnIdle事件 (C++ Builder)使用OnIdle事件随时监视剪贴板内容以改变弹出菜单的可执行项。
在Form1的.h的private加上:
void __fastcall OnIdle(TObject* Sender,bool& Done); |
在Form1的.cpp内加上:
void __fastcall TForm1::OnIdle(TObject* Sender,bool& Done) { bool TextSelected=DBRichEdit1->SelLength>0; N17->Enabled=TextSelected; //剪切,复制,清除 N18->Enabled=TextSelected; N20->Enabled=TextSelected; bool CBHasText=Clipboard()->HasFormat(CF_TEXT);// 需加入#include<Clipbrd.h> N19->Enabled=CBHasText; //粘贴 bool HasText=RichEdit1->Lines->Count>0; N21->Enabled=HasText; //全选 bool HasChanged=RichEdit1->Modified; ToolButton2->Enabled=HasChanged; ToolButton4->Enabled=HasChanged; } |
在Form1的OnCreate内加上:
Application->OnIdle=OnIdle;