Вниз
Скачать: CL | DM;

Текст в ячейках Stringrid и память   Найти похожие ветки 

← →
Medved_   (2006-12-01 13:42) [0]

Здраствуйте.
Уважаемые мастера, скажите как
съэкономить память в данном примере для Stringgrid(если
неотпускаешь кнопку вниз или PageDown) идет
колоссальная потеря памяти.

var
SizeLeftCol:integer;

procedure TForm1.sgTopLeftChanged(Sender: TObject);
var
i:integer;
begin
if sg.FixedCols >0 then
 begin
   for i:=sg.TopRow to (sg.TopRow+sg.TopRow+sg.VisibleRowCount-1) do
   sg.Cells[0,i]:=inttostr(i-1);
   SizeLeftCol:=sg.Canvas.TextWidth(inttostr(sg.TopRow+sg.VisibleRowCount-1));
   sg.ColWidths[0]:=SizeLeftCol+10;
 end;
end;

Заранее спасибо.


← →
Jeer ©   (2006-12-01 17:32) [1]


> колоссальная потеря памяти.


Чьей ?


← →
Igor_Zal   (2006-12-01 23:41) [2]

Нажмите CTR+ALT+DEl с программой, реализующий данный алгоритм и все станет ясно.


← →
Medved_   (2006-12-02 08:56) [3]

Самое главное забыл сказать:
RowCount = 65536 (как в Excel) и для того, чтобы при загрузке
программы  - она быстро открывалась я выбрал  тот вариант.
Если же при загрузке сразу писать
if sg.FixedCols >0 then
begin
  for i:=0 to sg.RowCount-1 do
  sg.Cells[0,i]:=inttostr(i+1);
  SizeLeftCol:=sg.Canvas.TextWidth(inttostr(sg.TopRow+sg.VisibleRowCount-1));
  sg.ColWidths[0]:=SizeLeftCol+10;
end;
то загрузка занимает очень много времени.
И при этом, если если
неотпускаешь кнопку вниз или PageDown) идет постоянное опускание увеличение Row и памяти расходуется по возрастающей.
В Excele такого нет, хотя я думаю подход у них такой же, только
с память они как-то организовали процесс.


← →
ЮЮ ©   (2006-12-02 09:29) [4]

Какая же это загрузка?

StringGrid1.RowCount := 65536; и отрисовывать номер в OnDrawCell, а не создавать 65536 тысяч строк, в смысле string



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.027 c
2-1168369905
vovik
2007-01-09 22:11
2007.01.28
Перенос компонентов из delphi7 в delphi10


4-1158568121
murava
2006-09-18 12:28
2007.01.28
Изображение окна


15-1167986950
Chuk & Gek
2007-01-05 11:49
2007.01.28
ГМТ,


2-1168586629
vitv
2007-01-12 10:23
2007.01.28
Выполнение 2-х запросов последовательно


15-1168465744
normandia
2007-01-11 00:49
2007.01.28
Впервые столкнулся с Win XP Home Edition. Плачевно.




   Наверх