You've already forked lazarus-ccr
1. Rework wordwrap procedure
2. RxDBGrid - in tools menu hide not used items git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2570 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -71,9 +71,10 @@
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="RxDBGridMainUnit"/>
|
||||
<IsVisibleTab Value="True"/>
|
||||
<EditorIndex Value="0"/>
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="240"/>
|
||||
<TopLine Value="233"/>
|
||||
<CursorPos X="24" Y="262"/>
|
||||
<UsageCount Value="88"/>
|
||||
<Loaded Value="True"/>
|
||||
@ -497,8 +498,6 @@
|
||||
<Unit58>
|
||||
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
|
||||
<UnitName Value="rxdbgrid"/>
|
||||
<IsVisibleTab Value="True"/>
|
||||
<EditorIndex Value="1"/>
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="836"/>
|
||||
<CursorPos X="7" Y="858"/>
|
||||
@ -508,27 +507,22 @@
|
||||
<Item1 X="1" Y="1838" ID="4"/>
|
||||
<Item2 X="1" Y="2672" ID="1"/>
|
||||
</Bookmarks>
|
||||
<Loaded Value="True"/>
|
||||
</Unit58>
|
||||
<Unit59>
|
||||
<Filename Value="/usr/local/share/lazarus/lcl/dbgrids.pas"/>
|
||||
<UnitName Value="DBGrids"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="443"/>
|
||||
<CursorPos X="14" Y="463"/>
|
||||
<UsageCount Value="18"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit59>
|
||||
<Unit60>
|
||||
<Filename Value="/usr/local/share/lazarus/lcl/grids.pas"/>
|
||||
<UnitName Value="Grids"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="2558"/>
|
||||
<CursorPos X="1" Y="2580"/>
|
||||
<UsageCount Value="21"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit60>
|
||||
<Unit61>
|
||||
<Filename Value="../../../../../../install/fpcsrc/rtl/objpas/classes/classesh.inc"/>
|
||||
@ -780,127 +774,39 @@
|
||||
<UsageCount Value="10"/>
|
||||
</Unit92>
|
||||
</Units>
|
||||
<JumpHistory Count="30" HistoryIndex="29">
|
||||
<JumpHistory Count="8" HistoryIndex="7">
|
||||
<Position1>
|
||||
<Filename Value="/usr/local/share/lazarus/lcl/grids.pas"/>
|
||||
<Caret Line="2574" Column="1" TopLine="2565"/>
|
||||
</Position1>
|
||||
<Position2>
|
||||
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
|
||||
<Caret Line="2366" Column="1" TopLine="2339"/>
|
||||
</Position2>
|
||||
<Position3>
|
||||
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
|
||||
<Caret Line="2359" Column="1" TopLine="2312"/>
|
||||
</Position3>
|
||||
<Position4>
|
||||
<Filename Value="/usr/local/share/lazarus/lcl/grids.pas"/>
|
||||
<Caret Line="3853" Column="3" TopLine="3834"/>
|
||||
</Position4>
|
||||
<Position5>
|
||||
<Filename Value="/usr/local/share/lazarus/lcl/grids.pas"/>
|
||||
<Caret Line="3849" Column="25" TopLine="3824"/>
|
||||
</Position5>
|
||||
<Position6>
|
||||
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
|
||||
<Caret Line="2361" Column="19" TopLine="2321"/>
|
||||
</Position6>
|
||||
<Position7>
|
||||
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
|
||||
<Caret Line="2367" Column="1" TopLine="2346"/>
|
||||
</Position7>
|
||||
<Position8>
|
||||
<Filename Value="/usr/local/share/lazarus/lcl/grids.pas"/>
|
||||
<Caret Line="2574" Column="1" TopLine="2553"/>
|
||||
</Position8>
|
||||
<Position9>
|
||||
<Filename Value="/usr/local/share/lazarus/lcl/grids.pas"/>
|
||||
<Caret Line="5471" Column="49" TopLine="5448"/>
|
||||
</Position9>
|
||||
<Position10>
|
||||
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
|
||||
<Caret Line="2305" Column="17" TopLine="2288"/>
|
||||
</Position10>
|
||||
<Position11>
|
||||
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
|
||||
<Caret Line="2355" Column="1" TopLine="2331"/>
|
||||
</Position11>
|
||||
<Position12>
|
||||
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
|
||||
<Caret Line="396" Column="77" TopLine="406"/>
|
||||
</Position12>
|
||||
<Position13>
|
||||
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
|
||||
<Caret Line="2671" Column="1" TopLine="2617"/>
|
||||
</Position13>
|
||||
<Position14>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="73" Column="1" TopLine="53"/>
|
||||
</Position14>
|
||||
<Position15>
|
||||
</Position1>
|
||||
<Position2>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="75" Column="1" TopLine="54"/>
|
||||
</Position15>
|
||||
<Position16>
|
||||
</Position2>
|
||||
<Position3>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="260" Column="38" TopLine="241"/>
|
||||
</Position16>
|
||||
<Position17>
|
||||
</Position3>
|
||||
<Position4>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="262" Column="43" TopLine="239"/>
|
||||
</Position17>
|
||||
<Position18>
|
||||
</Position4>
|
||||
<Position5>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="260" Column="43" TopLine="240"/>
|
||||
</Position18>
|
||||
<Position19>
|
||||
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
|
||||
<Caret Line="718" Column="14" TopLine="699"/>
|
||||
</Position19>
|
||||
<Position20>
|
||||
</Position5>
|
||||
<Position6>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="260" Column="43" TopLine="240"/>
|
||||
</Position20>
|
||||
<Position21>
|
||||
</Position6>
|
||||
<Position7>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="262" Column="24" TopLine="240"/>
|
||||
</Position21>
|
||||
<Position22>
|
||||
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
|
||||
<Caret Line="674" Column="14" TopLine="653"/>
|
||||
</Position22>
|
||||
<Position23>
|
||||
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
|
||||
<Caret Line="549" Column="31" TopLine="530"/>
|
||||
</Position23>
|
||||
<Position24>
|
||||
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
|
||||
<Caret Line="2304" Column="37" TopLine="2269"/>
|
||||
</Position24>
|
||||
<Position25>
|
||||
</Position7>
|
||||
<Position8>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="262" Column="24" TopLine="240"/>
|
||||
</Position25>
|
||||
<Position26>
|
||||
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
|
||||
<Caret Line="674" Column="14" TopLine="654"/>
|
||||
</Position26>
|
||||
<Position27>
|
||||
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
|
||||
<Caret Line="550" Column="15" TopLine="534"/>
|
||||
</Position27>
|
||||
<Position28>
|
||||
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
|
||||
<Caret Line="2371" Column="10" TopLine="2342"/>
|
||||
</Position28>
|
||||
<Position29>
|
||||
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
|
||||
<Caret Line="2332" Column="1" TopLine="2312"/>
|
||||
</Position29>
|
||||
<Position30>
|
||||
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
|
||||
<Caret Line="1210" Column="17" TopLine="1200"/>
|
||||
</Position30>
|
||||
</Position8>
|
||||
</JumpHistory>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
|
@ -5,7 +5,7 @@ object RxDBGridMainForm: TRxDBGridMainForm
|
||||
Width = 1187
|
||||
ActiveControl = Panel1
|
||||
Caption = 'RxDBGrid Demo'
|
||||
ClientHeight = 698
|
||||
ClientHeight = 702
|
||||
ClientWidth = 1187
|
||||
Menu = MainMenu1
|
||||
OnCreate = FormCreate
|
||||
@ -13,8 +13,8 @@ object RxDBGridMainForm: TRxDBGridMainForm
|
||||
LCLVersion = '1.1'
|
||||
object RxDBGrid1: TRxDBGrid
|
||||
Left = 0
|
||||
Height = 634
|
||||
Top = 64
|
||||
Height = 648
|
||||
Top = 54
|
||||
Width = 1187
|
||||
TitleButtons = True
|
||||
AutoSort = True
|
||||
@ -81,7 +81,7 @@ object RxDBGridMainForm: TRxDBGridMainForm
|
||||
Title.Orientation = toHorizontal
|
||||
Title.Hint = 'Product name'
|
||||
Title.ShowHint = True
|
||||
Width = 136
|
||||
Width = 110
|
||||
FieldName = 'NAME'
|
||||
Filter.Font.Style = [fsItalic]
|
||||
Filter.DropDownRows = 0
|
||||
@ -268,22 +268,22 @@ object RxDBGridMainForm: TRxDBGridMainForm
|
||||
end
|
||||
object Panel1: TPanel
|
||||
Left = 0
|
||||
Height = 64
|
||||
Height = 54
|
||||
Top = 0
|
||||
Width = 1187
|
||||
Align = alTop
|
||||
AutoSize = True
|
||||
ClientHeight = 64
|
||||
ClientHeight = 54
|
||||
ClientWidth = 1187
|
||||
TabOrder = 1
|
||||
object Label1: TLabel
|
||||
AnchorSideLeft.Control = Button2
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = Panel1
|
||||
Left = 245
|
||||
Height = 15
|
||||
Left = 240
|
||||
Height = 13
|
||||
Top = 7
|
||||
Width = 34
|
||||
Width = 26
|
||||
BorderSpacing.Around = 6
|
||||
Caption = 'Mode'
|
||||
ParentColor = False
|
||||
@ -292,9 +292,9 @@ object RxDBGridMainForm: TRxDBGridMainForm
|
||||
AnchorSideLeft.Control = Panel1
|
||||
AnchorSideTop.Control = Panel1
|
||||
Left = 7
|
||||
Height = 27
|
||||
Height = 23
|
||||
Top = 7
|
||||
Width = 77
|
||||
Width = 83
|
||||
Action = actCalcTotal
|
||||
AutoSize = True
|
||||
BorderSpacing.Around = 6
|
||||
@ -304,10 +304,10 @@ object RxDBGridMainForm: TRxDBGridMainForm
|
||||
AnchorSideLeft.Control = Button1
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = Panel1
|
||||
Left = 90
|
||||
Height = 27
|
||||
Left = 96
|
||||
Height = 23
|
||||
Top = 7
|
||||
Width = 149
|
||||
Width = 138
|
||||
Action = actOptimizeColumnsWidthAll
|
||||
AutoSize = True
|
||||
BorderSpacing.Around = 6
|
||||
@ -318,11 +318,11 @@ object RxDBGridMainForm: TRxDBGridMainForm
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = CheckBox2
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 474
|
||||
Height = 22
|
||||
Left = 469
|
||||
Height = 17
|
||||
Hint = 'Use filter line'
|
||||
Top = 35
|
||||
Width = 78
|
||||
Top = 30
|
||||
Width = 63
|
||||
BorderSpacing.Left = 6
|
||||
Caption = 'Use filter'
|
||||
OnChange = CheckBox1Change
|
||||
@ -332,12 +332,12 @@ object RxDBGridMainForm: TRxDBGridMainForm
|
||||
AnchorSideLeft.Control = Label1
|
||||
AnchorSideTop.Control = Label1
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 251
|
||||
Height = 25
|
||||
Top = 28
|
||||
Left = 246
|
||||
Height = 21
|
||||
Top = 26
|
||||
Width = 217
|
||||
BorderSpacing.Around = 6
|
||||
ItemHeight = 0
|
||||
ItemHeight = 13
|
||||
ItemIndex = 0
|
||||
Items.Strings = (
|
||||
'Edit mode'
|
||||
@ -352,11 +352,11 @@ object RxDBGridMainForm: TRxDBGridMainForm
|
||||
AnchorSideLeft.Control = ComboBox1
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = Panel1
|
||||
Left = 474
|
||||
Height = 22
|
||||
Left = 469
|
||||
Height = 17
|
||||
Hint = 'Auto fill column width'
|
||||
Top = 7
|
||||
Width = 122
|
||||
Width = 97
|
||||
BorderSpacing.Around = 6
|
||||
Caption = 'Auto fill columns'
|
||||
OnChange = CheckBox2Change
|
||||
@ -366,10 +366,10 @@ object RxDBGridMainForm: TRxDBGridMainForm
|
||||
AnchorSideLeft.Control = CheckBox2
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = Panel1
|
||||
Left = 602
|
||||
Height = 22
|
||||
Left = 572
|
||||
Height = 17
|
||||
Top = 7
|
||||
Width = 113
|
||||
Width = 90
|
||||
BorderSpacing.Around = 6
|
||||
Caption = 'Show indicator'
|
||||
Checked = True
|
||||
@ -382,10 +382,10 @@ object RxDBGridMainForm: TRxDBGridMainForm
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = CheckBox3
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 602
|
||||
Height = 22
|
||||
Top = 35
|
||||
Width = 111
|
||||
Left = 572
|
||||
Height = 17
|
||||
Top = 30
|
||||
Width = 88
|
||||
BorderSpacing.Around = 6
|
||||
Caption = 'Show headers'
|
||||
Checked = True
|
||||
@ -397,10 +397,10 @@ object RxDBGridMainForm: TRxDBGridMainForm
|
||||
AnchorSideLeft.Control = CheckBox3
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = Panel1
|
||||
Left = 721
|
||||
Height = 22
|
||||
Left = 668
|
||||
Height = 17
|
||||
Top = 7
|
||||
Width = 90
|
||||
Width = 73
|
||||
BorderSpacing.Around = 6
|
||||
Caption = 'Word wrap'
|
||||
OnChange = CheckBox5Change
|
||||
|
@ -2086,13 +2086,14 @@ end;
|
||||
|
||||
procedure TRxDBGrid.UpdateJMenuStates;
|
||||
begin
|
||||
F_PopupMenu.Items[0].Enabled := rdgAllowDialogFind in FOptionsRx;
|
||||
F_PopupMenu.Items[1].Enabled := rdgAllowFilterForm in FOptionsRx;
|
||||
F_PopupMenu.Items[2].Enabled := rdgAllowQuickFilter in FOptionsRx;
|
||||
F_PopupMenu.Items[3].Enabled :=
|
||||
F_PopupMenu.Items[0].Visible := rdgAllowDialogFind in FOptionsRx;
|
||||
F_PopupMenu.Items[1].Visible := rdgAllowFilterForm in FOptionsRx;
|
||||
F_PopupMenu.Items[2].Visible := rdgAllowQuickFilter in FOptionsRx;
|
||||
F_PopupMenu.Items[3].Visible :=
|
||||
(rdgFilter in FOptionsRx) or (rdgAllowFilterForm in FOptionsRx);
|
||||
F_PopupMenu.Items[5].Enabled := rdgAllowSortForm in FOptionsRx;
|
||||
F_PopupMenu.Items[6].Enabled := rdgAllowColumnsForm in FOptionsRx;
|
||||
F_PopupMenu.Items[5].Visible := rdgAllowSortForm in FOptionsRx;
|
||||
F_PopupMenu.Items[6].Visible := rdgAllowColumnsForm in FOptionsRx;
|
||||
F_PopupMenu.Items[7].Visible := dgMultiselect in Options;
|
||||
end;
|
||||
|
||||
procedure TRxDBGrid.UpdateJMenuKeys;
|
||||
@ -3139,7 +3140,7 @@ begin
|
||||
else
|
||||
MPT.Y := Rct.Bottom;
|
||||
MPT := ClientToScreen(MPT);
|
||||
// DrawCell(0,0,F_TopRect,[gdFixed]);
|
||||
|
||||
UpdateJMenuStates;
|
||||
F_PopupMenu.Popup(MPT.X, MPT.Y);
|
||||
end;
|
||||
@ -3260,14 +3261,18 @@ begin
|
||||
exit;
|
||||
end;
|
||||
|
||||
VK_DOWN: if not (aoAppend in FAllowedOperations) then
|
||||
VK_DOWN:
|
||||
if not (aoAppend in FAllowedOperations) then
|
||||
begin
|
||||
FTmpReadOnly := ReadOnly;
|
||||
ReadOnly := True;
|
||||
inherited KeyDown(Key, Shift);
|
||||
ReadOnly := FTmpReadOnly;
|
||||
exit;
|
||||
end;
|
||||
end
|
||||
{ else
|
||||
UpdateRowsHeight;
|
||||
VK_UP:UpdateRowsHeight};
|
||||
end;
|
||||
inherited KeyDown(Key, Shift);
|
||||
if Key <> 0 then
|
||||
@ -3356,6 +3361,9 @@ end;
|
||||
|
||||
procedure TRxDBGrid.Paint;
|
||||
begin
|
||||
if rdgWordWrap in FOptionsRx then
|
||||
UpdateRowsHeight;
|
||||
|
||||
inherited Paint;
|
||||
if FFooterOptions.Active and (FFooterOptions.RowCount > 0) then
|
||||
DrawFooterRows;
|
||||
@ -3374,7 +3382,8 @@ begin
|
||||
else
|
||||
if FFooterOptions.Active and (FFooterOptions.RowCount > 0) then
|
||||
UpdateFooterRowOnUpdateActive;
|
||||
// CalcStatTotals;
|
||||
|
||||
// UpdateRowsHeight;
|
||||
end;
|
||||
|
||||
procedure TRxDBGrid.UpdateData;
|
||||
@ -3387,84 +3396,9 @@ begin
|
||||
inherited MoveSelection;
|
||||
if Assigned(FFooterOptions) and FFooterOptions.Active and (FFooterOptions.RowCount > 0) then
|
||||
DrawFooterRows;
|
||||
// UpdateRowsHeight;
|
||||
end;
|
||||
|
||||
(*
|
||||
function TRxDBGrid.GetBufferCount: integer;
|
||||
var
|
||||
i, J, W, H, H1, HW, k:integer;
|
||||
B:boolean;
|
||||
F:TField;
|
||||
S:string;
|
||||
|
||||
CurActiveRecord: Integer;
|
||||
begin
|
||||
b:=false;
|
||||
for i:=0 to Columns.Count-1 do
|
||||
begin
|
||||
if TRxColumn(Columns[i]).WordWrap then
|
||||
begin
|
||||
B:=true;
|
||||
Break;
|
||||
end;
|
||||
end;
|
||||
if not B then
|
||||
Result:=inherited GetBufferCount
|
||||
else
|
||||
begin
|
||||
CurActiveRecord:=DataLink.ActiveRecord;
|
||||
Result:=0;
|
||||
HW:=0;
|
||||
K:=1;
|
||||
for i:=GCache.VisibleGrid.Top to GCache.VisibleGrid.Bottom do
|
||||
begin
|
||||
DataLink.ActiveRecord:=i - FixedRows;
|
||||
H:=1; //DefaultRowHeight;
|
||||
for j:=0 to Columns.Count-1 do
|
||||
begin
|
||||
W:=Columns[i].Width;
|
||||
if TRxColumn(Columns[i]).WordWrap then
|
||||
begin
|
||||
F:=Columns[i].Field;
|
||||
if Assigned(F) then
|
||||
S:=F.DisplayText
|
||||
else
|
||||
S:='';
|
||||
|
||||
H1 := Max((Canvas.TextWidth(S) + 2) div W + 1, H);
|
||||
if H1 > WordCount(S, [' ']) then
|
||||
H1 := WordCount(S, [' ']);
|
||||
end;
|
||||
H:=Max(H, H1);
|
||||
end;
|
||||
HW:=HW + H * DefaultRowHeight;
|
||||
|
||||
if HW>Height then
|
||||
break;
|
||||
|
||||
RowHeights[K] := DefaultRowHeight * H;
|
||||
|
||||
inc(K);
|
||||
inc(Result);
|
||||
end;
|
||||
DataLink.ActiveRecord:=CurActiveRecord;
|
||||
{
|
||||
if (ARow>=FixedRows) and FDataLink.Active then
|
||||
begin
|
||||
FDataLink.ActiveRecord:=ARow-FixedRows;
|
||||
FDrawingActiveRecord := ARow = Row;
|
||||
FDrawingMultiSelRecord := (dgMultiSelect in Options) and
|
||||
SelectedRows.CurrentRowSelected
|
||||
end else begin
|
||||
FDrawingActiveRecord := False;
|
||||
FDrawingMultiSelRecord := False;
|
||||
end;
|
||||
|
||||
}
|
||||
end;
|
||||
end;
|
||||
*)
|
||||
|
||||
procedure TRxDBGrid.CMHintShow(var Message: TLMessage);
|
||||
var
|
||||
Cell: TGridCoord;
|
||||
@ -3580,8 +3514,8 @@ begin
|
||||
inherited VisualChange;
|
||||
CalcTitle;
|
||||
|
||||
if rdgWordWrap in FOptionsRx then
|
||||
UpdateRowsHeight;
|
||||
{ if rdgWordWrap in FOptionsRx then
|
||||
UpdateRowsHeight;}
|
||||
end;
|
||||
|
||||
function TRxDBGrid.EditorByStyle(Style: TColumnButtonStyle): TWinControl;
|
||||
|
Reference in New Issue
Block a user