Follow up to r4266, issue #3051: Fix selection of the right routine type, based on the itemindex, not the combo box text.

This commit is contained in:
Ansgar Becker
2012-12-09 09:42:19 +00:00
parent b29e24b5d4
commit fcc6ffee5b
2 changed files with 4 additions and 22 deletions

View File

@ -288,7 +288,6 @@ type
function ColorAdjustBrightness(Col: TColor; Shift: SmallInt): TColor; function ColorAdjustBrightness(Col: TColor; Shift: SmallInt): TColor;
function ComposeOrderClause(Cols: TOrderColArray): String; function ComposeOrderClause(Cols: TOrderColArray): String;
procedure DeInitializeVTNodes(Sender: TBaseVirtualTree); procedure DeInitializeVTNodes(Sender: TBaseVirtualTree);
function ListIndexByRegExpr(List: TStrings; Expression: String): Integer;
function FindNode(VT: TVirtualStringTree; idx: Int64; ParentNode: PVirtualNode): PVirtualNode; function FindNode(VT: TVirtualStringTree; idx: Int64; ParentNode: PVirtualNode): PVirtualNode;
procedure SelectNode(VT: TVirtualStringTree; idx: Int64; ParentNode: PVirtualNode=nil); overload; procedure SelectNode(VT: TVirtualStringTree; idx: Int64; ParentNode: PVirtualNode=nil); overload;
procedure SelectNode(VT: TVirtualStringTree; Node: PVirtualNode); overload; procedure SelectNode(VT: TVirtualStringTree; Node: PVirtualNode); overload;
@ -1585,26 +1584,6 @@ begin
end; end;
function ListIndexByRegExpr(List: TStrings; Expression: String): Integer;
var
rx: TRegExpr;
i: Integer;
begin
// Find item in stringlist by passing a regular expression
rx := TRegExpr.Create;
rx.Expression := Expression;
rx.ModifierI := True;
Result := -1;
for i := 0 to List.Count - 1 do begin
if rx.Exec(List[i]) then begin
Result := i;
break;
end;
end;
FreeAndNil(rx);
end;
function FindNode(VT: TVirtualStringTree; idx: Int64; ParentNode: PVirtualNode): PVirtualNode; function FindNode(VT: TVirtualStringTree; idx: Int64; ParentNode: PVirtualNode): PVirtualNode;
var var
Node: PVirtualNode; Node: PVirtualNode;

View File

@ -158,7 +158,10 @@ begin
SynMemoBody.Text := 'BEGIN'+CRLF+CRLF+'END'; SynMemoBody.Text := 'BEGIN'+CRLF+CRLF+'END';
if DBObject.Name <> '' then begin if DBObject.Name <> '' then begin
// Editing existing routine // Editing existing routine
comboType.ItemIndex := ListIndexByRegExpr(comboType.Items, '^'+FAlterRoutineType+'\b'); case Obj.NodeType of
lntProcedure: comboType.ItemIndex := 0;
lntFunction: comboType.ItemIndex := 1;
end;
DBObject.Connection.ParseRoutineStructure(Obj.CreateCode, Parameters, Deterministic, Definer, Returns, DataAccess, Security, Comment, Body); DBObject.Connection.ParseRoutineStructure(Obj.CreateCode, Parameters, Deterministic, Definer, Returns, DataAccess, Security, Comment, Body);
comboReturns.Text := Returns; comboReturns.Text := Returns;
chkDeterministic.Checked := Deterministic; chkDeterministic.Checked := Deterministic;