各位大下:
    程序运行后,打开了QUERY,我在DBGRID1的第一列输入字符后,没有保存,但我想立刻得到刚才输入给第一列的字符,怎么做呀?
    我取DBGRID1。FIELDS[0]。ASSTRING的值,但它是空的,用DBGRID1。REFRESH也没用,我想不会是保存后才能读到这个值吧,这个值应该存到缓存中的吧,但怎么读呢?

解决方案 »

  1.   

    //实际用户是在DBGrid里的一个Edit里输入字符,得到这个Edit可以取正输入的Text了~~(*//
    标题:处理数据网格的编辑框
    说明:示例添加焦点颜色;获取还没有提交到数据集的字段文本
    设计:Zswang
    日期:2002-03-31
    支持:[email protected]
    //*)///////Begin Source
    function GetDBGridEdit(mDBGrid: TDBGrid): TEdit;
    var
      I: Integer;
    begin
      Result := nil;
      if not Assigned(mDBGrid) then Exit;
      if not mDBGrid.EditorMode then begin
        mDBGrid.EditorMode := True;
        mDBGrid.EditorMode := False;
      end;
      with mDBGrid do for I := 0 to Pred(ComponentCount) do
        if Components[I] is TCustomEdit then begin
          Result := TEdit(Components[I]);
          Break;
        end;
    end; { GetDBGridEdit }function GetDBGridEditText(mDBGrid: TDBGrid): string;
    var
      vEdit: TEdit;
    begin
      vEdit := GetDBGridEdit(mDBGrid);
      if Assigned(vEdit) then
        Result := vEdit.Text
      else Result := '';
    end; { GetDBGridEditText }
    ///////End Source///////Begin Demo
    procedure TForm1.DBGrid1Enter(Sender: TObject);
    var
      vEdit: TEdit;
    begin
      vEdit := GetDBGridEdit(TDBGrid(Sender));
      if Assigned(vEdit) then vEdit.Color := clYellow;
    end;procedure TForm1.DBGrid1KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      Caption := GetDBGridEditText(TDBGrid(Sender));
    end;
    ///////End Demo
      

  2.   

    dbgridq.fields[0].value
    可以取到当前没有保存的值。