type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
Table1: TTable;
DataSource1: TDataSource;
procedure Table1Field1GetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure Table1Field1SetText(Sender: TField; const Text: String);
procedure Table1AfterOpen(DataSet: TDataSet);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Table1Field1GetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
case Sender.AsInteger of
0: Text := '女';
1: Text := '男';
2: Text := '不男不女';
end;
end;procedure TForm1.Table1Field1SetText(Sender: TField; const Text: String);
begin
if Text = '女' then
Sender.AsInteger := 0
else if Text = '男' then
Sender.AsInteger := 1
else Sender.AsInteger := StrToIntDef(Text, 0);
end;procedure TForm1.Table1AfterOpen(DataSet: TDataSet);
begin
DataSet.FieldByName('Field1').OnGetText := Table1Field1GetText;
DataSet.FieldByName('Field1').OnSetText := Table1Field1SetText;
end;
TForm1 = class(TForm)
DBGrid1: TDBGrid;
Table1: TTable;
DataSource1: TDataSource;
procedure Table1Field1GetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure Table1Field1SetText(Sender: TField; const Text: String);
procedure Table1AfterOpen(DataSet: TDataSet);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Table1Field1GetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
case Sender.AsInteger of
0: Text := '女';
1: Text := '男';
2: Text := '不男不女';
end;
end;procedure TForm1.Table1Field1SetText(Sender: TField; const Text: String);
begin
if Text = '女' then
Sender.AsInteger := 0
else if Text = '男' then
Sender.AsInteger := 1
else Sender.AsInteger := StrToIntDef(Text, 0);
end;procedure TForm1.Table1AfterOpen(DataSet: TDataSet);
begin
DataSet.FieldByName('Field1').OnGetText := Table1Field1GetText;
DataSet.FieldByName('Field1').OnSetText := Table1Field1SetText;
end;
我的Tfield 不是固定的字段对象,事件代码我在“何处写”呢?
begin
DataSet.FieldByName('这里就是不固定字段').OnGetText := Table1Field1GetText;
DataSet.FieldByName('这里就是不固定字段').OnSetText := Table1Field1SetText;
end;
Table1Field1SetText
并不是针对Field1的只是一个事件类型