Форум: "Базы";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
ВнизШирина колонки в DBGRIDEH (...EH!) Найти похожие ветки
← →
anatolyk (2004-03-13 11:30) [0]Народ, всем привет1
Долбаюсь с прстым, наверное, вопросом. Нужно автоматом устанавливать ширину колонки по значению.
Делаю так:
procedure TForm1.DBGridEh2DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
var
CellWidth : integer;
HoldColor : TColor;
begin
HoldColor := DBGridEh2.Canvas.Brush.Color;
if not Column.Field.CanModify then begin
DBGridEh2.Canvas.Brush.Color := clBtnFace;
end;
CellWidth:= DBGridEh1.Canvas.TextWidth(Column.Field.AsString);
if Column.Width < CellWidth then
Column.Width := CellWidth;
DBGridEh2.DefaultDrawColumnCell(Rect,DataCol,Column,State);
DBGridEh2.Canvas.Font.Color := HoldColor;
end;
Глючит, однако.
Иногда (например, при прокрутке вправо) Фокус ячейки переходит на соседний (обычно верхний) ряд , указатель на запись остается на месте. Получается, что поля редактируются в чужом ряду и сохраняются в чужой записи.
Иногда при переходе к последней записи (через навигатор), фокус сдвигается только колесом мыши, и то надо сначала смотать вниз, потом - наверх. Ну, и еще там кое-что.
Убираю установку ширины - все работает как надо.
← →
anatolyk (2004-03-13 12:00) [1]Ой, простите.
CellWidth:= DBGridEh1.Canvas.TextWidth(Column.Field.AsString);
следует читать
CellWidth:= DBGridEh2.Canvas.TextWidth(Column.Field.AsString);
(грид один, есс-но)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.046 c