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

Вниз

TStringGrid на манер грида в Mozilla Thunderbird   Найти похожие ветки 

 
Iks   (2007-03-22 11:07) [0]

Здравствуйте.

Как можно реализовать автораспределение ширины столбцов в гриде так, как это сделано в Thunderbird, и чтобы был последний столбец типа "показать/скрыть столбцы". У меня не получается даже вычислить ширину канвы у грида, потому что не знаю, какая ширина полосы скролла будет у юзеров...

С уважением.


 
clickmaker ©   (2007-03-22 11:18) [1]


> какая ширина полосы скролла будет у юзеров

GetSystemMetrics(SM_CXSCROLL)?


 
Крик   (2007-03-22 11:21) [2]

clickmaker
А дальше? Я пробую так:

procedure AutoSizeGridColumn(Grid: TStringGrid; column, min, max: Integer);
var
 i: Integer;
 temp: Integer;
 tempmax: Integer;
begin
 tempmax := 0;
 for i := 0 to (Grid.RowCount - 1) do
  begin
    temp := Grid.Canvas.TextWidth(Grid.cells[column, i]);
    if temp > tempmax then tempmax := temp;
    if tempmax > max then
    begin
      tempmax := max;
      break;
    end;
  end;
  if tempmax < min then tempmax := min;
  Grid.ColWidths[column] := tempmax + Grid.GridLineWidth + 3;
end;


А потом делаю 2ой столбец на недостающую длину. Но это - не гуд. Потому что если остальные столбцы длиннее, получается "уход за границу".

Хотелось бы так, чтобы автосайз срабатывал только если ширина меньше ширины канвы, а последний столбец всегда был в границу грида...


 
ЮЮ ©   (2007-03-22 11:28) [3]

> Хотелось бы так, чтобы автосайз срабатывал только если ширина
> меньше ширины канвы,

Ну так посчитай суммарную ширину столбцов, а потом уже, если она меньше клиентской ширины грида, делай свой AutoSize



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

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

Наверх




Память: 0.47 MB
Время: 0.05 c
2-1178037815
Антон Шестаков
2007-05-01 20:43
2007.05.20
Меню как в Nero


15-1177265952
homm
2007-04-22 22:19
2007.05.20
Первый полет в мирке. Впечатления.


3-1172687941
kolj
2007-02-28 21:39
2007.05.20
Доступ к даным


15-1176816514
CCili
2007-04-17 17:28
2007.05.20
Как в голове может остаться хоть что-нить после такого удара?


15-1176918999
Kolan
2007-04-18 21:56
2007.05.20
Поменять ли видюху 6600 на 7100?