![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как правильно выравнить колонки в DBGridEh
DelphiLexx © (2007-04-04 16:35:00)В моём DBGridEh'e есть несколько колонок. Все колонки, кроме первой, имеют своство AutoFitColWidth = True. Первая колонка имеет следующие размеры MyDBGrid.Columns[0].Width = 180
Необходимо сделать так, чтобы в оставшейся области грида т.е.
MyDBGrid.Width - 180 оставшиеся колонки имели одинаковую ширину. Я делаю так:
procedure
TMyForm.EvenColumnsDynDBGrid(DBGrid: TDBGridEh);
var
i: integer;
k: integer;
SeizeArea: integer;
AColWidth: integer;
begin
if DBGrid <> nil then
begin
SeizeArea := 180;
DBGrid.Columns[0].Width := SeizeArea;
if DBGrid.Columns.Count > 1 then
begin
AColWidth := Trunc((DBGrid.Width - SeizeArea) /
DBGrid.Columns.Count)
for i := 1 to DBGrid.Columns.Count - 1 do
DBGrid.Columns[i].Width := AColWidth
end;
end;
end;
{RASkov} (2007-04-05 00:11:00) [1]> > DBGrid.GridLineWidth
>
> Где ты взял GridLineWidth
А где в моем коде ты такое нашел?
Или у DBGridEh'а кто предок? Если TCustomDBGrid - то должно все работать....
DelphiLexx (2007-04-04 18:03:00) [2]
> DBGrid.GridLineWidth
Где ты взял GridLineWidth
{RASkov} (2007-04-04 17:42:00) [3]Примерно можно так, некоторые вещи не учтены, но думаю догадаешься что.
type TMyGrid = class(TCustomDBGrid);
procedure TForm1.Button1Click(Sender: TObject);
const FIRSTW = 180;
var N, ColS: Integer;
begin
DBGrid.Columns[0].Width:=FIRSTW;
ColS:=Trunc((DBGrid.ClientWidth-(TMyGrid(DBGrid).GridLineWidth *(DBGrid.Columns.Count))-FIRSTW-TMyGrid(DBGrid).ColWidths[0]) /
(DBGrid.Columns.Count-1));
for N:= 1 to DBGrid.Columns.Count-1 do DBGrid.Columns[N].Width := ColS;
end;
DelphiLexx (2007-04-04 17:13:00) [4]
> Установи только 1-й колонки AutoFitColWidth = True, а у
> остальных в False и ручками задай им нужную тебе одинаковую
> ширину.
Так мне нужно, чтобы все колонки, кромк первой, имели AutoFitColWidth = True
Amoeba (2007-04-04 16:50:00) [5]Установи только 1-й колонки AutoFitColWidth = True, а у остальных в False и ручками задай им нужную тебе одинаковую ширину.
DelphiLexx (2007-04-04 16:39:00) [6]
> Я делаю так:
Но колонки криво выравниваются