![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Наверно простой вопрос, но все-таки... [D6, Win2k]
Andrey-k © (2002-05-31 21:15:00)Как в StrigGride удалить строку? Использование других разновидностей гридов не приемлемо. Заранее спасибо.
Andrey-k (2002-06-02 16:53:00) [1]ха опять вижу ранее удаленные строки :)
Во блин, как прям с TXGrid-примером
Andrey-k (2002-06-02 16:51:00) [2]через жопу он работает ....
MouseWheelUp и MouseWheelDown прикол :) колесо крутит через 5 строк минимум! Как не стараюсь следующую не дает :))))
уже нервы .
Andrey-k (2002-06-02 14:25:00) [3]Я нашел AdvStringGrid - он работает! Но вот когда деньги придется платить? :)
Приложение с этим компонентом выростает до 800к, исходников нет.
Возможно придется все переделывать... а не хотелось бы :)
мастера, еще есть идеи - как побороть удаление в TStringGrid?
Agent Smith (2002-06-02 14:06:00) [4]
> Похоже выход один - держать в гриде максимум 100 строк
Я так и сделал :)
Andrey-k (2002-06-02 13:41:00) [5]>Agent Smith
До этого уже MBo придлагал такой способ, только он копировал Assignoм Rows.
У меня 2000 строк и для удаления первой, 5 секунд ждать не приемлемо пока переприсвоится 2000-1 указателей!
Похоже выход один - держать в гриде максимум 100 строк
Anatoly Podgoretsky (2002-06-02 09:25:00) [6]Andrey-k © (02.06.02 01:33)
Как чего, раньше очистить ячейки, а потом удалять
Agent Smith (2002-06-02 07:38:00) [7]
StringGrid1.Rows[StringGrid1.Row].Clear;
for i:=StringGrid1.Row+1 to N do
StringGrid1.Rows[i-1]:=StringGrid1.Rows[i];
Удаляем стороку, которая в данный момент находится в фокусе, затем сдвигаем все остальные строки, стоящие после нее.
N-номер послдней строки, не забудь, что считаем с нуля :)
В моей программе есть таблица на 100 строк, при нажатии не кнопку выделенная строка удаляется, а все последующие сдвигаются. Все прекрасно работает.
Andrey-k (2002-06-02 01:42:00) [8]а с удалением память приложение жрет
Andrey-k (2002-06-02 01:33:00) [9]Прикол!
если я хочу после удалений выполнить заполнение грида заново, то вижу ранее удаленные строки :)
т.е. из Rows они не убились!
хм как на ето повлиять?
Перед заполнением заново ставлю RowCount:=0, может ошибаюсь?
(может надо Rows чистить по другому, но память приложение не жрет, если не было удалений - значит это присвоение чистит лист Rows)
Andrey-k (2002-05-31 23:18:00) [10]Спасибо. это похоже то, что надо
приемлемо
With Form1.StringGrid1 do
Repeat
If (Cells[x,y]<>Str) then
TXGrid(Form1.StringGrid1).DeleteRow(i)
else
inc(i);
Until RowCount=i;
COOL!
MBo (2002-05-31 22:57:00) [11]>Andrey-k
type
TXGrid=class(TCustomGrid);
....
TXGrid(StringGrid1).DeleteRow(N);
Andrey-k (2002-05-31 22:41:00) [12]идея неплохая :)
Song (2002-05-31 22:34:00) [13]Сначала всё удалите что нужно, а сдвигать будете потом.
Кстати, чай если вкусный, тоже неплохо :)
Andrey-k (2002-05-31 22:25:00) [14]если уже 1000 строк, то приехали.
можно идти пить чай
Andrey-k (2002-05-31 22:22:00) [15]слушай, но медлено!
Andrey-k (2002-05-31 22:02:00) [16]спасибо
MBo (2002-05-31 21:23:00) [17]http://delphibase.endimus.com/?action=viewfunc&topic=vclctrl&index=2