delphi PageControl顯示窗體

2021-05-27 19:56:57 字數 3345 閱讀 9077

delphi  使用pagecontrol巢狀顯示窗體,需要必須實現兩個部分:

1.建立標籤頁和建立窗體。

2.指定窗體關閉函式,該函式包含關閉當前標籤頁。

1.建立標籤頁和建立窗體。

//如果不存在就建立標籤頁和窗體,如果存在,就找到。

//pformclass:要建立的窗體的類,cname:窗體的cption;ename :窗體的name

procedure tmainform.createtabsheet(pformclass: tformclass;cname,ename:string);

const

mytabsheetfirstname = 'mytabsheet_';

varmyform:tform;

mytabsheet : ttabsheet;

mytabsheetname :string;

begin

mytabsheetname := mytabsheetfirstname + ename;

//查詢該標籤頁是否已經存在

mytabsheet := ttabsheet(self.findcomponent(mytabsheetname));

//不存在,就建立出新的標籤頁

if mytabsheet = nil then

begin

try//建立新標籤頁

mytabsheet :=  ttabsheet.create(self);

mytabsheet.name := mytabsheetname;

mytabsheet.pagecontrol := pgcmain;

mytabsheet.caption := cname;

mytabsheet.align := alclient;

//建立視窗

trymyform := pformclass.create(self);

myform.name := ename;

myform.parent := mytabsheet;

myform.borderstyle := bsnone;

myform.top := 0;

myform.left := 0;

myform.width := mytabsheet.width;

myform.height := mytabsheet.height;

myform.align := alclient;

//關聯窗體關閉時,執行的函式。

myform.onclose := closetabsheet;

myform.show;

except

freeandnil(myform);

abort;

end;

except

freeandnil(mytabsheet);

exit;

end;

end;

//設定當前的標籤頁為活動頁

pgcmain.activepage := mytabsheet;

end;

2.指定窗體關閉函式,該函式包含關閉當前標籤頁。

//關閉窗體時,也關閉其所處的標籤頁

procedure tmainform.closetabsheet(sender: tobject; var action: tcloseaction);

begin

if (sender as tform).parent <> nil then

begin

ttabsheet((sender as tform).parent).free;

//把關閉的標籤頁的前一頁設為活動頁

pgcmain.selectnextpage(false);

abort;

end;

end;

3、右擊可以選中當前頁

procedure tmainform.pgcmainmousedown(sender: tobject; button: tmousebutton;

shift: tshiftstate; x, y: integer);

vartabsheet :tsuitabsheet;

begin

if mbright = button then

begin

pgcmain.activepage := pgcmain.pages[pgcmain.indexoftabat(x, y)];

end;

end;

// 關閉當前頁面

procedure tmainform.mmin23click(sender: tobject);

begin

if pgcmain.activepageindex <> 0 then

begin

pgcmain.activepage.free;

pgcmain.selectnextpage(false);

end;

end;

// 關閉所有頁面

procedure tmainform.mmin24click(sender: tobject);

vari: integer;

begin

for i := 1 to pgcmain.pagecount - 1 do

begin

pgcmain.pages[1].free;

end;

end;

// 關閉其他頁面

procedure tmainform.mmin25click(sender: tobject);

vari, activeindex: integer;

begin

// 當前頁面是【首頁】,則直接關閉其他頁面

if pgcmain.activepageindex = 0 then

begin

for i := 1 to pgcmain.pagecount - 1 do

begin

pgcmain.pages[1].free;

end;

endelse

begin

// 關閉當前頁面前面的除【首頁】的所有頁面

for i := 1 to pgcmain.activepageindex - 1 do

begin

pgcmain.pages[1].free;

end;

// 關閉當前頁面後面的所有頁面

for i := 2 to pgcmain.pagecount - 1 do

begin

pgcmain.pages[2].free;

end;

pgcmain.activepageindex := 1;

end;

end;

tmux突出顯示窗格,加粗窗格邊界

問題 使用tmux時,在pane之間來回切換容易亂,可以通過配置加粗pane的邊框,下面是效果圖,只需兩步就能完成 第一步 在家目錄下建立.tmux.config,執行vim tmux.conf 然後輸入一下配置,儲存退出 set option g pane active border style ...

Cesium popup窗 氣泡窗 提示窗外掛程式

首先向關注我的各位小夥伴說一聲對不起,好久沒有更新csdn了,最近因為自己也在看opengl的一些學習資料和cesium的原始碼,所以耽擱了,在此也向對小夥伴們說一聲對不起。因為二維地圖的外掛程式大部分都帶氣泡窗,但是三維裡不帶,所以得重新寫。我這裡是參照leaflet的氣泡風格寫的。第一種 是乙個...

win10 顯示詳細資訊窗格

1.說明 win10無法像win7那樣將詳細資訊窗格顯示在視窗的底部,只能顯示在視窗右側,這個你無法改變,只能適應!2.方法 選單欄 檢視 選中 詳細資訊窗格 右側即會顯示你所選中的檔案的詳細資訊 3.其他使用技巧 想要顯示核取方塊 副檔名 隱藏檔案,按照上圖進行勾選即可 在標題欄當前檔案的檔案路徑...