Модераторы: Snowy, MetalFan, bems, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Редактирование ячеек StrinGrid, Подсчет кол-ва символов в ячейках 
V
    Опции темы
черная
  Дата 24.4.2009, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Подскажите пожалуйста как сделать, чтобы было так: вводишь символ в ячейку StringGrid, если он, например Т, то счетчик увеличивается на +1, если его удаляешь из ячейки, то счетчик уменьшается на -1, а результат этих манипуляций тут же отражается в какой-нибудь определенной ячейке того же StringGrid'a? Срочно надо!
PM MAIL ICQ   Вверх
Palladin
Дата 24.4.2009, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

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



в OnKeyPress смотри за вводимыми символами и инкрементируй свою переменную, с удалением повозиться надо


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Akella
Дата 24.4.2009, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



засунь в какое-нить событии стринг грида
Код

Label1.caption := IntToStr(Length(sg1.cells[номер_столбца, номер_строки]))


И вообще такие вопросы нужно задавать в разделе для новичков.

Это сообщение отредактировал(а) Akella - 24.4.2009, 16:26
PM MAIL   Вверх
Palladin
Дата 24.4.2009, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

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



Мдя чет я морознул, подумал ей именно 'Т' надо вылавливать=)


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
черная
Дата 24.4.2009, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Прошу прощение за неполную информацию....
Символ в ячейку попадает не вводом с клавиатуры, а при клике на пункте контекстного меню и имеет значение его кэпшэна.
А Вы, уважаемый Akella, меня несколько не поняли, мне нужно не количество символов в ячейке посчитать, а количество символов, например "Т", во всех ячейках грида. 
PM MAIL ICQ   Вверх
Palladin
Дата 24.4.2009, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

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



После вашего последнего поста, первй пост теряет смысл, или это я уже не смыслю smile 

Если передается caption в чем проблема тогда? и куда прибавлять и отнимать?
цикл пропусти через строку да и все smile 


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
черная
Дата 24.4.2009, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



попытаюсь объяснить пошагово:
1. кликаю правой кнопкой мыши по ячейке грида
2. в вывалившемся меню выбираю строку
3. в ячейку вставляется кэпшн выбранного пункта меню (Вы Palladin мне только что помогали 8-ки вставлять в грид)
4. таких ячеек много
5. если это 8-ка, то допустим в ячейке [1,10] появляется 1-ца
6. если восьмерок во всем гриде я натыкала 5, то в в ячейке [1,10] появляется 5
7. если я где-нибудь ее стерла, то в ячейке [1,10] появляется 4
8. если я ткнула например пункт с кэпшном "В", то допустим в ячейке [1,11] появляется 1-ца
и т.д.
Вот таким образом  smile 

PM MAIL ICQ   Вверх
Palladin
Дата 24.4.2009, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

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



понятно, прогоняешься циклом через все ячейки стринггрида и в строковую переменную все записываешь s:=s+stringgrid1.cells[i,j]; как строка сформируется, запускаешь еще один цикл по длине полученной строки и в ней считаешь сколько у тебя восьмерок, сколько 'B' и т.п.
будет как-то так, но пишу прямо тут, код может и не работать
к примеру в onkeypress stringgrid-a пишешь такой код:
Код

var
i,j:integer;
s:string;
begin
for i:=0 to stringgrid1.colcount-1 do
 for j:=0 to stringgrid1.rowcount-1 do
  if(тут условие, такое чтобы пропускались твои ячейки с ответами, типа пропускаем ячейку 1,10 и т.д.) then
  s:=s+stringgrid1.cells[i,j];

for i:=1 to length(s) do
 begin
  if(s[i]='8') then stringgrid1.cells[1,10]:=IntToStr(StrToInt(stringgrid1.cells[1,10])+1);
  if(s[i]='B') then stringgrid1.cells[1,11]:=IntToStr(StrToInt(stringgrid1.cells[1,11])+1);
  и т.д.
 end;



--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
черная
Дата 24.4.2009, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



прошу прощения за вопрос бестактный.... можт я уже тупить начинаю, но как написать что пропускаем ячейку такую-то?
PM MAIL ICQ   Вверх
черная
Дата 24.4.2009, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



можт я и придумала как пропустить ячейку, но он ругается при выполнении программы на строке
Код

if(s[i]='8') then stringgrid1.cells[1,10]:=IntToStr(StrToInt(stringgrid1.cells[1,10])+1);

говорит not a valid integer value
PM MAIL ICQ   Вверх
Akella
Дата 24.4.2009, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Цитата(черная @  24.4.2009,  16:45 Найти цитируемый пост)
А Вы, уважаемый Akella, меня несколько не поняли, мне нужно не количество символов в ячейке посчитать, а количество символов, например "Т", во всех ячейках грида.  

Так научитесь в таком случае правильно, понятно и грамотно задавать вопросы. В жизни это пригодится  smile

Добавлено через 43 секунды
Цитата(черная @  24.4.2009,  18:55 Найти цитируемый пост)
IntToStr(StrToInt

 smile а зачаем туда-сюда ковертировать?

Добавлено через 4 минуты и 18 секунд
Цитата(черная @  24.4.2009,  18:33 Найти цитируемый пост)
прошу прощения за вопрос бестактный.... можт я уже тупить начинаю, но как написать что пропускаем ячейку такую-то? 

в цикле можно использовать:
1. Continue - пропустить итерацию
2. Break - выйти из цикла

Добавлено через 6 минут и 23 секунды
Цитата(черная @ 24.4.2009,  18:55)
можт я и придумала как пропустить ячейку, но он ругается при выполнении программы на строке
Код

if(s[i]='8') then stringgrid1.cells[1,10]:=IntToStr(StrToInt(stringgrid1.cells[1,10])+1);

говорит not a valid integer value

у меня этот код компилируется без проблем

Добавлено через 9 минут и 50 секунд
черная, 
Цитата(черная @  24.4.2009,  15:54 Найти цитируемый пост)
Срочно надо! 

Поверь, как бы тебе срочно не было бы нужно. Такие реплики на форумах писать не этично. Отпадает всякое желание отвечать на вопрос. Ты думаешь, что тебе все сразу ринутся писать коды? Ошибаешься smile 
PM MAIL   Вверх
черная
Дата 24.4.2009, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Akella @ 24.4.2009,  18:59)
Так научитесь в таком случае правильно, понятно и грамотно задавать вопросы. В жизни это пригодится  smile

Спасибо за совет!.. Но вот Palladin, например, меня сразу понял....
PM MAIL ICQ   Вверх
Akella
Дата 24.4.2009, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Все люди разные. И не обязательно, что мы все сразу должны друг друга понимать smile 
PM MAIL   Вверх
черная
Дата 24.4.2009, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Akella @ 24.4.2009,  18:59)
Поверь, как бы тебе срочно не было бы нужно. Такие реплики на форумах писать не этично. Отпадает всякое желание отвечать на вопрос. Ты думаешь, что тебе все сразу ринутся писать коды? Ошибаешься smile

ой-ой, извините пожалуйста, я вобще-то по форумам не специалист.... а вот цепляться к словам, я считаю, более неэтично... если есть желание помочь, помогите, без лишних эмоций... smile

Добавлено через 3 минуты и 48 секунд
Цитата(Akella @ 24.4.2009,  18:59)
у меня этот код компилируется без проблем

компилируется он у меня тоже без проблем, а входе выполнения программы (при вводе в ячейку значения) возникает описанная мной выше проблема
PM MAIL ICQ   Вверх
Palladin
Дата 24.4.2009, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

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



Цитата(Akella @  24.4.2009,  18:59 Найти цитируемый пост)
а зачаем туда-сюда ковертировать?

ну стринггрид.селс этаж строка, мне к ней единицу прибавить надо, ну я её в целое перевожу, а потом снова же в стринггрид записать надо вот я её назад в строку=) хотя мот что и начудил, конец рабочего дня... smile 

Цитата(черная @  24.4.2009,  18:55 Найти цитируемый пост)
говорит not a valid integer value

эээ может там надо чтонить типа
Код

 IntToStr(StrToInt(stringgrid1.cells[1,10].text)+1);

или может так
Код

FloatToStr(StrToFloat(stringgrid1.cells[1,10])+1);


так же проверь как у тебя стринггрид, первая ячейка имеет индек [1,1] или [0,0] может с индексами чего начудила и у тебя пустую стркоу в число пытается перевести программа
P.S. а вообще я ж сказал пишу прямо в форум не проверял, я идею подкинул, а ты там дальше сама smile 


Это сообщение отредактировал(а) Palladin - 24.4.2009, 20:28


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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