如何處理根據不同情況判斷,取消pagecontrol的tabsheet切換?
uj5u.com熱心網友回復:
根據不同條件阻止tabsheet切換uj5u.com熱心網友回復:
procedure TForm1.PageControl1Changing(Sender: TObject;var AllowChange: Boolean);
begin
if (你的判斷條件) then
AllowChange:=True
else
AllowChange:=Flase;
end;
uj5u.com熱心網友回復:
1、設定一全域變數var
onChange:Boolean;
2、OnChenging事件中
if onChange then
begin
AllowChange:=True; // 開啟
end
else begin
AllowChange:=False; // 鎖住
end;
3、按按鈕事件,設定進入頁面和是否鎖住Page
(1) PageControl1.ActivePageIndex:=1; // 進入第2面
OnChange := False; // 鎖住Page
(2) OnChange := True; // 開啟Page
PageControl1.ActivePageIndex:=0; // 進入第1面
[delphi=code]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure PageControl1Changing(Sender: TObject;
var AllowChange: Boolean);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
OnChange:boolean;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
OnChange := True; // 開啟Page
PageControl1.ActivePageIndex:=0; // 進入第1面
end;
procedure TForm1.PageControl1Changing(Sender: TObject;
var AllowChange: Boolean);
begin
if onChange then
begin
AllowChange:=True; // 開啟
end
else begin
AllowChange:=False; // 鎖住
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
PageControl1.ActivePageIndex:=1; // 進入第2面
OnChange := False; // 鎖住Page
end;
end.
[/code]
uj5u.com熱心網友回復:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure PageControl1Changing(Sender: TObject;
var AllowChange: Boolean);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
OnChange:boolean;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
OnChange := True; // 開啟Page
PageControl1.ActivePageIndex:=0; // 進入第1面
end;
procedure TForm1.PageControl1Changing(Sender: TObject;
var AllowChange: Boolean);
begin
if onChange then
begin
AllowChange:=True; // 開啟
end
else begin
AllowChange:=False; // 鎖住
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
PageControl1.ActivePageIndex:=1; // 進入第2面
OnChange := False; // 鎖住Page
end;
end.
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/70443.html
標籤:VCL組件開發及應用
上一篇:各路delphi大神幫看看。。
