From 504f6422f115bc1d44a613a6f74b3bc0f11834a5 Mon Sep 17 00:00:00 2001 From: alexs75 Date: Tue, 3 Nov 2009 15:33:19 +0000 Subject: [PATCH] fix calc column width - patch from MageSlayer git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@991 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- components/rx/rxdbgrid.pas | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/components/rx/rxdbgrid.pas b/components/rx/rxdbgrid.pas index 2d2a4bedd..a599b730f 100644 --- a/components/rx/rxdbgrid.pas +++ b/components/rx/rxdbgrid.pas @@ -2223,8 +2223,9 @@ end; procedure TRxDBGrid.InternalOptimizeColumnsWidth(AColList: TList); var P:TBookmark; - i, W:integer; + i, W, n:integer; WA:PIntegerArray; + S:String; begin GetMem(WA, SizeOf(Integer) * AColList.Count); @@ -2241,7 +2242,16 @@ begin begin for I := 0 to AColList.Count-1 do begin - W:=Canvas.TextWidth(TRxColumn(AColList[i]).Field.DisplayText) + 6; +// W:=Canvas.TextWidth(TRxColumn(AColList[i]).Field.DisplayText) + 6; + S:=TRxColumn(AColList[i]).Field.DisplayText; + with TRxColumn(AColList[i]) do + if (KeyList.Count > 0) and (PickList.Count > 0) then + begin + n:=KeyList.IndexOf(S); + if (n<>-1) and (n < PickList.Count) then + S:=PickList.Strings[n]; + end; + W:=Canvas.TextWidth(S) + 6; if WA^[i]