Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.28;
Скачать: 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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.034 c
15-1167722573
legat
2007-01-02 10:22
2007.01.28
Возврат кода ошибки


2-1168461484
BullDozer
2007-01-10 23:38
2007.01.28
Работа с бд (уточнение)


11-1146570888
DVK
2006-05-02 15:54
2007.01.28
Как перетаскивать форму не за заголовок


15-1168205660
maxmaxov
2007-01-08 00:34
2007.01.28
где в Питере можно купить редкие фильмы, кроме как на Юноне?


15-1168255147
i-am-vladko
2007-01-08 14:19
2007.01.28
Статья "Написание оптимального кода под Delphi"