融合視窗是為了瀏覽多視窗方便,且不太關心視窗最小化和最大化模式。典型的融合視窗,比如maxthon瀏覽器,瀏覽多個網頁非常方便;微軟眼見融合視窗眾望所歸,在ie7版本也引入了融合窗**術,但微軟的ie既耗記憶體又容易崩潰。題外話不多說了。在delphi實現其實也很簡單,如上圖:
procedure showdockform(formclass: tformclass; dockctrl: twincontrol;
ismaxed: boolean);
procedure showcaption(parentctrl:twincontrol;acaption:string);
begin
if parentctrl is trztabsheet then
trztabsheet(parentctrl).caption := acaption;
end;
vari: integer;
tabctrl:trztabsheet;
form:tform;
begin
screen.cursor := crhourglass;
tryfor i := 0 to screen.customformcount - 1 do
if screen.customforms
is formclass then
begin
if (not (screen.customforms).visible) then
(screen.customforms).visible := true;
(screen.customforms).bringtofront;
(screen.customforms).setfocus;
tabctrl := trztabsheet(screen.customforms.parent);
showcaption(tabctrl,screen.customforms.caption);
trzpagecontrol(dockctrl).activepageindex := tabctrl.pageindex;
exit;
end;
tabctrl := trztabsheet.create(dockctrl); //dockctrl
tabctrl.pagecontrol := trzpagecontrol(dockctrl);
trzpagecontrol(dockctrl).activepageindex := tabctrl.pageindex;
form := formclass.create(tabctrl);
with form do
trymanualdock(tabctrl);
showcaption(tabctrl,caption);
show;
form.windowstate := wsmaximized;
form.align := alclient;
except
free;
end;
finally
screen.cursor := crdefault;
end;
end;
以上**是在 raize
5.x中的trzpagecontrol
實現多視窗的融合視窗。
融合視窗也有不足之處,如果兩個tform有相同的tactionlist快捷鍵,只有第乙個視窗的快捷鍵有效。
**至微博
父子視窗函式呼叫
兩個視窗的資料傳遞有幾種 1 寫表態變數 2 定義為窗體的屬性 3 利用中類的屬性 4 函式方法 利用視窗初始化重構函式是最為方便不過的了 例子如 public ipform string windowstyle public ipform string windowstyle 重構視窗函式,為了傳...
子視窗呼叫父視窗
相信學計算機的大學生都碰過這樣的程式設計作業吧 程式執行後主視窗隱藏,然後彈出登入框,輸入賬號密碼登陸成功後再關閉登陸框,然後讓之前隱藏的主視窗重新顯示。沒錯,我當時就是這麼笨,怎麼都想不到好的解決辦法 當時的同學都是不管之前隱藏的主視窗,而是直接新建了乙個主視窗 剛好昨晚在做專案時碰到類似的情況,...
5 子視窗呼叫父視窗 視窗 (5)
在圖7.10中我們看到,自從9月份的一根上吊線以及後面的一根黑色吞沒蠟燭線 覆蓋的就是這根上吊線 出現後,市場便一路 9月末,市場形成了乙個視窗,它表明 還將繼續。後來,這個視窗被關閉了,但是買進的動力隨即煙消雲散。這一點從圖示的流星形態上得到了證實。在圖7.11中,我們要討論3個視窗。視窗1形成於...