線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:784
推到 Plurk!
推到 Facebook!

多視窗環境對ActiveControl加入標點符號的疑惑?

尚未結案
g6101
高階會員


發表:22
回覆:129
積分:110
註冊:2002-06-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-22 19:14:14 IP:61.226.xxx.xxx 未訂閱
大家好: 參考專案:C:\Program Files\Borland\CBuilder6\Examples\Doc\TextEdit\textedit.bpr 參考畫面:(Microsoft Word)符號表 使用元件:TToolBar 事件功能:對MDI子視窗(繼承自TCustomEdit)之ActiveControl加入標點符號 程式碼片段:
//---------------------------------------------------------------------------
__fastcall TMainForm::TMainForm(TComponent* Owner)
    : TForm(Owner)
{
    for (int i=0;i < ToolBar2->ButtonCount;i  )
    {
       ToolBar2->Buttons[i]->OnClick = InsertPunctuation; //關聯事件
    }
}
//--------加入標點符號事件---------------------------------------------------    void __fastcall TMainForm::InsertPunctuation(TObject *Sender)
{
    TToolDockForm *Docheck = dynamic_cast(Screen->ActiveControl);
    if (Docheck) { Application->MainForm->SetFocus(); }        TToolButton *src = dynamic_cast(Sender);
    TCustomEdit *dest = dynamic_cast(Screen->ActiveControl);
    if (src == NULL || dest == NULL) {
      MessageBeep(0); return ; }        SendMessage(dest->Handle,EM_REPLACESEL,true,(LPARAM)src->Caption.c_str());
}
問題說明:當ToolBar2停佇在MainForm上頭時,(加入標點符號)功能一切正常;但是,TToolBar經拖拉成為TToolDockForm(獨立視窗)時,功能失效,後來使用「偷吃步」(紅色那段),雖能正常加入符號,但總覺得怪怪的,輸入畫面一直在(TToolDockForm與TMainForm來回切換焦點)閃爍. 功能需求: (1)有辦法讓TMainForm與TToolDockForm同時取得焦點嗎?Microsoft Word的畫好像是如此!? (2)如果第一項是否定的,能使TToolDockForm不要成為焦點嗎?(但Button OnClick事件要能觸發) (3)如果有更好的方法,請不吝賜教,總之,讓畫面看起來用起來美美就可以了! ◎天長地久有時盡,追求知識無絕期!
系統時間:2024-11-22 22:38:48
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!