mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-07 01:03:11 +02:00
LCL, fix dbgrid toggle checkbox (cbsCheckboxColumn column) even if column is not visible, issue #22493
git-svn-id: trunk@39123 -
This commit is contained in:
parent
1fa774e608
commit
83859e5919
@ -431,6 +431,7 @@ type
|
|||||||
out HsbRange,VsbRange,HsbPage,VsbPage,HsbPos,VsbPos:Integer); override;
|
out HsbRange,VsbRange,HsbPage,VsbPage,HsbPos,VsbPos:Integer); override;
|
||||||
procedure HeaderClick(IsColumn: Boolean; index: Integer); override;
|
procedure HeaderClick(IsColumn: Boolean; index: Integer); override;
|
||||||
procedure HeaderSized(IsColumn: Boolean; Index: Integer); override;
|
procedure HeaderSized(IsColumn: Boolean; Index: Integer); override;
|
||||||
|
function IsColumnVisible(aCol: Integer): boolean;
|
||||||
function IsValidChar(AField: TField; AChar: TUTF8Char): boolean;
|
function IsValidChar(AField: TField; AChar: TUTF8Char): boolean;
|
||||||
procedure KeyDown(var Key : Word; Shift : TShiftState); override;
|
procedure KeyDown(var Key : Word; Shift : TShiftState); override;
|
||||||
procedure LinkActive(Value: Boolean); virtual;
|
procedure LinkActive(Value: Boolean); virtual;
|
||||||
@ -490,6 +491,7 @@ type
|
|||||||
function EditorByStyle(Style: TColumnButtonStyle): TWinControl; override;
|
function EditorByStyle(Style: TColumnButtonStyle): TWinControl; override;
|
||||||
procedure ResetColWidths;
|
procedure ResetColWidths;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
|
property AllowOutboundEvents;
|
||||||
property SelectedField: TField read GetCurrentField write SetCurrentField;
|
property SelectedField: TField read GetCurrentField write SetCurrentField;
|
||||||
property SelectedIndex: Integer read GetSelectedIndex write SetSelectedIndex;
|
property SelectedIndex: Integer read GetSelectedIndex write SetSelectedIndex;
|
||||||
property SelectedColumn: TColumn read GetCurrentColumn;
|
property SelectedColumn: TColumn read GetCurrentColumn;
|
||||||
@ -2317,6 +2319,8 @@ begin
|
|||||||
Gz:=MouseToGridZone(X,Y);
|
Gz:=MouseToGridZone(X,Y);
|
||||||
CacheMouseDown(X,Y);
|
CacheMouseDown(X,Y);
|
||||||
case Gz of
|
case Gz of
|
||||||
|
gzInvalid:;
|
||||||
|
|
||||||
gzFixedCells, gzFixedCols:
|
gzFixedCells, gzFixedCols:
|
||||||
doInherited;
|
doInherited;
|
||||||
else
|
else
|
||||||
@ -2495,7 +2499,8 @@ begin
|
|||||||
|
|
||||||
if (aCol>=FirstGridColumn)and(aRow>=FixedRows) then
|
if (aCol>=FirstGridColumn)and(aRow>=FixedRows) then
|
||||||
begin
|
begin
|
||||||
if ColumnEditorStyle(ACol, SelectedField) = cbsCheckboxColumn then begin
|
if IsColumnVisible(aCol) and
|
||||||
|
(ColumnEditorStyle(ACol, SelectedField) = cbsCheckboxColumn) then begin
|
||||||
// react only if overriden editor is hidden
|
// react only if overriden editor is hidden
|
||||||
if (Editor=nil) or not EditorMode then
|
if (Editor=nil) or not EditorMode then
|
||||||
SwapCheckBox
|
SwapCheckBox
|
||||||
@ -3001,6 +3006,17 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TCustomDBGrid.IsColumnVisible(aCol: Integer): boolean;
|
||||||
|
var
|
||||||
|
gridcol: TGridColumn;
|
||||||
|
begin
|
||||||
|
if Columns.Enabled then begin
|
||||||
|
gridcol := ColumnFromGridColumn(aCol);
|
||||||
|
result := (gridcol<>nil) and gridCol.Visible;
|
||||||
|
end else
|
||||||
|
result := (aCol>=FirstGridColumn) and (ColWidths[aCol]>0);
|
||||||
|
end;
|
||||||
|
|
||||||
function TCustomDBGrid.IsValidChar(AField: TField; AChar: TUTF8Char): boolean;
|
function TCustomDBGrid.IsValidChar(AField: TField; AChar: TUTF8Char): boolean;
|
||||||
begin
|
begin
|
||||||
result := False;
|
result := False;
|
||||||
|
Loading…
Reference in New Issue
Block a user