Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: StringGrid  (Прочитано 16564 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Le
Интересующийся

ru
Offline Offline

« : 30-05-2009 18:10 » 

Добро времени суток!
Наверное мой вопрос покажется глупым, но так как я толька изучаю азы Краснею, то хотела бы поинтересоваться

в общем мне надо получить значение, содержащееся в выделенной мною ячейке  StringGrid
делаю так:
Form1->StringGrid1->Cells[ACol][ARow];

Си ругается на то что неизвестны ACol и ARow

где где где их надо объявить и как? Здесь была моя ладья...
Записан
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 30-05-2009 18:49 » 

Объявлять переменные надо перед использованием. То есть, общий ответ "заранее". В данном случае, возможно, ничего дополнительно объявлять и не потребуется.
Очевидно, что в качестве ACol и ARow нужно задать номера столбца и строки, к которым принадлежит выделенная ячейка.
Диапазон выделенных ячеек хранится, насколько мне подсказывает google, в StringGrid.Selection. Надо полагать, оттуда и нужно брать, так или иначе убедившись, что выделена только одна ячейка. Скажем, грубо и на коленке:
Код:
Form1->StringGrid1->Cells[StringGrid1->Selection.Left][StringGrid1->Selection.Top];
Записан
zubr
Гость
« Ответ #2 : 30-05-2009 19:19 » 

В событии OnSelectCell подставлять значения параметров события ACol и ARow
Записан
Le
Интересующийся

ru
Offline Offline

« Ответ #3 : 30-05-2009 19:31 » 

дадада , увидела вскоре вот это:
void __fastcall TForm1::StringGrid1SelectCell(TObject *Sender, int ACol, int ARow, bool &CanSelect)

спасиб =)
Записан
Le
Интересующийся

ru
Offline Offline

« Ответ #4 : 31-05-2009 08:01 » 

А какой тип данных получаем, когда так делаем?

StringGrid1->Cells[ACol][ARow]
Записан
Le
Интересующийся

ru
Offline Offline

« Ответ #5 : 31-05-2009 08:09 » 

вроде бы char...
Записан
zubr
Гость
« Ответ #6 : 31-05-2009 09:25 » 

AnsiString
Записан
Le
Интересующийся

ru
Offline Offline

« Ответ #7 : 01-06-2009 14:57 » 

пасип =)
« Последнее редактирование: 01-06-2009 15:03 от Le » Записан
Le
Интересующийся

ru
Offline Offline

« Ответ #8 : 01-06-2009 15:34 » 

ааа вот еще: почему strcpy добавляет в конце какие то символы
Код:
strcpy (fam[s-1], Form1->StringGrid1->Cells[1][s].c_str());
Например было Таня, заменяю на Татьяну, становится Татьяна

может это из-за того, что потом делаю  fputs (fam[i], f)
оО
« Последнее редактирование: 01-06-2009 16:41 от Вад » Записан
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #9 : 01-06-2009 16:48 » 

По этому куску сказать сложно, но не должен быть fputs Улыбаюсь Скорее уж, что-то с типами. Какой тип у fam[i] и у Cells[1][s].c_str()? И где сама замена?
Записан
Le
Интересующийся

ru
Offline Offline

« Ответ #10 : 01-06-2009 16:54 » 

Код:
FILE* f;
char fam[100][15];
f=fopen ("fam.txt","r");
fgets(fam[i], 15, f);
 int s = StrToInt(Form1->Edit1->Text);
     strcpy (fam[s-1], Form1->StringGrid1->Cells[1][s].c_str());
fclose (f);
fputs (fam[i], f);
fclose (f);
« Последнее редактирование: 01-06-2009 16:54 от Вад » Записан
Le
Интересующийся

ru
Offline Offline

« Ответ #11 : 01-06-2009 16:57 » 

в общем я редактирую ячейку в стринггрид, и перезаписываю в файл...
Записан
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #12 : 01-06-2009 17:00 » new

Оборачивай код тегами [code][/code] (кнопка # в редакторе).
Так, ну а где, всё-таки, замена?
Записан
Le
Интересующийся

ru
Offline Offline

« Ответ #13 : 01-06-2009 17:13 » 

Код:
strcpy (fam[s-1], Form1->StringGrid1->Cells[1][s].c_str());
это и есть замена
Записан
Le
Интересующийся

ru
Offline Offline

« Ответ #14 : 01-06-2009 17:15 » 

считываю fam Из файла, потом заменяю его на значение необходимой мне ячейки, потом закрываю файл.
снова открываю файл и переписываю туда все значения, включая изменившееся.
Записан
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #15 : 01-06-2009 18:02 » 

Тогда не очень понимаю, откуда берутся символы в конце строки. Попробуй сделать точку останова на вызове strcpy и посмотреть, что до копирования находится в нужной ячейке (Form1->StringGrid1->Cells[1][s]), что - в соответствующем элементе fam, и что происходит при копировании строки.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines