OnGetText,指需要显示一个编辑时显示的内容时激发,其中Text是显示的内容,
OnSetText,在设置了一个编辑的内容后激发,其中Text是编辑的内容,

解决方案 »

  1.   

    >>要什么编程,给个例子吧,俺有的是分,嫌不够俺可再加 
    那么有分呀 8-0~~~~~~
    如果下面的例子满意,你能把分翻翻吗?!!//********************
    //********************unit1.dfm
    //********************
    object Form1: TForm1
      Left = 192
      Top = 168
      Width = 544
      Height = 375
      Caption = 'Form1'
      Color = clBtnFace
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'MS Sans Serif'
      Font.Style = []
      OldCreateOrder = False
      PixelsPerInch = 96
      TextHeight = 13
      object DBGrid1: TDBGrid
        Left = 24
        Top = 136
        Width = 489
        Height = 185
        DataSource = DataSource1
        TabOrder = 0
        TitleFont.Charset = DEFAULT_CHARSET
        TitleFont.Color = clWindowText
        TitleFont.Height = -11
        TitleFont.Name = 'MS Sans Serif'
        TitleFont.Style = []
      end
      object DBNavigator1: TDBNavigator
        Left = 256
        Top = 32
        Width = 240
        Height = 25
        DataSource = DataSource1
        TabOrder = 1
      end
      object Button1: TButton
        Left = 200
        Top = 88
        Width = 75
        Height = 25
        Caption = 'Button1'
        TabOrder = 2
        OnClick = Button1Click
      end
      object Table1: TTable
        Active = True
        DatabaseName = 'DBDEMOS'
        TableName = 'animals.dbf'
        Left = 72
        Top = 40
        object Table1NAME: TStringField
          FieldName = 'NAME'
          OnGetText = Table1NAMEGetText
          OnSetText = Table1NAMESetText
          Size = 10
        end
        object Table1SIZE: TSmallintField
          FieldName = 'SIZE'
          OnGetText = Table1SIZEGetText
        end
        object Table1WEIGHT: TSmallintField
          FieldName = 'WEIGHT'
          OnValidate = Table1WEIGHTValidate
        end
        object Table1AREA: TStringField
          FieldName = 'AREA'
        end
      end
      object DataSource1: TDataSource
        DataSet = Table1
        Left = 128
        Top = 48
      end
    end//********************
    //********************unit1.pas
    //********************
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      Db, ExtCtrls, DBCtrls, Grids, DBGrids, DBTables, StdCtrls;type
      TForm1 = class(TForm)
        Table1: TTable;
        DBGrid1: TDBGrid;
        DBNavigator1: TDBNavigator;
        DataSource1: TDataSource;
        Table1NAME: TStringField;
        Table1SIZE: TSmallintField;
        Table1WEIGHT: TSmallintField;
        Table1AREA: TStringField;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Table1SIZEGetText(Sender: TField; var Text: String;
          DisplayText: Boolean);
        procedure Table1NAMESetText(Sender: TField; const Text: String);
        procedure Table1NAMEGetText(Sender: TField; var Text: String;
          DisplayText: Boolean);
        procedure Table1WEIGHTValidate(Sender: TField);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
    begin
      close;
    end;procedure TForm1.Table1SIZEGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    begin
      if DisplayText then
      begin
        if (Sender.AsInteger >= 0) and (Sender.AsInteger < 10) then
          Text := '小鱼'
        else if (Sender.AsInteger >= 10) and (Sender.AsInteger < 30) then
          Text := '中鱼'
        else if (Sender.AsInteger >= 30) then
          Text := '大鱼'
      end else
        Text := Sender.AsString;end;procedure TForm1.Table1NAMESetText(Sender: TField; const Text: String);
    begin
      Sender.AsString := '鱼' + Text;
    end;procedure TForm1.Table1NAMEGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    begin
      Text := Sender.AsString;
      if not DisplayText then
      begin
        if 1 = pos('鱼',Text) then
          delete(Text,1,2);
      end;end;procedure TForm1.Table1WEIGHTValidate(Sender: TField);
    begin
      if Sender.AsInteger < 0 then
      begin
        ShowMessage('鱼的重量可以是负数吗????,重来!!');
        Abort;
      end;  if Sender.AsInteger >= 20000 then
      begin
        ShowMessage('这鱼该减肥了!!!,再来.');
        Abort;
      end;end;end.
      

  2.   

    tO;guig(胖胖)
    我运行正常,但操作老是出错,请综合考虑,写一个完整,我另外加50分给你
    给个日期型字段的使用吧俺说过,俺有的是分~~~~~~大家一起来,我觉得满意可以再单独加分  呵呵呵