diff options
-rw-r--r-- | src/gui/fpg_editcombo.pas | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/gui/fpg_editcombo.pas b/src/gui/fpg_editcombo.pas index c26c0213..4d37ae61 100644 --- a/src/gui/fpg_editcombo.pas +++ b/src/gui/fpg_editcombo.pas @@ -91,6 +91,7 @@ type function HasText: boolean; virtual; procedure SetText(const AValue: string); virtual; procedure HandleResize(AWidth, AHeight: TfpgCoord); override; + procedure HandleSetFocus; override; procedure HandleKeyChar(var AText: TfpgChar; var shiftstate: TShiftState; var consumed: Boolean); override; procedure HandleKeyPress(var keycode: word; var shiftstate: TShiftState; var consumed: Boolean); override; procedure HandleLMouseDown(x, y: integer; shiftstate: TShiftState); override; @@ -404,6 +405,21 @@ begin CalculateInternalButtonRect; end; +procedure TfpgBaseEditCombo.HandleSetFocus; +var + i: integer; +begin + inherited HandleSetFocus; + if FText > '' then + for i := 0 to Items.Count-1 do + if SameText(UTF8Copy(Items.Strings[i], 1, UTF8Length(FText)), FText) then + begin + FSelectedItem := i; + FNewItem := False; + Exit; //==> + end; +end; + procedure TfpgBaseEditCombo.HandleKeyChar(var AText: TfpgChar; var shiftstate: TShiftState; var consumed: Boolean); var |