Disable non working column default values for given data type. Fixes issue #1519.

This commit is contained in:
Ansgar Becker
2010-01-17 16:12:35 +00:00
parent c85ed71ba0
commit 1f39e59940
2 changed files with 20 additions and 10 deletions

View File

@ -1117,20 +1117,29 @@ end;
function TColumnDefaultEditorLink.PrepareEdit(Tree: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex): Boolean; stdcall; function TColumnDefaultEditorLink.PrepareEdit(Tree: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex): Boolean; stdcall;
var
DataTypeCategory: TDataTypeCategoryIndex;
begin begin
inherited PrepareEdit(Tree, Node, Column); inherited PrepareEdit(Tree, Node, Column);
case DefaultType of // Check relevant radio button
cdtNothing: FRadioNothing.Checked := True; FRadioNothing.Checked := DefaultType = cdtNothing;
cdtText, cdtTextUpdateTS: begin FRadioText.Checked := DefaultType in [cdtText, cdtTextUpdateTS];
FRadioText.Checked := True; FRadioNull.Checked := DefaultType in [cdtNull, cdtNullUpdateTS];
FMemoText.Text := DefaultText; FRadioCurTS.Checked := DefaultType in [cdtCurTS, cdtCurTSUpdateTS];
end;
cdtNull, cdtNullUpdateTS: FRadioNull.Checked := True;
cdtCurTS, cdtCurTSUpdateTS: FRadioCurTS.Checked := True;
cdtAutoInc: FRadioAutoInc.Checked := True;
end;
FCheckCurTS.Checked := DefaultType in [cdtTextUpdateTS, cdtNullUpdateTS, cdtCurTSUpdateTS]; FCheckCurTS.Checked := DefaultType in [cdtTextUpdateTS, cdtNullUpdateTS, cdtCurTSUpdateTS];
FRadioAutoInc.Checked := DefaultType = cdtAutoInc;
if FRadioText.Checked then
FMemoText.Text := DefaultText;
// Disable non working default options per data type
// But leave checked option enabled, regardless of if that is a valid default option or not
DataTypeCategory := Datatypes[Integer(Datatype)].Category;
FRadioCurTS.Enabled := FRadioCurTS.Checked or (DataType = dtTimestamp);
FCheckCurTS.Enabled := FCheckCurTS.Checked or FRadioCurTS.Enabled;
FRadioAutoInc.Enabled := FRadioAutoInc.Checked or (DataTypeCategory = dtcInteger);
Result := True; Result := True;
end; end;

View File

@ -1250,6 +1250,7 @@ begin
DefaultEditor := TColumnDefaultEditorLink.Create(VT); DefaultEditor := TColumnDefaultEditorLink.Create(VT);
DefaultEditor.DefaultText := Col.DefaultText; DefaultEditor.DefaultText := Col.DefaultText;
DefaultEditor.DefaultType := Col.DefaultType; DefaultEditor.DefaultType := Col.DefaultType;
DefaultEditor.DataType := Col.DataType.Index;
EditLink := DefaultEditor; EditLink := DefaultEditor;
end end
else else