diff --git a/components/jujiboutils/src/jdbgridutils.pas b/components/jujiboutils/src/jdbgridutils.pas index 14b51f8eb..b65183bdd 100644 --- a/components/jujiboutils/src/jdbgridutils.pas +++ b/components/jujiboutils/src/jdbgridutils.pas @@ -36,8 +36,8 @@ type Field: TField; updated: boolean; fMaxLength: integer; - oldValue: String; - EditingFieldName: String; + EditingFieldNo: LongInt; + EditingRecNo: LongInt; procedure myEditEnter(Sender: TObject); procedure myEditOnEditingDone(Sender: TObject); procedure OnKeyPress(Sender: TObject; var key: char); @@ -59,8 +59,8 @@ type updated: boolean; theValue: TDateTime; fFormat: string; - oldValue: TDateTime; - EditingFieldName: String; + EditingFieldNo: LongInt; + EditingRecNo: LongInt; function getFormat: string; function EditText: string; procedure myEditEnter(Sender: TObject); @@ -91,8 +91,8 @@ type updated: boolean; theValue: TTime; fFormat: string; - oldValue: TTime; - EditingFieldName: String; + EditingFieldNo: LongInt; + EditingRecNo: LongInt; function getFormat: string; procedure myEditEnter(Sender: TObject); procedure myEditOnEditingDone(Sender: TObject); @@ -119,8 +119,8 @@ type updated: boolean; theValue: TDateTime; fFormat: string; - oldValue: TDateTime; - EditingFieldName: String; + EditingFieldNo: LongInt; + EditingRecNo: LongInt; function getFormat: string; procedure myEditEnter(Sender: TObject); procedure myEditOnEditingDone(Sender: TObject); @@ -149,8 +149,8 @@ type theValue: integer; updated: boolean; Field: TField; - oldValue: integer; - EditingFieldName: String; + EditingFieldNo: LongInt; + EditingRecNo: LongInt; procedure myEditOnEnter(Sender: TObject); procedure OnKeyPress(Sender: TObject; var key: char); procedure OnKeyDown(Sender: TObject; var Key: word; Shift: TShiftState); @@ -174,8 +174,8 @@ type theValue: double; fDecimals: integer; fEFormat: string; - oldValue: double; - EditingFieldName: String; + EditingFieldNo: LongInt; + EditingRecNo: LongInt; function getDecimals: integer; procedure myEditOnEnter(Sender: TObject); procedure myEditOnEditingDone(Sender: TObject); @@ -215,15 +215,15 @@ begin CellEditor.MaxLength := fMaxLength; updated := False; CellEditor.SelectAll; - oldValue:= Field.AsString; - EditingFieldName:= Field.FieldName; + EditingFieldNo:= Field.FieldNo; + EditingRecNo:= Field.DataSet.RecNo; end; procedure TJDbGridStringCtrl.myEditOnEditingDone(Sender: TObject); begin if not Assigned(Field) or not Assigned(Field.Dataset) or not Field.DataSet.Active then exit; - if (oldValue <> Field.AsString) or (EditingFieldName <> Field.FieldName) then + if (EditingRecNo <> Field.DataSet.RecNo) or (EditingFieldNo <> Field.FieldNo) then exit; // avoid update wrong record/field because dataset scrolling if (not updated) then begin @@ -323,16 +323,16 @@ begin CellEditor.OnKeyDown := @OnKeyDown; theValue := Field.AsDateTime; updated := False; - oldValue:= Field.AsDateTime; - EditingFieldName:= Field.FieldName; CellEditor.SelectAll; + EditingFieldNo:= Field.FieldNo; + EditingRecNo:= Field.DataSet.RecNo; end; procedure TJDbGridDateTimeCtrl.myEditOnEditingDone(Sender: TObject); begin if not Assigned(Field) or not Assigned(Field.Dataset) or not Field.DataSet.Active then exit; - if (oldValue <> Field.AsDateTime) or (EditingFieldName <> Field.FieldName) then + if (EditingRecNo <> Field.DataSet.RecNo) or (EditingFieldNo <> Field.FieldNo) then exit; // avoid update wrong record/field because dataset scrolling if Length(CellEditor.Caption) = 0 then begin @@ -556,16 +556,16 @@ begin CellEditor.OnKeyDown := @OnKeyDown; theValue := Field.AsDateTime; updated := False; - oldValue:= Field.AsDateTime; - EditingFieldName:= Field.FieldName; CellEditor.SelectAll; + EditingFieldNo:= Field.FieldNo; + EditingRecNo:= Field.DataSet.RecNo; end; procedure TJDbGridTimeCtrl.myEditOnEditingDone(Sender: TObject); begin if not Assigned(Field) or not Assigned(Field.Dataset) or not Field.DataSet.Active then exit; - if (oldValue <> Field.AsDateTime) or (EditingFieldName <> Field.FieldName) then + if (EditingRecNo <> Field.DataSet.RecNo) or (EditingFieldNo <> Field.FieldNo) then exit; // avoid update wrong record/field because dataset scrolling if Length(CellEditor.Caption) = 0 then begin @@ -750,16 +750,16 @@ begin CellEditor.OnKeyDown := @OnKeyDown; theValue := Field.AsDateTime; updated := False; - oldValue:= Field.AsDateTime; - EditingFieldName:= Field.FieldName; CellEditor.SelectAll; + EditingFieldNo:= Field.FieldNo; + EditingRecNo:= Field.DataSet.RecNo; end; procedure TJDbGridDateCtrl.myEditOnEditingDone(Sender: TObject); begin if not Assigned(Field) or not Assigned(Field.Dataset) or not Field.DataSet.Active then exit; - if (oldValue <> Field.AsDateTime) or (EditingFieldName <> Field.FieldName) then + if (EditingRecNo <> Field.DataSet.RecNo) or (EditingFieldNo <> Field.FieldNo) then exit; // avoid update wrong record/field because dataset scrolling if Length(CellEditor.Caption) = 0 then begin @@ -986,16 +986,16 @@ begin CellEditor.OnKeyDown := @OnKeyDown; theValue := Field.AsFloat; updated := False; - oldValue:= Field.AsFloat; - EditingFieldName:= Field.FieldName; CellEditor.SelectAll; + EditingFieldNo:= Field.FieldNo; + EditingRecNo:= Field.DataSet.RecNo; end; procedure TJDbGridDoubleCtrl.myEditOnEditingDone(Sender: TObject); begin if not Assigned(Field) or not Assigned(Field.Dataset) or not Field.DataSet.Active then exit; - if (oldValue <> Field.AsFloat) or (EditingFieldName <> Field.FieldName) then + if (EditingRecNo <> Field.DataSet.RecNo) or (EditingFieldNo <> Field.FieldNo) then exit; // avoid update wrong record/field because dataset scrolling if IsValidFloat(CellEditor.Caption) then begin @@ -1141,10 +1141,10 @@ begin CellEditor.OnKeyPress := @OnKeyPress; // Recuperamos el control :-p CellEditor.OnKeyDown := @OnKeyDown; theValue := Field.AsInteger; - oldValue:= Field.AsInteger; - EditingFieldName:= Field.FieldName; CellEditor.SelectAll; updated := False; + EditingFieldNo:= Field.FieldNo; + EditingRecNo:= Field.DataSet.RecNo; end; procedure TJDbGridIntegerCtrl.OnKeyPress(Sender: TObject; var key: char); @@ -1196,7 +1196,7 @@ procedure TJDbGridIntegerCtrl.myEditOnEditingDone(Sender: TObject); begin if not Assigned(Field) or not Assigned(Field.Dataset) or not Field.DataSet.Active then exit; - if (oldValue <> Field.AsInteger) or (EditingFieldName <> Field.FieldName) then + if (EditingRecNo <> Field.DataSet.RecNo) or (EditingFieldNo <> Field.FieldNo) then exit; // avoid update wrong record/field because dataset scrolling if IsValidInteger(CellEditor.Caption) then begin