| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Удаление строк в TStringGrid |
| Автор: programast 26.6.2006, 18:07 |
| Здрасти. в drkb нашел удаление строки в гриде от Vit: Type TFakeGrid=class(TCustomGrid); procedure TForm1.MyDelete(Sender: TObject); begin TFakeGrid(Grid).DeleteRow(Grid.row); end; но очень хочется знать... почему у TStringGrid нет собственного метода Delete как у TCustomGrid для удаления строки? з.ы. просто интерес разрывает в хлам... |
| Автор: _hunter 26.6.2006, 18:20 |
| потому как он там абсолютно не нужен |
| Автор: programast 26.6.2006, 18:49 | ||
почему не нужен этот метод? я думаю, было бы логично если бы класс был самодостаточным: имел свои методы работы со своими данными... а так... не понимаю... |
| Автор: Palladin 26.6.2006, 18:58 |
| Потомучто это почти никому ненужно, если сильно нада то организуй работу так: удаляеш все элементы из ненужной строки, а потом смещаеш элементы , в конце измениш размерность, уменьших строки или столбцы, в зависимости от того что тебе нужно! |
| Автор: Yanis 26.6.2006, 19:09 |
то делай так как предложили Vit. |
| Автор: skyboy 26.6.2006, 19:34 |
| RooR, переброска элементов не самое лучшее решение. Тогда уж лучше использовать DrawGrid, а источником использовать массив указателей на строки. Не нужна строка - и без перебрасывания данных ра-а-а-аз! И вместо 2 строки - треьтья |
| Автор: programast 27.6.2006, 12:33 |
| ясно... спасибо =) |
| Автор: programast 28.6.2006, 12:19 | ||
| кстати, вот такой вопрос: если в гриде было допустим 10 строк, потом в рантайме количество строк уменьшить на сколько-нибудь... что станет с последними строчками, которые теперь не нужны? они просто станут невидимыми или они уничтожатся? (с колонками по идее тоже самое должно быть)
|
| Автор: Palladin 28.6.2006, 12:33 | ||
ТОлько что проверил, они просто невидны, и если их не очищать то они будут храниться в стринггриде, проверено такой вот прогой, на форме два стринггрида и кнопка, плюс ещё два едита для размерности(не обязательны):
Добавлено @ 12:35 Гриды по дефолту размерностью 3х3 |
| Автор: programast 28.6.2006, 13:17 |
| да, я тоже проверил... заполнил грид, потом уменьшил количество строк и прочитал значения невидимой строки... прочиталось значит они просто становяятся невидимыми =( |
| Автор: Yanis 28.6.2006, 13:33 | ||
Они остануться "где то там"
|
| Автор: programast 28.6.2006, 13:50 | ||||
так StringGrid1.Rows[StringGrid1.RowCount-1].Clear; он же вроде только "обнулит" значение, но не уничтожит саму строку =\ вобщем, буду удалять как предложил Vit... но не нравится мне что грид какой-то не доделаный в плане работы со строками и столбцами =) |
| Автор: Palladin 28.6.2006, 14:32 |
| Вот ты и займись доработкой грида А с другой стороны этот минус грида можно использовать для своих целей, может еомунить ненадо будет чтоб юзер видел что там за горизонтом... |
| Автор: programast 28.6.2006, 15:52 |
| да, наверное так и сделаю, что бы успокоиться =)) |
| Автор: Palladin 28.6.2006, 19:26 |
| Сорри за флуд, но кто такой Vit, многие постоянно говорят что мол буду делать как сказал Vit а зачастую в данном топике даже нет ниодного поста от Vit, ответье кто это, чтоб здесь ещё больше не распростронять флуд, скиньте ктонить в личку |
| Автор: Демо 28.6.2006, 20:01 |
| RooR, http://forum.vingrad.ru/index.php?showuser=777&nickname=Vit |