![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Смещение ячеек в TDrawGrid [D7, XP]
Fr © (2011-03-27 00:02:00)На форме лежит TDrawGrid. При создании формы ячейки растягиваются так, чтобы занять всю область грида:
procedure TForm1.FormCreate(Sender: TObject);
begin
DrawGrid1.DefaultColWidth:=DrawGrid1.Width div DrawGrid1.ColCount;
DrawGrid1.DefaultRowHeight:=DrawGrid1.Height div DrawGrid1.RowCount;
end;
После запуска "приложения" :) выделяю мышью ячейку крайнего правого столбца или нижней строки и все ячейки вдруг сдвигаются, оставляя по бокам грида пространство без сетки.
Как сделать так, чтобы не было этого сдвига?
http://dl.dropbox.com/u/8204815/Grid_1.jpg (34,5 КБ)
слева на скриншоте до выделения ячейки, справа - после.
Fr (2011-03-27 11:12:00) [1]
> _Юрий (27.03.11 11:10) [6]
Спасибо! Заработало :)
_Юрий (2011-03-27 11:10:00) [2]>>DrawGrid1.Width
DrawGrid1.ClientWidth ?
Fr (2011-03-27 10:49:00) [3]
> Так учесть надо было, а не обнулять!
Так подставьте 0 вместо DrawGrid1.GridLineWidth в
DrawGrid1.DefaultColWidth:=(DrawGrid1.Width - DrawGrid1.ColCount*DrawGrid1.GridLineWidth) div DrawGrid1.ColCount;
и получите на выходе то же самое, что и у меня.
На всякий случай заменил в коде на
DrawGrid1.DefaultColWidth:=(DrawGrid1.Width-DrawGrid1.ColCount*DrawGrid1.GridLineWidth) div DrawGrid1.ColCount;
DrawGrid1.DefaultRowHeight:=(DrawGrid1.Height-DrawGrid1.RowCount*DrawGrid1.GridLineWidth) div DrawGrid1.RowCount;
Ничего не изменилось - при выборе нижней ячейки вся сетка сдвигается вверх, оставляя под ней пустое место (без ячеек).
Германн (2011-03-27 00:45:00) [4]Так учестьнадо было, а не обнулять!
DrawGrid1.DefaultColWidth:=(DrawGrid1.Width - DrawGrid1.ColCount*DrawGrid1.GridLineWidth) div DrawGrid1.ColCount;
Fr (2011-03-27 00:26:00) [5]Точнее, при выставленном GridLineWidth в 0, сетка уже сдвигается только по вертикали. Но надо, чтобы она вся оставалась на месте...
Fr (2011-03-27 00:20:00) [6]
> В расчетах не учтена ширина линий сетки GridLineWidth.
Ничего не меняется, если GridLineWidth выставить в 0
Германн (2011-03-27 00:10:00) [7]В расчетах не учтена ширина линий сетки GridLineWidth.