Type THelpModel = Class(TGridModel);
procedure TViewPart.ChangeStringGridComboBoxCurrency(Sender: TObject);
begin
with TComboBox(Sender), StringGridPartDet
do begin
THelpModel(StringGridPartDet.Columns[2].Model).DoSetValue(Col,Row, TValue.From<String>(Items[ItemIndex]) );
StringGridPartDet.Columns[2].UpdateCell(Row);
end;
end;
procedure TViewPart.StringGridPartDetCreateCustomEditor(Sender: TObject;
const Column: TColumn; var Control: TStyledControl);
begin
if Column = StringGridPartDet.Columns[2]
then begin
Control := TComboBox.Create(Self);
TComboBox(Control).Items.AddStrings(['GBP', 'EUR']);
With StringGridPartDet, TComboBox(Control) do
ItemIndex := Items.IndexOf(THelpModel(StringGridPartDet.Columns[2].Model).DoGetValue(Col,Row).AsString);
TComboBox(Control).OnChange:= ChangeStringGridComboBoxCurrency;
end;
end;
I have a StringGrid (StringGridPartDet) connected to a DataSet, I have used the attached code to update the currency column with a value from a ComboBox, the value appears correctly in the StringGrid, but does not update the DataSet. AmI missing a step?