![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Canvas.TextWidth вешает программу.
Kolan © (2007-02-05 14:58:00)Написал функцию для "подгонки" ширины столбцов StringGrid:
procedure TReportGrid.AdjustColWidth;
var
WidthArr: array of Integer;
I, J: Integer;
begin
with MainForm.ReportStringGrid do
begin
SetLength(WidthArr, ColCount);
for I := Low(WidthArr) to High(WidthArr) do
WidthArr[I] := 0;
for I := 0 to ColCount - 1 do
for J := 0 to Cols[I].Count - 1 do
if Canvas.TextWidth(Cols[I].Strings[J]) > WidthArr[I] then
WidthArr[I] := Canvas.TextWidth(Cols[I].Strings[J]);
for I := 0 to ColCount - 1 do
ColWidths[I] := WidthArr[I]+8;
end;
end;
Удивительным образом, когда идешь отладчиком, на выделеной строчке все останавливается.
Причем процессор не грузит, ничего. Как все равно что в занятую крит секцию попасть...
Почему?
ЗЫ
Есть подозрегие что глючит BDS.
ЗЗЫ
Утечек нет. ReportMemoryLeaks стоит.
Kolan (2007-02-05 16:17:00) [61]> procedure TReportGrid.AdjustColWidth;
> ...
> with MainForm.ReportStringGrid do
Понимать так:
TReportGrid - просто класс, который управляет Гридом(ReportStringGrid)лежащим на форме(MainForm).
Просто класс занчит наследаник TObject:
TReportGrid = class
private
Когда мне надо выровнять колонки я прошу экземпляр TReportGrid: "Выравняй колонки грида"(AdjustColWidth).
А он выравнивает :)
Kolan (2007-02-05 16:01:00) [62]> А если убрать
> ColWidths[I] := WidthArr[I]+8;
Ты издеваешься?
До этого места дело не доходит(проверил) :)
Loginov Dmitry (2007-02-05 15:57:00) [63]Как понимать:
procedure TReportGrid.AdjustColWidth;
...
with MainForm.ReportStringGrid do
...
???
Loginov Dmitry (2007-02-05 15:52:00) [64]А если убрать
ColWidths[I] := WidthArr[I]+8;
???
Kolan (2007-02-05 15:49:00) [65]> Бесполезный код часто вешает программу :)))
Обрати внимание на вопрос.
ЗЫ
Может я параноик.
Loginov Dmitry (2007-02-05 15:48:00) [66]> for I := Low(WidthArr) to High(WidthArr) do
> WidthArr[I] := 0;
Бесполезный код часто вешает программу :)))
Kolan (2007-02-05 15:11:00) [67]Хм, записал проблемную строчку в Watches. И Watches тоже повисло :), совсем.
Kolan (2007-02-05 15:06:00) [68]Причем у мнея есть PageControl. И вот если при вызове соотв функции открыта страница на которой лежит Grid, то все o'кей. А если другая, то зависает.. Что за нах.