KGrid это DBGrid ???
Ищу замену RxDBGrid от alexs. Нужен DBGrid с многострочными заголовками и подвалом, т.е. фиксированной нижней строкой.
Модератор: Модераторы
dunin писал(а):У kgrid него многострочные заголовки вообще есть?
Modifying grid's width may be OK for an application but is not something the grid should do, what if the grid is resized automatically? like when it's anchored or aligned.
Как умею ^_^ переводить писал(а):Возможно подгонять ширину таблицы, но это не всегда возможно, что если таблица изменяет размер автоматом? Когда она привязана или выровнена.
Код: Выделить всё
...
Uses
..., LCLIntf;
...
Код: Выделить всё
function GetScrollBarSize(Handle: HWND; SBStyle: Integer): integer; {$IFDEF IF_BASE_MEMBER}virtual;{$ENDIF}
function GetScrollbarVisible(Handle: HWND; SBStyle: Integer): boolean; {$IFDEF IF_BASE_MEMBER}virtual;{$ENDIF}
Код: Выделить всё
ScrollBarWidth:=GetScrollBarSize(Handle, 2);
StringGrid1.Width:=StringGrid1.Columns[0].Width+
StringGrid1.Columns[1].Width+
StringGrid1.Columns[2].Width+
StringGrid1.Columns[3].Width+
StringGrid1.Columns[4].Width+StringGrid1.ColCount+
ScrollBarWidth; Код: Выделить всё
Procedure ResizeCols(Const aGrid: TStringGrid;
Const aMainCol: Integer; Const aMinWidth: Integer = 0);
Var
i, aOtherCols: Integer;
Begin
aOtherCols := 5;
For i := 0 To aGrid.ColCount - 1 Do
If Not(i = aMainCol) Then
Inc(aOtherCols, aGrid.ColWidths[i] + 1);
If GetScrollbarVisible(aGrid.Handle, 1) Then
Inc(aOtherCols, GetScrollBarSize(aGrid.Handle, 1));
aGrid.ColWidths[aMainCol] := Max(aMinWidth, aGrid.Width - aOtherCols);
End;
GAMER писал(а):GetScrollBarSize - вариант хороший для меня. Но не для тех, кто использует авторасчет ширины грида в зависимости от других параметров.
Код: Выделить всё
function GetScrollBarSize(Handle: HWND; SBStyle: Integer): integer; {$IFDEF IF_BASE_MEMBER}virtual;{$ENDIF}