Как получить высоту шапки dbgrid.
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
Здравствуйте, linker, Вы писали:
L>Как получить высоту шапки dbgrid.
Все относительно просто
type
TDBGidAccess = class (TDBGrid);
......
aHeaderHeight := TDBGidAccess (DBGrid1).RowHeights[0];
Здравствуйте, Danchik, Вы писали:
D>Здравствуйте, linker, Вы писали:
L>>Как получить высоту шапки dbgrid.
D>Все относительно просто
D>D>type
D> TDBGidAccess = class (TDBGrid);
D>......
D> aHeaderHeight := TDBGidAccess (DBGrid1).RowHeights[0];
D>
Вот так считаю высоту grid'a,а потом задаю её для грида , но почему-то остается пустое место,хотя вроде не должно
hGridHeight:=(dbgridDetail.RowCount)*dbgridDetail.RowHeight+aHeaderHeight;
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
Здравствуйте, linker, Вы писали:
L>Вот так считаю высоту grid'a,а потом задаю её для грида , но почему-то остается пустое место,хотя вроде не должно
L>L>hGridHeight:=(dbgridDetail.RowCount)*dbgridDetail.RowHeight+aHeaderHeight;
L>
Ну что же вы такие ленивые
. Посмотри и сделай выводы:
type
TDBGidAccess = class (TDBGrid);
function OptimalDBGridHeight (DBGrid : TDBGrid) : Integer;
var
K : Integer;
aGridHeight : Integer;
aHeightDelta : Integer;
begin
aGridHeight := 0;
for K := 0 to TDBGidAccess (DBGrid).RowCount - 1 do
aGridHeight := aGridHeight + TDBGidAccess (DBGrid).RowHeights[K];
if dgRowLines in DBGrid.Options then
aGridHeight := aGridHeight + TDBGidAccess (DBGrid).RowCount;
with DBGrid.ClientRect do
aHeightDelta := DBGrid.Height - (Bottom - Top);
aGridHeight := aGridHeight + aHeightDelta;
Result := aGridHeight;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
DBGrid1.Height := OptimalDBGridHeight (DBGrid1);
end;
Здравствуйте, Danchik, Вы писали:
D>Здравствуйте, linker, Вы писали:
L>>Вот так считаю высоту grid'a,а потом задаю её для грида , но почему-то остается пустое место,хотя вроде не должно
L>>L>>hGridHeight:=(dbgridDetail.RowCount)*dbgridDetail.RowHeight+aHeaderHeight;
L>>
D>Ну что же вы такие ленивые . Посмотри и сделай выводы:
D>D>type
D> TDBGidAccess = class (TDBGrid);
D>function OptimalDBGridHeight (DBGrid : TDBGrid) : Integer;
D>var
D> K : Integer;
D> aGridHeight : Integer;
D> aHeightDelta : Integer;
D>begin
D> aGridHeight := 0;
D> for K := 0 to TDBGidAccess (DBGrid).RowCount - 1 do
D> aGridHeight := aGridHeight + TDBGidAccess (DBGrid).RowHeights[K];
D> if dgRowLines in DBGrid.Options then
D> aGridHeight := aGridHeight + TDBGidAccess (DBGrid).RowCount;
D> with DBGrid.ClientRect do
D> aHeightDelta := DBGrid.Height - (Bottom - Top);
D> aGridHeight := aGridHeight + aHeightDelta;
D> Result := aGridHeight;
D>end;
D>procedure TForm1.Button1Click(Sender: TObject);
D>begin
D> DBGrid1.Height := OptimalDBGridHeight (DBGrid1);
D>end;
D>
Спасибо большое,просто пятница вечер
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
Здравствуйте, linker, Вы писали:
L>Спасибо большое,просто пятница вечер
Ну да и я пиффо люблю.
Только вот в чем прикол: с DBGrid я вообще не работаю, сегодня посмотрел освежил память (ацтой компонента
). Просто глянул в исходники...
Если ты сам не научишся это делать, тебе ох как тяжело будет...