LCL: TCustomEditButton: Fixed TDateEdit.SelectNext. Issue #32335

git-svn-id: trunk@55890 -
This commit is contained in:
michl 2017-09-20 20:46:27 +00:00
parent 02989f3b43
commit 9ac706fc7a
6 changed files with 35 additions and 21 deletions

View File

@ -795,7 +795,7 @@ type
function GetScrollOpposite: Boolean;
function GetTabIndex: Integer;
function GetTabRectWithBorder: TRect;
function GetTabStop: Boolean;
function GetTabStop: Boolean; override;
procedure SetHotTrack(const AValue: Boolean);
procedure SetImages(const AValue: TCustomImageList);
procedure SetMultiLine(const AValue: Boolean);
@ -807,7 +807,7 @@ type
procedure SetTabHeight(AValue: Smallint);
procedure SetTabPosition(AValue: TTabPosition); override;
procedure SetTabs(const AValue: TStrings);
procedure SetTabStop(const AValue: Boolean);
procedure SetTabStop(AValue: Boolean); override;
procedure SetTabWidth(AValue: Smallint);
protected
procedure SetOptions(const AValue: TCTabControlOptions); override;

View File

@ -1988,7 +1988,6 @@ type
procedure SetBorderWidth(Value: TBorderWidth);
procedure SetParentWindow(const AValue: HWND);
procedure SetTabOrder(NewTabOrder: TTabOrder);
procedure SetTabStop(NewTabStop: Boolean);
procedure SetUseDockManager(const AValue: Boolean);
procedure UpdateTabOrder(NewTabOrder: TTabOrder);
procedure Insert(AControl: TControl);
@ -2033,12 +2032,14 @@ type
WithThemeSpace: Boolean); override;
procedure GetPreferredSizeClientFrame(out aWidth, aHeight: integer); virtual;
procedure GetChildren(Proc: TGetChildProc; Root: TComponent); override;
function GetTabStop: Boolean; virtual;
function ChildClassAllowed(ChildClass: TClass): boolean; override;
procedure PaintControls(DC: HDC; First: TControl);
procedure PaintHandler(var TheMessage: TLMPaint);
procedure PaintWindow(DC: HDC); virtual;
procedure CreateBrush; virtual;
procedure ScaleControls(Multiplier, Divider: Integer); virtual;
procedure SetTabStop(NewTabStop: Boolean); virtual;
procedure ChangeScale(Multiplier, Divider: Integer); override;
protected
// messages
@ -2188,7 +2189,7 @@ type
property Handle: HWND read GetHandle write SetHandle;
property IsResizing: Boolean read GetIsResizing;
property TabOrder: TTabOrder read GetTabOrder write SetTabOrder default -1;
property TabStop: Boolean read FTabStop write SetTabStop default false;
property TabStop: Boolean read GetTabStop write SetTabStop default false;
property OnAlignInsertBefore: TAlignInsertBeforeEvent read FOnAlignInsertBefore write FOnAlignInsertBefore;
property OnAlignPosition: TAlignPositionEvent read FOnAlignPosition write FOnAlignPosition;
property OnDockDrop: TDockDropEvent read FOnDockDrop write FOnDockDrop;

View File

@ -103,6 +103,7 @@ type
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure GetTabOrderList(List: TFPList); override;
end;
{ TEditButton }
@ -1074,6 +1075,7 @@ begin
inherited Create(AOwner);
FButtonOnlyWhenFocused := False;
FocusOnButtonClick := False;
TabStop := True;
SetInitialBounds(0, 0, GetControlClassDefaultSize.CX, GetControlClassDefaultSize.CY);
@ -1091,6 +1093,12 @@ begin
inherited Destroy;
end;
procedure TCustomEditButton.GetTabOrderList(List: TFPList);
begin
// just the TCustomEditButton as container should be tabable, see issue #32335
// so no inherited adding of child controls
end;
{ TCustomControlFilterEdit }

View File

@ -118,7 +118,6 @@ type
function GetSelLength: Integer;
function GetSelStart: Integer;
function GetSelText: String;
function GetTabStop: Boolean;
function GetTextHint: TTranslateString;
procedure InternalOnBuddyClick(Sender: TObject);
@ -171,7 +170,6 @@ type
procedure SetSelStart(AValue: Integer);
procedure SetSelText(AValue: String);
procedure SetSpacing(const Value: integer);
procedure SetTabStop(AValue: Boolean);
procedure SetTextHint(AValue: TTranslateString);
protected
procedure CalculatePreferredSize(var PreferredWidth, PreferredHeight: integer;
@ -233,12 +231,14 @@ type
function EditCanModify: Boolean; virtual;
procedure GetSel(out _SelStart: Integer; out _SelStop: Integer);
function GetSpacing: Integer; virtual;
function GetTabStop: Boolean; override;
procedure SetSel(const _SelStart: Integer; _SelStop: Integer);
procedure Loaded; override;
procedure Reset; virtual;
procedure SetAutoSize(AValue: Boolean); override;
procedure SetColor(AValue: TColor); reintroduce;
procedure SetCursor(AValue: TCursor); override;
procedure SetTabStop(AValue: Boolean); override;
procedure ShouldAutoAdjust(var AWidth, AHeight: Boolean); override;
property AutoSelect: Boolean read GetAutoSelect write SetAutoSelect default True;
@ -831,6 +831,11 @@ begin
FEdit.Cursor := AValue;
end;
procedure TCustomAbstractGroupedEdit.SetTabStop(AValue: Boolean);
begin
FEdit.TabStop := AValue;
end;
procedure TCustomAbstractGroupedEdit.ShouldAutoAdjust(var AWidth,
AHeight: Boolean);
begin
@ -1113,11 +1118,6 @@ begin
if not (csLoading in ComponentState) then UpdateSpacing;
end;
procedure TCustomAbstractGroupedEdit.SetTabStop(AValue: Boolean);
begin
FEdit.TabStop := AValue;
end;
procedure TCustomAbstractGroupedEdit.SetTextHint(AValue: TTranslateString);
begin
FEdit.TextHint := AValue;

View File

@ -532,7 +532,7 @@ begin
FTabs.Assign(AValue);
end;
procedure TTabControl.SetTabStop(const AValue: Boolean);
procedure TTabControl.SetTabStop(AValue: Boolean);
begin
TTabControlNoteBookStrings(FTabs).NoteBook.TabStop := AValue;
end;

View File

@ -3909,6 +3909,11 @@ begin
end;
end;
function TWinControl.GetTabStop: Boolean;
begin
Result := FTabStop;
end;
{-------------------------------------------------------------------------------
function TWinControl.ChildClassAllowed(ChildClass: TClass): boolean;
@ -4245,15 +4250,6 @@ begin
UpdateTabOrder(NewTabOrder);
end;
procedure TWinControl.SetTabStop(NewTabStop: Boolean);
begin
if FTabStop = NewTabStop then
Exit;
FTabStop := NewTabStop;
UpdateTabOrder(FTabOrder);
Perform(CM_TABSTOPCHANGED, 0, 0);
end;
{------------------------------------------------------------------------------
TControl UpdateTabOrder
------------------------------------------------------------------------------}
@ -4988,6 +4984,15 @@ begin
Controls[i].ChangeScale(Multiplier, Divider);
end;
procedure TWinControl.SetTabStop(NewTabStop: Boolean);
begin
if FTabStop = NewTabStop then
Exit;
FTabStop := NewTabStop;
UpdateTabOrder(FTabOrder);
Perform(CM_TABSTOPCHANGED, 0, 0);
end;
procedure TWinControl.ChangeScale(Multiplier, Divider: Integer);
var
i: Integer;