Поиск:

Ответ в темуСоздание новой темы Создание опроса
> StringGrid, удаление строки 
:(
    Опции темы
docwar
Дата 18.10.2006, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 24.9.2006

Репутация: нет
Всего: нет



Aline, извини! Просто только сейчас вернулся к редактированию ячеек и забыл о твоем сообщении...  smile 
Не пойму... компилятор ругается, что символы sCol и sRow не определены...  smile 
PM MAIL   Вверх
Aline
Дата 19.10.2006, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 470
Регистрация: 22.7.2005
Где: Таруса

Репутация: нет
Всего: нет



docwar, 
ну так правильно, их объявить надо как int
в OnSelectCell объявлены ACol и ARow, а если тебе индексы ячеек нужны в другом месте, то другим переменным присваиваешь эти значения и потом работаешь с этой ячейкой как хочешь 
PM MAIL   Вверх
docwar
Дата 20.10.2006, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 24.9.2006

Репутация: нет
Всего: нет



Aline, ну не получается у меня... :'(
Все время ругается, что-либо неопределен элемент, либо что значение не используется...
Смысл такой, чтобы при нажатии на клавишу редактирование становилось возможным.
Пишу так: (уже кучу вариантов перебрал, определял уже и через AnsiString...)
Код
void __fastcall TForm1::StringGrid1Click(TObject *Sender)
{
int sCol, sRow;
if (sCol == 1) StringGrid1->Options = StringGrid1->Options << goEditing;  
else StringGrid1->Options = StringGrid1->Options >> goEditing; 
}
//---------------------------------------------------------------------------

void __fastcall TForm1::StringGrid1SelectCell(TObject *Sender, int ACol,
      int ARow, bool &CanSelect)
{
int sCol, sRow;
  sCol = ACol;
  sRow = ARow;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::N10Click(TObject *Sender)
{
int a=ACol;
int b=ARow;
}


Это сообщение отредактировал(а) docwar - 20.10.2006, 22:59
PM MAIL   Вверх
bsa
Дата 21.10.2006, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: нет
Всего: 196



docwar, ты, надеюсь, сам понимаешь, что чушь написал? Три метода, два из которых вообще ничего не делают, а первый делает неизвестно что (от случая к случаю).
Может сначала стоит C++ выучить?
А теперь по порядку.
В первом методе ты объявляешь sCol и sRow, но не присваиваешь им ничего. Поэтому операция if (sCol == 1) ... будет иногда срабатывать, но чаще будет работать то, что после else. Так как в sCol в идеале случайное значение.
Во втором методе ты просто выполняешь лишние операции, который будут потеряны, после выхода из данного метода.
А третий метод вообще не скомпилируется (если, конечно, в классе нет аттрибутов ACol и ARow, а их скорей всего нет), но даже если и скомпилируется, то будет тоже самое, что и во втором методе.

Тебе надо объявить int sCol, sRow; В ОПРЕДЕЛЕНИИ КЛАССА (в .h файле). А все локальные определения убрать.
PM   Вверх
docwar
Дата 21.10.2006, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 24.9.2006

Репутация: нет
Всего: нет



Цитата
надеюсь, сам понимаешь, что чушь написал?

Естественно понимаю! =) Ничего не получалось(забыл, что обьявлять надо в .h) + был после стоматолога... вот и написал такой код...
Спасибо! Ошибок нет, но действий никаких не выполняется. ?
PM MAIL   Вверх
Aline
Дата 23.10.2006, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 470
Регистрация: 22.7.2005
Где: Таруса

Репутация: нет
Всего: нет




Код


int sCol, sRow;

 void __fastcall TForm1::StringGrid1Click(TObject *Sender)
//когда ты щелкнешь на ячейку, то сразу разрешишь или запретишь редактирование этой ячейки
{
    if (sCol == 1) StringGrid1->Options = StringGrid1->Options << goEditing;  
    else StringGrid1->Options = StringGrid1->Options >> goEditing; 
}
//---------------------------------------------------------------------------

void __fastcall TForm1::StringGrid1SelectCell(TObject *Sender, int ACol,
      int ARow, bool &CanSelect)
{
  sCol = ACol;
  sRow = ARow;
}
//---------------------------------------------------------------------------

//если тебе надо обработывать это по кнопке, то перенеси текст из StringGrid1Click в обработчик клика кнопки или выбора команды 
//меню:

void __fastcall TForm1::N10Click(TObject *Sender)
{
    if (sCol == 1) StringGrid1->Options = StringGrid1->Options << goEditing;  
    else StringGrid1->Options = StringGrid1->Options >> goEditing; 
} 

docwar, 
Всё должно работать, проверь ещё раз. В крайнем случае поставь точку останова и посмотри в отладчике что происходит. А вообще, что ты хотел увидеть? По  тому условию что ты поставил, у тебя будет разрешено редактирование во второй колонке, т.е. там будет курсор появляться.
PM MAIL   Вверх
docwar
Дата 23.10.2006, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 24.9.2006

Репутация: нет
Всего: нет



Aline, спасибо! Проверю код как только получу доступ к своему компьютеру (завтра вечером примерно).
Цитата
А вообще, что ты хотел увидеть?

Хотел, чтобы прямо в таблице можно было вносить изменения или с помощью вызова доп. формы. Ввел данные в редактируемую строку - данные в ней заменились.
PM MAIL   Вверх
docwar
Дата 8.11.2006, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 24.9.2006

Репутация: нет
Всего: нет



Вопрос еще не решен! 
Прошу вашей помощи!!!
PM MAIL   Вверх
Reptile
Дата 9.11.2006, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 30.9.2006
Где: Украина, Первомай ск

Репутация: 2
Всего: 3



Цитата(docwar @  23.10.2006,  17:19 Найти цитируемый пост)
Хотел, чтобы прямо в таблице можно было вносить изменения или с помощью вызова доп. формы. Ввел данные в редактируемую строку - данные в ней заменились. 

Ну так создай еще одну форму, набросай Edit-ы и при нажатии на кнопку редактирования показываеш форму с Edit-ми, а в них заполняеш значения из StringGrid, нажимаеш ОК и все данные из Edit-ов переносиш в StringGrid и закрываеш доп. форму. И все smile 
PM MAIL   Вверх
dumb
Дата 9.11.2006, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 32
Всего: 158



docwar,
в дизайнере форм тыкни ЛКМ(левая кнопка мыши) на свой StringGrid. нажми F11. найди там Options. нажми "+". найди goEditing. поставь значение true.

user posted image
PM MAIL   Вверх
васек
Дата 9.11.2006, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 9.11.2006

Репутация: нет
Всего: нет



Люди подскажите как разработать визуальную компаненту таблицы умножения String Grid? smile 
PM MAIL   Вверх
docwar
Дата 9.11.2006, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 24.9.2006

Репутация: нет
Всего: нет



Reptile, это понятно! У меня трудности с написанием кода! Можешь помочь? =)

dumb, без комментариев...
PM MAIL   Вверх
Romikgy
Дата 9.11.2006, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 11
Всего: 146



docwar, я сколько смотрю , ты все просишь, помогите , помогите, 
только я до сих пор не понял , чем помочь то?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Reptile
  Дата 10.11.2006, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 30.9.2006
Где: Украина, Первомай ск

Репутация: 2
Всего: 3



Цитата(docwar @  9.11.2006,  21:56 Найти цитируемый пост)
Можешь помочь? =)

docwar, есть 2-а способа:
  • Простой, как еаписал dumb(он подробна объяснил), так ты сможеш изменять прямо в StringGrid
  • Сложнее через доп форму 
    вот простой проект  smile (Можно конечно покультурнее, но... smile )

ОЙ smile  smile  smile 
Сорри проект на Delphi (забыл какой раздел  smile  smile  smile ),
но думаю алгоритм под Builder переделать не сложно smile 

Это сообщение отредактировал(а) Reptile - 10.11.2006, 11:05

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  Test.rar 7,48 Kb
PM MAIL   Вверх
docwar
Дата 10.11.2006, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 24.9.2006

Репутация: нет
Всего: нет



Reptile, буду благодарен, если проект под Билдер адаптируешь, а то открыть cpp не смог...
Romikgy, надо открыть доп. форму, содержащую в Эдитах текст выделенной строки (причем каждый столбец - отдельный эдит), внести изменения, нажать на клавишу и заменить ранее выделенную строку измененной... =)
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0609 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.