Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.07.2011, 20:07   #1
Dima DDM
Форумчанин
 
Аватар для Dima DDM
 
Регистрация: 09.11.2010
Сообщений: 134
Вопрос Подсчет кол-ва символов в Memo,RichEdit

Как подсчитать кол-во символов в этих компонентах ???Кажется все предельно просто
Код:
Simbols:=Length(TRichEdit(Form1.Memo1.Text);
но при нажатии Enter к этому числу прибавляются 2 символа!( Как от этого избавится или переделать функцию?
http://ddmsite.ucoz.ru Мой сайт.
Бесплатный Блокировщик рекламы
http://download.adguard.ru/d/1656/adguardInstaller.exe
Dima DDM вне форума Ответить с цитированием
Старый 26.07.2011, 20:22   #2
roperd
Пользователь
 
Регистрация: 14.07.2011
Сообщений: 44
По умолчанию Ответ

Попробуйте так:
Код:
Simbols:=inttostr(RichEdit1.GetTextLen+Memo1.GetTextLen);
Далее пропишите в процедурах:
Код:
procedure TForm1.RichEdit1Change(Sender: TObject);
begin
If RichEdit1.Text<>'' then
RichEdit1.Refresh;
end;
procedure TForm1.Memo1Change(Sender: TObject);
begin
If Memo1.Text<>'' then
Memo1.Refresh;
end;

Последний раз редактировалось roperd; 26.07.2011 в 20:27.
roperd вне форума Ответить с цитированием
Старый 26.07.2011, 20:24   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
но при нажатии Enter к этому числу прибавляются 2 символа!
ну и правильно. добавляются два символа #10#13 (они же ВК, ПС)

Цитата:
Как от этого избавится или переделать функцию?
если у Вас ЧЕТЫРЕ строки в Мемо,
такие, например:
Цитата:
Код:
1

22
333
сколько должна вернуть функция?
если 6 - то можете попробовать так:
Код:
Simbols:=Length(Form1.Memo1.Text)-(Form1.Memo1.Count-1)*2;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.07.2011, 20:29   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

а вы вообще знаете что ваш код не работает?
Я вижу минимум 2 ошибки, из-за которых компилятор пошлёт вас далеко.
1. Length принимает только строки
2. Синтаксис неверен. Забыл ещё одну скобку вконце. Компилятор не простит.
Человек_Борща вне форума Ответить с цитированием
Старый 26.07.2011, 20:29   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

а вы вообще знаете что ваш код не работает?
Я вижу минимум 2 ошибки, из-за которых компилятор пошлёт вас далеко.
1. Length принимает только строки
2. Синтаксис неверен. Забыл ещё одну скобку вконце. Компилятор не простит.
Человек_Борща вне форума Ответить с цитированием
Старый 26.07.2011, 21:13   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Человек_Борща, если вы про код Сергея, то он полностью компилируемый и рабочий.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 26.07.2011, 22:12   #7
Dima DDM
Форумчанин
 
Аватар для Dima DDM
 
Регистрация: 09.11.2010
Сообщений: 134
По умолчанию

Мой код тоже верен тк он ведь как-то работает)))
http://ddmsite.ucoz.ru Мой сайт.
Бесплатный Блокировщик рекламы
http://download.adguard.ru/d/1656/adguardInstaller.exe
Dima DDM вне форума Ответить с цитированием
Старый 26.07.2011, 22:18   #8
Dima DDM
Форумчанин
 
Аватар для Dima DDM
 
Регистрация: 09.11.2010
Сообщений: 134
По умолчанию

Вот получилось))
Simbols:=Length(RichEdit1.Lines.Tex t)-(RichEdit1.Lines.Count-1)-1;
При чем самое удивительное что я случайно вместо умножить оставил - =) и все начал считать норм )))) тогда я поставил -1 чтобы вначале при запуске проги не показывал -1 .Вообщем я переписывая код накасячил и все стало работать еще лучше))

P.S. Кстати при открытии файла тогда показывается неверное кол-во символов =( Что с этим делать?
http://ddmsite.ucoz.ru Мой сайт.
Бесплатный Блокировщик рекламы
http://download.adguard.ru/d/1656/adguardInstaller.exe

Последний раз редактировалось Dima DDM; 26.07.2011 в 22:26.
Dima DDM вне форума Ответить с цитированием
Старый 26.07.2011, 23:07   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

не мог достучаться до сервера..

минус 1 в моей формуле вроде как и не нужно..
я бы рекомендовал попробовать такую формулу:
Код:
  Simbols := Length(Form1.Memo1.Text) - Form1.Memo1.Lines.Count*2;
p.s. сорри, если уже запоздал с ответом и проблема уже решена..
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Edit и кол-во символов в richedit Molodoy hacker Общие вопросы Delphi 2 28.03.2011 09:15
Подсчет кол-ва строк в excel Доктор Microsoft Office Excel 6 11.12.2010 13:46
Посчитать кол-во символов Memo EleGant Общие вопросы Delphi 15 20.10.2009 10:34
Подсчет кол-ва значений в строке new_user БД в Delphi 1 03.06.2009 09:18
Работа с базой Акцесс, подсчет кол-ва 4321 БД в Delphi 6 12.11.2007 15:19