關於 TabControl 的控件用法?

bolly 2002-09-21 10:00:14
我在設計一個數據庫系統時用到了TabControl控件,當點擊下一個tabs時,如果數據沒有保存,並提示返回當前tabs!請問各位高手,需要用到那個事件呀!
我現在用的是OnChange事件,有提示,但還是跳到了下一個tabs,我要求不能跳到一個tabs
...全文
163 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
t99 2002-09-21
  • 打赏
  • 举报
回复
同意小虫的

另还有方法;

procedure TForm1.PageControl1Change(Sender: TObject);
begin
if not Save_ then //保存数据是否成功;
PageControl1.ActivePageIndex:=0;// 所在的tabsheet的index;
end;
Drate 2002-09-21
  • 打赏
  • 举报
回复
看看我这个吧!
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls;

type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
procedure PageControl1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.PageControl1Change(Sender: TObject);
begin
showmessage('can not change');
PageControl1.ActivePage:=TabSheet1;
end;

end.
bolly 2002-09-21
  • 打赏
  • 举报
回复
TO: madyak
你的方法跟我的一樣,有提示,但還是會跳到下一個tabs~
madyak 2002-09-21
  • 打赏
  • 举报
回复
unit clsexm1;

interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables, ComCtrls, ExtCtrls, DBCtrls, StdCtrls, Mask;
type
TForm1 = class(TForm)
TabControl1: TTabControl;
Table1: TTable;
DataSource1: TDataSource;
Table1EmpNo: TIntegerField;
Table1LastName: TStringField;
Table1FirstName: TStringField;
Table1PhoneExt: TStringField;
Table1HireDate: TDateTimeField;
Table1Salary: TFloatField;

Label1: TLabel;
DBEdit1: TDBEdit;
Label2: TLabel;
DBEdit2: TDBEdit;
Label3: TLabel;
DBEdit3: TDBEdit;
Label4: TLabel;
DBEdit4: TDBEdit;
Label5: TLabel;
DBEdit5: TDBEdit;
Label6: TLabel;
DBEdit6: TDBEdit;
DBText1: TDBText;
Table1FullName: TStringField;
procedure FormCreate(Sender: TObject);
procedure TabControl1Change(Sender: TObject);
procedure Table1CalcFields(DataSet: TDataSet);

end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
TabControl1.Align := alClient;
TabControl1.TabHeight := 30;
with Table1 do
begin
Close;
IndexName := 'ByName';
Open;
while not EOF do
begin
TabControl1.Tabs.Add(FieldByName('LASTNAME').AsString);
Next;
end;
// Sync page and table.

First;
end;
end;
procedure TForm1.TabControl1Change(Sender: TObject);
begin
with TabControl1 do
begin
if TabIndex <> -1 then
if not Table1.Locate('LASTNAME', Tabs[TabIndex], []) then
ShowMessage(Tabs[TabIndex -1] + ' not found.');
end;
end;
procedure TForm1.Table1CalcFields(DataSet: TDataSet);
begin
DataSet['FullName'] := DataSet['LASTNAME'] + ', ' + DataSet['FIRSTNAME'];

end;
end.
stanely 2002-09-21
  • 打赏
  • 举报
回复
用pagecontrol,就是紧挨着tabcontrol的那个
swayi21 2002-09-21
  • 打赏
  • 举报
回复
你试一下TabSheet 吧,
不过我相信控件本身不存在这样的事,你的程序控制有点问题吧。
t99 2002-09-21
  • 打赏
  • 举报
回复
sorry,没看清标题:
procedure TForm1.TabControl1Change(Sender: TObject);
begin
if not Save_ then //保存数据是否成功;
TabControl1.TabIndex:=0;// 所在的tab的index;
end;
t99 2002-09-21
  • 打赏
  • 举报
回复
sorry,没看清标题:
procedure TForm1.PageControl1Change(Sender: TObject);
begin
if not Save_ then //保存数据是否成功;
TabControl1.TabIndex:=0;// 所在的tab的index;
end;
bolly 2002-09-21
  • 打赏
  • 举报
回复
TO:各位~
我不是用的PageControll控件, 我是用的TabControl控件

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧