Вниз
Скачать: 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
15-1167733191
Slider007
2007-01-02 13:19
2007.01.28
С днем рождения ! 1 января


15-1168083641
Чапаев
2007-01-06 14:40
2007.01.28
InnoSetup, файловая система


2-1168597598
newone
2007-01-12 13:26
2007.01.28
Работа с датами файлов


1-1164191499
Uran
2006-11-22 13:31
2007.01.28
Проблеммы с кирилицей.


3-1162375442
Сатир
2006-11-01 13:04
2007.01.28
Открытие курсора с переменным кол-вом параметров




   Наверх