
用的是rz的控制元件 關閉后怎么打開
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, RzTabs, ExtCtrls, RzPanel, RzButton, RzSplit, StdCtrls;
type
TForm1 = class(TForm)
RzSplitter1: TRzSplitter;
RzPanel1: TRzPanel;
RzPageControl1: TRzPageControl;
TabSheet1: TRzTabSheet;
TabSheet2: TRzTabSheet;
TabSheet3: TRzTabSheet;
TabSheet4: TRzTabSheet;
TabSheet5: TRzTabSheet;
TabSheet6: TRzTabSheet;
RzButton1: TRzButton;
RzButton2: TRzButton;
RzButton3: TRzButton;
RzButton4: TRzButton;
RzButton5: TRzButton;
RzButton6: TRzButton;
TabSheet7: TRzTabSheet;
Label1: TLabel;
procedure RzButton6Click(Sender: TObject);
procedure RzButton5Click(Sender: TObject);
procedure RzButton4Click(Sender: TObject);
procedure RzButton3Click(Sender: TObject);
procedure RzButton2Click(Sender: TObject);
procedure RzButton1Click(Sender: TObject);
procedure RzPageControl1Close(Sender: TObject;
var AllowClose: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.RzButton6Click(Sender: TObject);
begin
RzPageControl1.ActivePageIndex:=0;
//TabSheet1.TabVisible:=true;
end;
procedure TForm1.RzButton5Click(Sender: TObject);
begin
RzPageControl1.ActivePageIndex:=1;
TabSheet2.TabVisible:=true;
end;
procedure TForm1.RzButton4Click(Sender: TObject);
begin
RzPageControl1.ActivePageIndex:=2;
TabSheet3.TabVisible:=true;
end;
procedure TForm1.RzButton3Click(Sender: TObject);
begin
RzPageControl1.ActivePageIndex:=3;
TabSheet4.TabVisible:=true;
end;
procedure TForm1.RzButton2Click(Sender: TObject);
begin
RzPageControl1.ActivePageIndex:=4;
TabSheet5.TabVisible:=true;
end;
procedure TForm1.RzButton1Click(Sender: TObject);
begin
RzPageControl1.ActivePageIndex:=5;
TabSheet6.TabVisible:=true;
//TabSheet6.
end;
procedure TForm1.RzPageControl1Close(Sender: TObject;
var AllowClose: Boolean);
begin
AllowClose:=True;
end;
end.
用的是rzpagecontrol的showclosebuttononactivetab屬性
怎么么實作關閉打開
關閉在標簽的×符號關閉
打開在按鈕打開 求大神支招!!!!!
之前用的是隱藏但是有一些小問題
uj5u.com熱心網友回復:
控制元件的Close時間改一下procedure TForm1.RzPageControl1Close(Sender: TObject;
var AllowClose: Boolean);
begin
RzPageControl1.ActivePage.TabVisible:=false
//如有必要可與指定當前頁
end;
uj5u.com熱心網友回復:
shw014 你好 之前用的就是這個 但是這個陳述句有bug點擊關閉按鈕 只把標簽給隱藏 頁面還顯示在哪里
uj5u.com熱心網友回復:
之前做過類似,我的思路是這樣1、創建新tab頁時的部分代碼
class function TSMUIDrv.LoadFuncForm(parent: TRzPageControl; clsName: string): TAWin;
var
i,j: integer;
tmp: TComponent;
sht: TRzTabSheet;
begin
//form exists?
for i:=0 to parent.PageCount-1 do
begin
for j:=0 to parent.Pages[i].ControlCount-1 do
begin
if parent.Pages[i].Controls[j].ClassName=clsName then
begin
parent.ActivePageIndex := i;
result := TAWin(parent.Pages[i].Controls[j]);
exit;
end;
end;
end;
//to load new form
sht := TRzTabSheet.Create(parent);
sht.PageControl := parent;
tmp := LoadComponent(clsName,sht);
if tmp<>nil then
begin
result := TAWin(tmp);
result.Parent := sht;
TAWin(tmp).BorderStyle := bsNone;
sht.Caption := TAWin(tmp).Caption;
result.Align := alClient;
sht.Tag := TAWin(tmp).Tag;
result.Show;
parent.ActivePageIndex := parent.PageCount-1;
end
else begin
sht.Free;
result := nil;
end;
end;
2、關閉視窗
procedure TFmMain.OnCloseActivePage(sender: TObject; var allowClose: boolean);
var
i: integer;
begin
for i:=0 to pcCtl.ActivePage.ControlCount-1 do
begin
if (pcCtl.ActivePage.Controls[i] is TAWin) then
begin
if TAWin(pcCtl.ActivePage.Controls[i]).Dirty and
(TSMSystem.MessageBox('資料未保存,是否關閉?',MB_ICONQUESTION or MB_YESNO)=IDNO) then
begin
allowClose := false;
exit;
end;
TAWin(pcCtl.ActivePage.Controls[i]).Free;
allowClose := true;
end;
end;
end;
3、運行效果
uj5u.com熱心網友回復:
創建TabSheet簡單,關鍵是TabSheet1內容加上其它控制元件。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/41257.html
標籤:語言基礎/算法/系統設計
上一篇:值班演算法
下一篇:有大神用過海康的語音廣播函式嗎?
