![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| Beren |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 28.3.2011 Репутация: нет Всего: нет |
Вот в чём суть. На форме 2 кнопки и таблица строк. Одна кнопка загружает файл и выводит в StringGrid имена и оценки в двух колонках. Это у меня получилось. Теперь надо, чтобы пользователь изменил значение оценки и сохранил в файл. goEditing =true поставил. Вот код. Спасибо.
|
|||
|
||||
| amsoft |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 201 Регистрация: 17.10.2009 Где: KZ, Astana Репутация: 1 Всего: 4 |
если вся загвоздка в определении позиции текущей ячейки, то вот эти свойства тебе в помощь:
TCustomGrid.Row - индекс строки текущей ячейки TCustomGrid.Col - индекс столбца текущей ячейки Тогда и циклы тебе не нужны будут --------------------
"Кто бы ты ни был - не думай о себе слишком"Дельфин |
|||
|
||||
| Beren |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 28.3.2011 Репутация: нет Всего: нет |
Поконкретней можно ?
|
|||
|
||||
| amsoft |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 201 Регистрация: 17.10.2009 Где: KZ, Astana Репутация: 1 Всего: 4 |
Как я понял в этих циклах ты пробегаешь по всем строкам и столбцам в поисках активной ячейки. Вместо этого можно воспользоваться вышеуказанными свойствами компонента StringGrid. Тогда данный кусок кода примет следующий вид:
--------------------
"Кто бы ты ни был - не думай о себе слишком"Дельфин |
|||
|
||||
| Beren |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 28.3.2011 Репутация: нет Всего: нет |
Не получается (. При нажатии на Button2 появляется ошибка "is not a valid integer value".
|
|||
|
||||
| amsoft |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 201 Регистрация: 17.10.2009 Где: KZ, Astana Репутация: 1 Всего: 4 |
Это означает, что в данной ячейке нет данных или текст не может быть распознан как число вместо StrToInt попробуй использовать TryStrToInt Добавлено через 2 минуты и 35 секунд TryStrToInt(StringGrid1.Cells[sel1,sel2],Xgroup[i].mark) --------------------
"Кто бы ты ни был - не думай о себе слишком"Дельфин |
|||
|
||||
| Beren |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 28.3.2011 Репутация: нет Всего: нет |
А теперь при нажатии на button2 оценки обнуляютя
|
|||
|
||||
| amsoft |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 201 Регистрация: 17.10.2009 Где: KZ, Astana Репутация: 1 Всего: 4 |
--------------------
"Кто бы ты ни был - не думай о себе слишком"Дельфин |
|||
|
||||
| Beren |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 28.3.2011 Репутация: нет Всего: нет |
Теперь не обнуляется ). Но и не сохраняет изменённую оценку (
|
|||
|
||||
| amsoft |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 201 Регистрация: 17.10.2009 Где: KZ, Astana Репутация: 1 Всего: 4 |
Сразу не узрел ошибку - единицу прибавлять не надо --------------------
"Кто бы ты ни был - не думай о себе слишком"Дельфин |
|||
|
||||
| Beren |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 28.3.2011 Репутация: нет Всего: нет |
Тогда и условие (sel1>0) and (sel2>0) получается не нужно.... Но всё равно не сохраняет
|
|||
|
||||
| amsoft |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 201 Регистрация: 17.10.2009 Где: KZ, Astana Репутация: 1 Всего: 4 |
Вообще не сохраняет или неверно сохраняет?
У тебя неверно организован этот цикл. Здесь ты пробегаешь по списку всех учеников и для каждого ученика ставишь одну и ту же оценку (которая стоит в активной ячейке), тогда как оценку надо менять только для отдельного ученика (с индексом равным номеру строки текущей ячейки). ИМХО неудобный вариант. Если у тебя сохранение списка идет по нажатию кнопки, то гораздо лучше обновить сразу весь массив и сохранить его в файл. В этом случае вообще отпадает необходимость поиска активной ячейки, да и без массива Xgroup вполне можно обойтись. Загружаем список в таблицу:
Сохраняем список:
Текстовый файл должен иметь следующий формат: ученик1 оценка1 ученик2 оценка2 ... --------------------
"Кто бы ты ни был - не думай о себе слишком"Дельфин |
||||
|
|||||
| Beren |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 28.3.2011 Репутация: нет Всего: нет |
Вообще не сохраняет. Хотелось бы , чтобы вы исправили мой вариант с циклом, а то получится, что вы просто всё за меня сделали. Да, файл такой
Иванов 5 Петров 4 Сидоров 3 |
|||
|
||||
| amsoft |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 201 Регистрация: 17.10.2009 Где: KZ, Astana Репутация: 1 Всего: 4 |
У меня сохраняет, проверено.
Добавлено через 3 минуты и 52 секунды PS Это оптимальный вариант для решения твоей задачи --------------------
"Кто бы ты ни был - не думай о себе слишком"Дельфин |
|||
|
||||
| Beren |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 28.3.2011 Репутация: нет Всего: нет |
Ну всё равно спасибо
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |