| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Удаление выделенной строки в StringGrid |
| Автор: kox 15.6.2004, 18:45 |
| Нужно удалить выделенную строку код: StringGrid1->Rows->Delete(StringGrid1->Row); [C++ Error] Too few parameters in call to '_fastcall TStringGrid::GetRows(int)' что я делаю неправильно? |
| Автор: bel_nikita 15.6.2004, 19:18 |
| to kox Я не знаю че это, но кажется у тебя ошибка в другом месте. Как вызывается GetRows() ? |
| Автор: Дрон 15.6.2004, 19:19 | ||
| По моему, нельзя удалять строки из StringGrid. Вообще Rows это array property (не знаю как по-русски будет), т.е. там нужно в квадратных скобках указывать номер нужной строки: StringGrid1->Rows[n] Если я пробую написать:
Добавлено @ 19:21 bel_nikita GetRows(), вроде как, вызывается неявно при обращении к Rows. |
| Автор: Ignat 15.6.2004, 19:32 |
| А просто очистить не хочешь? StringGrid1->Rows[n]->Clear(); |
| Автор: kox 15.6.2004, 20:17 |
| Хорошо бы было бы конечно удалять, иначе придется потом все следующие строки сдвиать на одну вверх(( |
| Автор: Конструктор 17.6.2004, 09:21 |
| Я всегда вручную удалял. Сдвигал строчки вверх, а потом Grid->RowCount--; Вот только если есть фиксированные строки, начинаются пляски с бубнами, ибо тогда не удастся удалить последнюю строку, и она всегда будет висеть пустой. |
| Автор: kox 17.6.2004, 18:25 |
| А как мне узнать номер выделенной строки (у меня построчное выделение)????? |
| Автор: zss 17.6.2004, 20:29 | ||||||
ARow - номер выделенной строки а далее как писали выше
|
| Автор: kox 17.6.2004, 20:42 |
| Я кажется нашел болле легкий способ узнать номер выделенной строки StringGrid1->Row У меня вроде работает, может я неправ? А удаление строки уже реализовал, путем сдвига всего что ниже на одну строку вверх, а потом colcount--; |
| Автор: Vyacheslav 18.6.2004, 09:13 | ||
Эх, ну что же так неуклюже то (с)
Вот и все |
| Автор: Конструктор 18.6.2004, 09:54 |
| Vyacheslav э-э-э прошу пардона, а можно немножечко поподробнее? А то я TStringGrid::DeleteRow не видел в справке. И что вообще за такая конструкция навороченая, ибо по недостатку знаниев ведать не ведаю? |
| Автор: Vyacheslav 21.6.2004, 09:42 | ||
| DeleteRow - виртуальный protected метод, который удаляет строку с заданным индексом. Почему разработчики сделали его protected - вопрос не ко мне. Объявлен впервые можно в TCustomGrid. Выражение
- стандартный С++ способ, позволяющий добрастться до protected методов, если не хочется специально городить класc. PS Не хелпом единым жив человек |
| Автор: Конструктор 21.6.2004, 10:25 |
| It works!!! It works!!! Вот спасибо. Такого я еще не видывал. Как наберу 100 постов, +репутация PS В хелпе нашел. На кой они действительно protected сделали? |
| Автор: Vyacheslav 21.6.2004, 18:13 |
| То, что сделали protected, я большой беды не вижу. Если интересны мои соображения по этому вопросу, а так же моих оппонентов, советую ознакомится с этим http://borland.xportal.ru/forum/viewtopic.php?t=7045&highlight= |