From 0a7ffce366053d61e85d1c8ab14c6d3839b45268 Mon Sep 17 00:00:00 2001 From: alexs75 Date: Tue, 29 Jun 2010 16:38:27 +0000 Subject: [PATCH] git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1240 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- components/rx/Demos/RxDBGrid/RxDBGridDemo.lpi | 124 +++++++++--------- .../rx/Demos/RxDBGrid/rxdbgridmainunit.lfm | 36 ++--- components/rx/rxdbgrid.pas | 36 +++-- 3 files changed, 103 insertions(+), 93 deletions(-) diff --git a/components/rx/Demos/RxDBGrid/RxDBGridDemo.lpi b/components/rx/Demos/RxDBGrid/RxDBGridDemo.lpi index e66f266ba..404184be7 100644 --- a/components/rx/Demos/RxDBGrid/RxDBGridDemo.lpi +++ b/components/rx/Demos/RxDBGrid/RxDBGridDemo.lpi @@ -59,7 +59,7 @@ - + @@ -71,7 +71,7 @@ - + @@ -396,13 +396,13 @@ - - + + - - - + + + @@ -532,127 +532,123 @@ - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - - + + - - + + - + - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + + + + + + + + + + + + + + + + + diff --git a/components/rx/Demos/RxDBGrid/rxdbgridmainunit.lfm b/components/rx/Demos/RxDBGrid/rxdbgridmainunit.lfm index 373b94b00..18393dabc 100644 --- a/components/rx/Demos/RxDBGrid/rxdbgridmainunit.lfm +++ b/components/rx/Demos/RxDBGrid/rxdbgridmainunit.lfm @@ -1,7 +1,7 @@ object RxDBGridMainForm: TRxDBGridMainForm - Left = 295 + Left = 325 Height = 786 - Top = 147 + Top = 177 Width = 1012 ActiveControl = Panel1 Caption = 'RxDBGrid Demo' @@ -180,9 +180,9 @@ object RxDBGridMainForm: TRxDBGridMainForm AnchorSideLeft.Control = Button2 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Panel1 - Left = 271 + Left = 272 Height = 18 - Top = 6 + Top = 7 Width = 40 BorderSpacing.Around = 6 Caption = 'Mode' @@ -191,9 +191,9 @@ object RxDBGridMainForm: TRxDBGridMainForm object Button1: TButton AnchorSideLeft.Control = Panel1 AnchorSideTop.Control = Panel1 - Left = 6 + Left = 7 Height = 29 - Top = 6 + Top = 7 Width = 87 Action = actCalcTotal AutoSize = True @@ -204,9 +204,9 @@ object RxDBGridMainForm: TRxDBGridMainForm AnchorSideLeft.Control = Button1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Panel1 - Left = 99 + Left = 100 Height = 29 - Top = 6 + Top = 7 Width = 166 Action = actOptimizeColumnsWidthAll AutoSize = True @@ -218,9 +218,9 @@ object RxDBGridMainForm: TRxDBGridMainForm AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = CheckBox2 AnchorSideTop.Side = asrBottom - Left = 500 + Left = 501 Height = 22 - Top = 34 + Top = 35 Width = 86 BorderSpacing.Left = 6 Caption = 'Use filter' @@ -231,9 +231,9 @@ object RxDBGridMainForm: TRxDBGridMainForm AnchorSideLeft.Control = Label1 AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrBottom - Left = 277 + Left = 278 Height = 31 - Top = 30 + Top = 31 Width = 217 BorderSpacing.Around = 6 ItemHeight = 0 @@ -251,9 +251,9 @@ object RxDBGridMainForm: TRxDBGridMainForm AnchorSideLeft.Control = ComboBox1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Panel1 - Left = 500 + Left = 501 Height = 22 - Top = 6 + Top = 7 Width = 138 BorderSpacing.Around = 6 Caption = 'Auto fill columns' @@ -264,9 +264,9 @@ object RxDBGridMainForm: TRxDBGridMainForm AnchorSideLeft.Control = CheckBox2 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Panel1 - Left = 644 + Left = 645 Height = 22 - Top = 6 + Top = 7 Width = 125 BorderSpacing.Around = 6 Caption = 'Show indicator' @@ -280,9 +280,9 @@ object RxDBGridMainForm: TRxDBGridMainForm AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = CheckBox3 AnchorSideTop.Side = asrBottom - Left = 644 + Left = 645 Height = 22 - Top = 34 + Top = 35 Width = 123 BorderSpacing.Around = 6 Caption = 'Show headers' diff --git a/components/rx/rxdbgrid.pas b/components/rx/rxdbgrid.pas index 7016a5022..c3d0313df 100644 --- a/components/rx/rxdbgrid.pas +++ b/components/rx/rxdbgrid.pas @@ -1120,7 +1120,7 @@ var H, H1, W, H2:integer; rxCol, rxColNext:TRxColumn; rxTit, rxTitleNext:TRxColumnTitle; - MLRec1:TMLCaptionItem; + MLRec1, P:TMLCaptionItem; MLRec2:TMLCaptionItem; tmpCanvas: TCanvas; begin @@ -1151,15 +1151,6 @@ begin rxColNext:=TRxColumn(Columns[i+1]); rxTitleNext:=TRxColumnTitle(rxColNext.Title); end; - { TODO -oalexs : Тут необходимо также обработать скрытые столбцы } - { - j:=i; - while j < Columns.Count-1 then - begin - if - inc(j); - end; - } W:=Max(rxCol.Width-6, 1); if rxTit.CaptionLinesCount > 0 then @@ -1172,7 +1163,7 @@ begin if Assigned(rxTitleNext) and (rxTitleNext.CaptionLinesCount>j) then begin - //make links to next column (and in the next column set linc to prior-current) + //make links to next column (and in the next column set link to prior-current) MLRec2:=rxTitleNext.CaptionLine(j); if MLRec1.Caption = MLRec2.Caption then begin @@ -1214,6 +1205,29 @@ begin end; end; + //Тут расчёт высоты заголовка каждой колонки - надо обработать слитые заголовки +{ for i:=0 to Columns.Count-1 do + begin + rxCol:=TRxColumn(Columns[i]); + if Assigned(rxCol) and rxCol.Visible then + begin + for j:=0 to rxTit.CaptionLinesCount-1 do + begin + MLRec1:=rxTit.CaptionLine(j); + if not Assigned(MLRec1.Prior) then + begin + W:=MLRec1.Width; + P:=MLRec1.Next; + while Assigned(P) do + begin + Inc(W, P.Width); + P:=P.Next; + end; + end; + end; + end; + end;} + RowHeights[0] := DefaultRowHeight * ({FTitleLines+}H); if rdgFilter in OptionsRx then