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.其他使用技巧 想要顯示核取方塊 副檔名 隱藏檔案,按照上圖進行勾選即可 在標題欄當前檔案的檔案路徑...