Главная страница
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.061 c
3-1171882209
vani
2007-02-19 13:50
2007.05.20
Delphi7 ADO MSSQL2k


2-1177755349
I-New
2007-04-28 14:15
2007.05.20
Что такое Build. И а зчем он нужен?


2-1178187768
Marat
2007-05-03 14:22
2007.05.20
Округлить QRExpr


15-1176673777
Andy BitOff
2007-04-16 01:49
2007.05.20
Ядерная война.


1-1174434424
Интересующийся
2007-03-21 02:47
2007.05.20
Форма в SysTrey и SetForegroundWindow