Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.08;
Скачать: CL | DM;

Вниз

Добавляю много строк в грид.   Найти похожие ветки 

 
tria   (2004-07-28 11:16) [0]

При каждом добавлении строки происходит отрисовка грида. Как бы сделать так, чтобы отрисовка произошла только в конце данного процесса. На ум приходит только Visible:=False; ... Visible:=True; Может есть более правильное решение?


 
ssk ©   (2004-07-28 11:27) [1]

попробуй так:

StringGrid1.Rows.BeginUpdate;

// заполнение грида

StringGrid1.Rows.EndUpdate;


 
tria   (2004-07-28 11:34) [2]

У меня самописный копонент, порожденный от TCustomGrid, у него нет свойства Rows.


 
Palladin ©   (2004-07-28 11:40) [3]


> Может есть более правильное решение?

Конечно. Не отрисовывать грид при каждом добавлении строки.


 
KSergey ©   (2004-07-28 11:56) [4]

Грид какой? String или DBGrid?
Для DB - DisableControls/EnableControls у соответствующего DataSet
Для String - уже сказали...


 
@Lex ©   (2004-07-28 11:59) [5]

try
 LockWindowUpdate(Grid.Handle);
 .......
finally
 LockWindowUpdate(0);
end;


 
tria   (2004-07-28 12:09) [6]

KSergey © > у меня потомок TCustomGrid. Не Stringgrid и не DBGrid.

@Lex ©>Спасибо. По моему то, что надо.


 
KSergey ©   (2004-07-28 12:15) [7]

> [2] tria   (28.07.04 11:34)
>  [6] tria   (28.07.04 12:09)
> У меня самописный копонент, порожденный от TCustomGrid,
> у него нет свойства Rows.

Тогда можно посмотреть реализацию SetUpdateState в TStrings и использование этого виртуального метода в TStringGrid в купе с BeginUpdate/EndUpdate в нем же (где и как используется флаг изменений).


 
KSergey ©   (2004-07-28 12:18) [8]

Погоди, погоди...

Так может тогда проще добавлять не по одной строке, а? Раз уж реализация их хранения используется собственная?


 
tria   (2004-07-28 12:30) [9]

Я заранее не знаю, сколько строк будет добавлено.


 
KSergey ©   (2004-07-28 12:32) [10]

Сначала ложить их в хранилище (какое-то все равно используется?), и лишь по окончании этого процесса - установить необходимое их кол-во в гриде одним махом


 
tria   (2004-07-28 12:42) [11]

Все гораздо сложнее.
Грид - это представление строк документа.
Я заполняю строки документа значениями выборки. При этом вношу данные в реквизиты строк документов (отдельные объекты), а уже в них прописано, как себя отобразить в гриде. Добавление строк в грид тоже происходит коммандой Документ.StringCount=Х. При изменении реквизита гриду дается комманда InvalidateCell(x,y).
Поэтому вроде бы как проще сделать у грида BeginUpdate/EndUpdate перед добавлением. Тока я не знаю тольком, как это сделать.


 
KSergey ©   (2004-07-28 12:55) [12]

Тогда, по-моему, правильнее всего посмотреть как это уже сделано (ссылки см. в [7] KSergey ©) и реализовать аналог. Благо, ничего там сложного.


 
tria   (2004-07-28 13:06) [13]

>KSergey ©  (28.07.04 12:55) [12]
Так и планирую делать. Спасибо за помощь.



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

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

Наверх




Память: 0.47 MB
Время: 0.032 c
1-1090494788
~ShamaN~
2004-07-22 15:13
2004.08.08
Quick Report


14-1090400676
vouck
2004-07-21 13:04
2004.08.08
Несколько прокси


14-1090483857
Apsi
2004-07-22 12:10
2004.08.08
Помните игру весом 96 кб ?


1-1090483780
__es
2004-07-22 12:09
2004.08.08
Parsing


9-1083066512
Не просто Я
2004-04-27 15:48
2004.08.08
Кому не трудно киньте линки на всё о функциях описания шара





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский