Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.21;
Скачать: CL | DM;

Вниз

автоширина столца в DBGridEH   Найти похожие ветки 

 
Lt   (2003-07-25 09:22) [0]

День добрый. Можно ли (и как) в DBGridEh устанавливать автоширину ОТДЕЛЬНОГО столбца в зависимости от ширины содержимого ячейки? Установка для столбца Autowith в true не срабатывает.


 
Johnmen ©   (2003-07-25 09:35) [1]

Нет.


 
Lt   (2003-07-25 10:00) [2]

Autowith для TDBGridEh растягивает содержимое всего грида, а что тогда делает свойство autowith для TDBGridEh.Columns?


 
Johnmen ©   (2003-07-25 10:40) [3]

То же самое для конкретной колонки. Т.е. пропорциональное изменение ширины в зависимости от других колонок...


 
ekc   (2003-07-25 11:19) [4]

Если установить свойство Autowith=True для TDBGridEh, а затем для всех Columns (кроме одного, двух и т.д.) Autowith=False, то и будут растягиваться только тот (те) Columns у которого остался Autowith=True


 
Lt   (2003-07-25 12:15) [5]

Ясно. А какие компоненты с данным свойством (автоширина ОТДЕЛЬНОГО столбца в зависимости от ширины содержимого ячейки)посоветуете?


 
Johnmen ©   (2003-07-25 12:44) [6]

Таких нет...


 
Lt   (2003-07-29 10:59) [7]

И снова об автовписывании текста в ячейку. Написал процедуру по автоизменению ширины ячейки. Посоветуйте, на какое событие грида (или таблицы? или набора данных?) ее лучше повесить. Смысл в том, чтобы автовыравнивание происходило автоматически после изменения зщначения текста в ячейке пользователем.

procedure TfrmMain.btnHClick(Sender: TObject);
var
WidthMax, WidthField, WidthTitle: Integer;
I: Byte;
begin
with DBGridEh1, dmMain.tblMain do
begin
for I := 0 to Columns.Count - 1 do
begin
WidthMax := 0;
DisableControls;
if I = 0 then WidthMax := 20
else
begin
First;
while not EOF do
begin
WidthField := Canvas.TextWidth(Columns[I].Field.DisplayText);
WidthTitle := Canvas.TextWidth(Columns[I].Title.Caption);
if WidthField < WidthTitle then
if Columns[I].Title.SortMarker = smNoneEh then WidthField := WidthTitle
else WidthField := WidthTitle + 16
else
if (Columns[I].ButtonStyle = cbsEllipsis) or
(Columns[I].ButtonStyle = cbsDropDown) or
( Columns[I].ButtonStyle = cbsAuto) И снова об автовписывании текста в ячейку. Написал процедуру по автоизменению ширины ячейки. Посоветуйте, на какое событие грида (или таблицы? или набора данных?) ее лучше повесить. Смысл в том, чтобы автовыравнивание происходило автоматически после изменения зщначения текста в ячейке пользователем.

procedure TfrmMain.btnHClick(Sender: TObject);
var
WidthMax, WidthField, WidthTitle: Integer;
I: Byte;
begin
with DBGridEh1, dmMain.tblMain do
begin
for I := 0 to Columns.Count - 1 do
begin
WidthMax := 0;
DisableControls;
if I = 0 then WidthMax := 20
else
begin
First;
while not EOF do
begin
WidthField := Canvas.TextWidth(Columns[I].Field.DisplayText);
WidthTitle := Canvas.TextWidth(Columns[I].Title.Caption);
if WidthField < WidthTitle then
if Columns[I].Title.SortMarker = smNoneEh then WidthField := WidthTitle
else WidthField := WidthTitle + 16
else
if (Columns[I].ButtonStyle = cbsEllipsis) or
(Columns[I].ButtonStyle = cbsDropDown) or
(Columns[I].ButtonStyle = cbsAuto) then
WidthField := WidthField + 16;
if WidthField > WidthMax then
WidthMax := WidthField;
Next;
end;
end;
Columns[I].Width := WidthMax + 10;
First;
EnableControls;
end;
end;
end;



Страницы: 1 вся ветка

Текущий архив: 2003.08.21;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.012 c
14-68485
Работодатель
2003-07-29 15:18
2003.08.21
А чем мы хуже? У нас тоже появилась вакансия!


14-68458
Johnny Smith
2003-08-04 15:49
2003.08.21
Девушки-некрофилки. Миф или реальность? Разрешать или нет?


14-68478
DiamondShark
2003-08-05 14:34
2003.08.21
Навеяно веткой про самолёт


14-68547
CD
2003-08-06 14:53
2003.08.21
Про вопрос о неприкасаемости


14-68467
clickmaker
2003-08-06 13:15
2003.08.21
Дешевые гостиницы в Москве