You've already forked lazarus-ccr
RxFPC:continue work on merge cells in RxDBGrid
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5928 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -10,9 +10,6 @@
|
|||||||
<UseXPManifest Value="True"/>
|
<UseXPManifest Value="True"/>
|
||||||
<Icon Value="0"/>
|
<Icon Value="0"/>
|
||||||
</General>
|
</General>
|
||||||
<VersionInfo>
|
|
||||||
<StringTable ProductVersion=""/>
|
|
||||||
</VersionInfo>
|
|
||||||
<BuildModes Count="1">
|
<BuildModes Count="1">
|
||||||
<Item1 Name="Default" Default="True"/>
|
<Item1 Name="Default" Default="True"/>
|
||||||
</BuildModes>
|
</BuildModes>
|
||||||
@ -44,6 +41,7 @@
|
|||||||
<Filename Value="unit1.pas"/>
|
<Filename Value="unit1.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<ComponentName Value="Form1"/>
|
<ComponentName Value="Form1"/>
|
||||||
|
<HasResources Value="True"/>
|
||||||
<ResourceBaseClass Value="Form"/>
|
<ResourceBaseClass Value="Form"/>
|
||||||
<UnitName Value="Unit1"/>
|
<UnitName Value="Unit1"/>
|
||||||
</Unit1>
|
</Unit1>
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
<WindowIndex Value="-1"/>
|
<WindowIndex Value="-1"/>
|
||||||
<TopLine Value="-1"/>
|
<TopLine Value="-1"/>
|
||||||
<CursorPos X="-1" Y="-1"/>
|
<CursorPos X="-1" Y="-1"/>
|
||||||
<UsageCount Value="20"/>
|
<UsageCount Value="21"/>
|
||||||
</Unit0>
|
</Unit0>
|
||||||
<Unit1>
|
<Unit1>
|
||||||
<Filename Value="unit1.pas"/>
|
<Filename Value="unit1.pas"/>
|
||||||
@ -21,20 +21,19 @@
|
|||||||
<ResourceBaseClass Value="Form"/>
|
<ResourceBaseClass Value="Form"/>
|
||||||
<UnitName Value="Unit1"/>
|
<UnitName Value="Unit1"/>
|
||||||
<TopLine Value="43"/>
|
<TopLine Value="43"/>
|
||||||
<CursorPos X="138" Y="62"/>
|
<CursorPos X="24" Y="57"/>
|
||||||
<UsageCount Value="20"/>
|
<UsageCount Value="21"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
<LoadedDesigner Value="True"/>
|
<LoadedDesigner Value="True"/>
|
||||||
</Unit1>
|
</Unit1>
|
||||||
<Unit2>
|
<Unit2>
|
||||||
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
|
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
|
||||||
<IsVisibleTab Value="True"/>
|
|
||||||
<EditorIndex Value="1"/>
|
<EditorIndex Value="1"/>
|
||||||
<TopLine Value="4344"/>
|
<TopLine Value="5457"/>
|
||||||
<CursorPos X="3" Y="4366"/>
|
<CursorPos Y="5473"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="10"/>
|
||||||
<Bookmarks Count="1">
|
<Bookmarks Count="1">
|
||||||
<Item0 X="7" Y="4331" ID="1"/>
|
<Item0 X="7" Y="4336" ID="1"/>
|
||||||
</Bookmarks>
|
</Bookmarks>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit2>
|
</Unit2>
|
||||||
@ -42,17 +41,18 @@
|
|||||||
<Filename Value="../../../../../lcl/grids.pas"/>
|
<Filename Value="../../../../../lcl/grids.pas"/>
|
||||||
<UnitName Value="Grids"/>
|
<UnitName Value="Grids"/>
|
||||||
<EditorIndex Value="6"/>
|
<EditorIndex Value="6"/>
|
||||||
<TopLine Value="4437"/>
|
<TopLine Value="8814"/>
|
||||||
<CursorPos Y="4468"/>
|
<CursorPos Y="8835"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="10"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit3>
|
</Unit3>
|
||||||
<Unit4>
|
<Unit4>
|
||||||
<Filename Value="../../../../../lcl/dbgrids.pas"/>
|
<Filename Value="../../../../../lcl/dbgrids.pas"/>
|
||||||
<UnitName Value="DBGrids"/>
|
<UnitName Value="DBGrids"/>
|
||||||
|
<IsVisibleTab Value="True"/>
|
||||||
<EditorIndex Value="5"/>
|
<EditorIndex Value="5"/>
|
||||||
<TopLine Value="1920"/>
|
<TopLine Value="2113"/>
|
||||||
<CursorPos Y="1939"/>
|
<CursorPos X="3" Y="2117"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="10"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit4>
|
</Unit4>
|
||||||
@ -148,125 +148,134 @@
|
|||||||
</Units>
|
</Units>
|
||||||
<JumpHistory Count="30" HistoryIndex="29">
|
<JumpHistory Count="30" HistoryIndex="29">
|
||||||
<Position1>
|
<Position1>
|
||||||
<Filename Value="../../../../../lcl/include/canvas.inc"/>
|
<Filename Value="../../../../../lcl/dbgrids.pas"/>
|
||||||
<Caret Line="1246" TopLine="1226"/>
|
<Caret Line="506" Column="19" TopLine="476"/>
|
||||||
</Position1>
|
</Position1>
|
||||||
<Position2>
|
<Position2>
|
||||||
<Filename Value="../../../../../lcl/include/canvas.inc"/>
|
<Filename Value="../../../../../lcl/dbgrids.pas"/>
|
||||||
<Caret Line="1239" Column="119" TopLine="1226"/>
|
<Caret Line="3596" Column="37" TopLine="3565"/>
|
||||||
</Position2>
|
</Position2>
|
||||||
<Position3>
|
<Position3>
|
||||||
<Filename Value="../../../../../lcl/include/canvas.inc"/>
|
<Filename Value="../../../../../lcl/dbgrids.pas"/>
|
||||||
<Caret Line="1248" TopLine="1226"/>
|
<Caret Line="3603" Column="34" TopLine="3572"/>
|
||||||
</Position3>
|
</Position3>
|
||||||
<Position4>
|
<Position4>
|
||||||
<Filename Value="../../../../../lcl/include/canvas.inc"/>
|
<Filename Value="../../../../../lcl/dbgrids.pas"/>
|
||||||
<Caret Line="1251" TopLine="1226"/>
|
|
||||||
</Position4>
|
</Position4>
|
||||||
<Position5>
|
<Position5>
|
||||||
<Filename Value="../../../../../lcl/include/canvas.inc"/>
|
<Filename Value="../../../../../lcl/dbgrids.pas"/>
|
||||||
<Caret Line="1252" TopLine="1226"/>
|
<Caret Line="506" Column="28" TopLine="476"/>
|
||||||
</Position5>
|
</Position5>
|
||||||
<Position6>
|
<Position6>
|
||||||
<Filename Value="../../../../../lcl/include/canvas.inc"/>
|
<Filename Value="../../../../../lcl/dbgrids.pas"/>
|
||||||
<Caret Line="1255" TopLine="1226"/>
|
<Caret Line="3596" Column="37" TopLine="3565"/>
|
||||||
</Position6>
|
</Position6>
|
||||||
<Position7>
|
<Position7>
|
||||||
<Filename Value="../../../../../lcl/include/canvas.inc"/>
|
<Filename Value="../../../../../lcl/dbgrids.pas"/>
|
||||||
<Caret Line="1257" TopLine="1227"/>
|
<Caret Line="3603" Column="34" TopLine="3572"/>
|
||||||
</Position7>
|
</Position7>
|
||||||
<Position8>
|
<Position8>
|
||||||
<Filename Value="../../../../../lcl/include/canvas.inc"/>
|
<Filename Value="../../../../../lcl/dbgrids.pas"/>
|
||||||
<Caret Line="1263" TopLine="1233"/>
|
|
||||||
</Position8>
|
</Position8>
|
||||||
<Position9>
|
<Position9>
|
||||||
<Filename Value="../../../../../lcl/include/canvas.inc"/>
|
<Filename Value="../../../../../lcl/dbgrids.pas"/>
|
||||||
<Caret Line="1264" TopLine="1243"/>
|
<Caret Line="506" Column="28" TopLine="476"/>
|
||||||
</Position9>
|
</Position9>
|
||||||
<Position10>
|
<Position10>
|
||||||
<Filename Value="../../../../../lcl/include/canvas.inc"/>
|
<Filename Value="../../../../../lcl/dbgrids.pas"/>
|
||||||
<Caret Line="1266" TopLine="1243"/>
|
<Caret Line="3596" Column="37" TopLine="3565"/>
|
||||||
</Position10>
|
</Position10>
|
||||||
<Position11>
|
<Position11>
|
||||||
<Filename Value="../../../../../lcl/include/canvas.inc"/>
|
<Filename Value="../../../../../lcl/grids.pas"/>
|
||||||
<Caret Line="1267" TopLine="1243"/>
|
<Caret Line="8140" Column="15" TopLine="8109"/>
|
||||||
</Position11>
|
</Position11>
|
||||||
<Position12>
|
<Position12>
|
||||||
<Filename Value="../../../../../lcl/include/canvas.inc"/>
|
<Filename Value="../../../../../lcl/grids.pas"/>
|
||||||
<Caret Line="1269" TopLine="1243"/>
|
<Caret Line="8829" Column="31" TopLine="8804"/>
|
||||||
</Position12>
|
</Position12>
|
||||||
<Position13>
|
<Position13>
|
||||||
<Filename Value="../../../../../lcl/include/canvas.inc"/>
|
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
|
||||||
<Caret Line="1272" TopLine="1243"/>
|
<Caret Line="6305" Column="5" TopLine="6296"/>
|
||||||
</Position13>
|
</Position13>
|
||||||
<Position14>
|
<Position14>
|
||||||
<Filename Value="../../../../../lcl/include/canvas.inc"/>
|
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
|
||||||
<Caret Line="1273" TopLine="1243"/>
|
<Caret Line="926" Column="72" TopLine="907"/>
|
||||||
</Position14>
|
</Position14>
|
||||||
<Position15>
|
<Position15>
|
||||||
<Filename Value="../../../../../lcl/include/canvas.inc"/>
|
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
|
||||||
<Caret Line="1275" TopLine="1245"/>
|
<Caret Line="6334" Column="9" TopLine="6300"/>
|
||||||
</Position15>
|
</Position15>
|
||||||
<Position16>
|
<Position16>
|
||||||
<Filename Value="../../../../../lcl/include/canvas.inc"/>
|
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
|
||||||
<Caret Line="1278" TopLine="1248"/>
|
<Caret Line="6313" Column="38" TopLine="6300"/>
|
||||||
</Position16>
|
</Position16>
|
||||||
<Position17>
|
<Position17>
|
||||||
<Filename Value="../../../../../lcl/include/canvas.inc"/>
|
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
|
||||||
<Caret Line="1279" TopLine="1249"/>
|
<Caret Line="6329" TopLine="6300"/>
|
||||||
</Position17>
|
</Position17>
|
||||||
<Position18>
|
<Position18>
|
||||||
<Filename Value="../../../../../lcl/include/canvas.inc"/>
|
<Filename Value="../../../../../lcl/grids.pas"/>
|
||||||
<Caret Line="1280" TopLine="1250"/>
|
<Caret Line="8825" TopLine="8805"/>
|
||||||
</Position18>
|
</Position18>
|
||||||
<Position19>
|
<Position19>
|
||||||
<Filename Value="../../../../../lcl/include/canvas.inc"/>
|
<Filename Value="../../../../../lcl/grids.pas"/>
|
||||||
<Caret Line="1281" TopLine="1251"/>
|
<Caret Line="8826" TopLine="8814"/>
|
||||||
</Position19>
|
</Position19>
|
||||||
<Position20>
|
<Position20>
|
||||||
<Filename Value="../../../../../lcl/include/canvas.inc"/>
|
<Filename Value="../../../../../lcl/grids.pas"/>
|
||||||
<Caret Line="1283" TopLine="1253"/>
|
<Caret Line="8827" TopLine="8814"/>
|
||||||
</Position20>
|
</Position20>
|
||||||
<Position21>
|
<Position21>
|
||||||
<Filename Value="../../../../../lcl/include/canvas.inc"/>
|
<Filename Value="../../../../../lcl/grids.pas"/>
|
||||||
<Caret Line="1285" TopLine="1255"/>
|
<Caret Line="8828" TopLine="8814"/>
|
||||||
</Position21>
|
</Position21>
|
||||||
<Position22>
|
<Position22>
|
||||||
<Filename Value="../../../../../lcl/include/canvas.inc"/>
|
<Filename Value="../../../../../lcl/grids.pas"/>
|
||||||
<Caret Line="1286" TopLine="1256"/>
|
<Caret Line="8829" TopLine="8814"/>
|
||||||
</Position22>
|
</Position22>
|
||||||
<Position23>
|
<Position23>
|
||||||
<Filename Value="../../../../../lcl/include/canvas.inc"/>
|
<Filename Value="../../../../../lcl/grids.pas"/>
|
||||||
<Caret Line="1287" TopLine="1257"/>
|
<Caret Line="8830" TopLine="8814"/>
|
||||||
</Position23>
|
</Position23>
|
||||||
<Position24>
|
<Position24>
|
||||||
<Filename Value="../../../../../lcl/include/canvas.inc"/>
|
<Filename Value="../../../../../lcl/grids.pas"/>
|
||||||
<Caret Line="1289" TopLine="1259"/>
|
<Caret Line="8835" TopLine="8814"/>
|
||||||
</Position24>
|
</Position24>
|
||||||
<Position25>
|
<Position25>
|
||||||
<Filename Value="../../../../../lcl/include/canvas.inc"/>
|
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
|
||||||
<Caret Line="1293" TopLine="1263"/>
|
<Caret Line="5473" TopLine="5457"/>
|
||||||
</Position25>
|
</Position25>
|
||||||
<Position26>
|
<Position26>
|
||||||
<Filename Value="../../../../../lcl/include/canvas.inc"/>
|
<Filename Value="../../../../../lcl/dbgrids.pas"/>
|
||||||
<Caret Line="1294" TopLine="1264"/>
|
<Caret Line="506" Column="15" TopLine="488"/>
|
||||||
</Position26>
|
</Position26>
|
||||||
<Position27>
|
<Position27>
|
||||||
<Filename Value="../../../../../lcl/include/canvas.inc"/>
|
<Filename Value="../../../../../lcl/dbgrids.pas"/>
|
||||||
<Caret Line="1296" TopLine="1266"/>
|
<Caret Line="3598" Column="3" TopLine="3595"/>
|
||||||
</Position27>
|
</Position27>
|
||||||
<Position28>
|
<Position28>
|
||||||
<Filename Value="../../../../../lcl/include/canvas.inc"/>
|
<Filename Value="../../../../../lcl/dbgrids.pas"/>
|
||||||
<Caret Line="1299" TopLine="1269"/>
|
<Caret Line="386" Column="15" TopLine="368"/>
|
||||||
</Position28>
|
</Position28>
|
||||||
<Position29>
|
<Position29>
|
||||||
<Filename Value="../../../../../lcl/include/canvas.inc"/>
|
<Filename Value="../../../../../lcl/dbgrids.pas"/>
|
||||||
<Caret Line="1302" TopLine="1272"/>
|
<Caret Line="2019" Column="3" TopLine="2014"/>
|
||||||
</Position29>
|
</Position29>
|
||||||
<Position30>
|
<Position30>
|
||||||
<Filename Value="../../../../../lcl/include/canvas.inc"/>
|
<Filename Value="../../../../../lcl/dbgrids.pas"/>
|
||||||
<Caret Line="1303" TopLine="1273"/>
|
<Caret Line="391" Column="15" TopLine="373"/>
|
||||||
</Position30>
|
</Position30>
|
||||||
</JumpHistory>
|
</JumpHistory>
|
||||||
</ProjectSession>
|
</ProjectSession>
|
||||||
|
<Debugging>
|
||||||
|
<BreakPoints Count="1">
|
||||||
|
<Item1>
|
||||||
|
<Kind Value="bpkSource"/>
|
||||||
|
<WatchScope Value="wpsLocal"/>
|
||||||
|
<WatchKind Value="wpkWrite"/>
|
||||||
|
<Source Value="../../../rxdb/rxdbgrid.pas"/>
|
||||||
|
<Line Value="6328"/>
|
||||||
|
</Item1>
|
||||||
|
</BreakPoints>
|
||||||
|
</Debugging>
|
||||||
</CONFIG>
|
</CONFIG>
|
||||||
|
@ -50,9 +50,11 @@ var
|
|||||||
i: Integer;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
rxData.Open;
|
rxData.Open;
|
||||||
|
rxData.DisableControls;
|
||||||
for i:=1 to 30 do
|
for i:=1 to 30 do
|
||||||
rxData.AppendRecord([i, Date - i, 'Line '+IntToStr(i)]);
|
rxData.AppendRecord([i, Date - i, 'Line '+IntToStr(i)]);
|
||||||
rxData.First;
|
rxData.First;
|
||||||
|
rxData.EnableControls;
|
||||||
|
|
||||||
RxDBGrid1.OnMergeCells:=@RxDBGridMergeCellsEvent;
|
RxDBGrid1.OnMergeCells:=@RxDBGridMergeCellsEvent;
|
||||||
end;
|
end;
|
||||||
|
@ -920,6 +920,11 @@ type
|
|||||||
procedure CalcCellExtent(ACol, ARow: Integer; var ARect: TRect);
|
procedure CalcCellExtent(ACol, ARow: Integer; var ARect: TRect);
|
||||||
function IsMerged(ACol{, ARow}: Integer): Boolean; overload;
|
function IsMerged(ACol{, ARow}: Integer): Boolean; overload;
|
||||||
function IsMerged(ACol{, ARow}: Integer; out ALeft, {ATop, }ARight{, ABottom}: Integer): Boolean; overload;
|
function IsMerged(ACol{, ARow}: Integer; out ALeft, {ATop, }ARight{, ABottom}: Integer): Boolean; overload;
|
||||||
|
|
||||||
|
function GetEditMask(aCol, aRow: Longint): string; override;
|
||||||
|
function GetEditText(aCol, aRow: Longint): string; override;
|
||||||
|
function GetDefaultEditor(Column: Integer): TWinControl; override;
|
||||||
|
|
||||||
procedure PrepareCanvas(aCol, aRow: Integer; AState: TGridDrawState); override;
|
procedure PrepareCanvas(aCol, aRow: Integer; AState: TGridDrawState); override;
|
||||||
|
|
||||||
property Editor;
|
property Editor;
|
||||||
@ -5172,9 +5177,13 @@ end;
|
|||||||
procedure TRxDBGrid.SetEditText(ACol, ARow: longint; const Value: string);
|
procedure TRxDBGrid.SetEditText(ACol, ARow: longint; const Value: string);
|
||||||
var
|
var
|
||||||
C: TRxColumn;
|
C: TRxColumn;
|
||||||
j: integer;
|
j, L, R: integer;
|
||||||
S: string;
|
S: string;
|
||||||
begin
|
begin
|
||||||
|
if (rdgColSpanning in OptionsRx) then
|
||||||
|
if IsMerged(aCol, L, R) then
|
||||||
|
aCol:=L;
|
||||||
|
|
||||||
C := ColumnFromGridColumn(aCol) as TRxColumn;
|
C := ColumnFromGridColumn(aCol) as TRxColumn;
|
||||||
S := Value;
|
S := Value;
|
||||||
if Assigned(C) and (C.KeyList.Count > 0) and (C.PickList.Count > 0) then
|
if Assigned(C) and (C.KeyList.Count > 0) and (C.PickList.Count > 0) then
|
||||||
@ -6290,6 +6299,36 @@ begin
|
|||||||
dec(FMergeLock);
|
dec(FMergeLock);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TRxDBGrid.GetEditMask(aCol, aRow: Longint): string;
|
||||||
|
var
|
||||||
|
L, R: Integer;
|
||||||
|
begin
|
||||||
|
if (rdgColSpanning in OptionsRx) then
|
||||||
|
if IsMerged(aCol, L, R) then
|
||||||
|
aCol:=L;
|
||||||
|
Result:=inherited GetEditMask(aCol, aRow);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TRxDBGrid.GetEditText(aCol, aRow: Longint): string;
|
||||||
|
var
|
||||||
|
R, L: Integer;
|
||||||
|
begin
|
||||||
|
if (rdgColSpanning in OptionsRx) then
|
||||||
|
if IsMerged(aCol, L, R) then
|
||||||
|
aCol:=L;
|
||||||
|
Result:=inherited GetEditText(aCol, aRow);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TRxDBGrid.GetDefaultEditor(Column: Integer): TWinControl;
|
||||||
|
var
|
||||||
|
L, R: Integer;
|
||||||
|
begin
|
||||||
|
if (rdgColSpanning in OptionsRx) then
|
||||||
|
if IsMerged(Column, L, R) then
|
||||||
|
Column:=L;
|
||||||
|
Result:=inherited GetDefaultEditor(Column);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TRxDBGrid.PrepareCanvas(aCol, aRow: Integer; AState: TGridDrawState);
|
procedure TRxDBGrid.PrepareCanvas(aCol, aRow: Integer; AState: TGridDrawState);
|
||||||
var
|
var
|
||||||
L, R, RR: Integer;
|
L, R, RR: Integer;
|
||||||
|
Reference in New Issue
Block a user