日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

快速又改動少的將窗口改成融合窗口 - 星五 - 博客園

 zengbj 2011-03-14

假設(shè)您要將模式窗口為主的桌面程序改成融合窗口,原子窗口為TForm類型窗口。
用到的組件:Raize 5.x                  (不要問我為什么不用TFrame)

目前流行用Raize的RzPageControl來做融合窗口,因為它自帶TabSheet的關(guān)閉按鈕和
事件,所以大家都用這個了。

我的實現(xiàn)方法是放一個RzTabSheet當(dāng)首頁,上面顯示一些通知通告、待辦事項提醒的
項目,然后所有子模塊的窗口直接動態(tài)創(chuàng)建到RzPageControl里去,創(chuàng)建代碼如下: 

procedure TfrmMain.N13Click(Sender: TObject);
var
f : TfrmCallTask;
//需要給子模塊傳遞變量,所以這樣定義
TabCtrl : TRzTabSheet;
//容器
i : Integer;
begin
for i := 0 to RzPageControl1.PageCount - 1 do
if RzPageControl1.Pages[i].Caption = '任務(wù)列表' then
begin
RzPageControl1.Pages[i].Show;
exit;
end;//這里是根據(jù)子模塊窗口的標題來區(qū)分有沒有生成,有生成就激活顯示
TabCtrl :
= TRzTabSheet.Create(RzPageControl1);//創(chuàng)建容器
TabCtrl.PageControl :
= RzPageControl1;//容器歸屬
RzPageControl1.ActivePageIndex :
= TabCtrl.PageIndex;//激活容器頁
f :
= TfrmCallTask.Create(TabCtrl);//創(chuàng)建窗口
//我這里用的是TForm而不是TFrame,所以是有窗口標題這些屬性的
TabCtrl.Caption :
= f.Caption;//用窗口標題當(dāng)標簽頁名稱
f.ManualDock(TabCtrl);
//將窗口融合到容器里
f.Align :
= alClient;//窗口自適應(yīng)
f.vU :
= vU;//這里是設(shè)置窗口模塊里的變量,當(dāng)然也可以操作組件
f.vN :
= vN;
f.Show;
f.SetFocus;
//窗口顯示后做個聚焦
end;

關(guān)于窗口中的按鍵事件,也就是onKeyPress,因為我用的是TForm,所以可以直接使
用這個事件,只是切換組件時,需要以消息的形式來處理,代碼如下:

procedure TfrmCallList.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (Key = #13) then
begin
Key :
= #0;
PostMessage(Handle, WM_KEYDOWN, VK_TAB,
0);//模擬按下Tab鍵
//Perform(WM_NEXTDLGCTL, 1, 0);//模式窗口時有效,融合窗口時無效
end;
end;

關(guān)于融合窗口的關(guān)閉,也簡單的,只要在RzPageControl的Close事件里設(shè)置
AllowClose為真即可,代碼如下:

procedure TfrmMain.RzPageControl1Close(Sender: TObject;
var AllowClose: Boolean);
begin //因為我不想關(guān)閉“首頁”這個RzTabSheet,所以這樣判斷就行。
AllowClose :
= RzPageControl1.ActivePage.Caption <> '首頁'
end;

其他事項呢,不要忘記設(shè)置RzPageControl的幾個相關(guān)屬性來顯示標簽頁樣式和關(guān)閉
按鈕就行了,比如ShowCloseButtonOnActiveTab為真,ShowCloseButton這個為假。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多