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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2015, 16:44   #1
Маховик
Новичок
Джуниор
 
Аватар для Маховик
 
Регистрация: 10.07.2013
Сообщений: 7
Вопрос Поиск целого слова в строке Memo без вхождений

Здарова Мужики!
Помогите разобраться, я запутался. Необходимо произвести поиск слова "Form1." в текущей строке Memo, но слово должно быть целиком, без вхождений и без применения компонента FindDialog. Поиск должен происходить при каждом изменении в редакторе, то есть событие OnChange. Проблема заключается в следующем: В строке, до позиции каретки может быть написан текст - Form1.Name и функция POS его находит. То есть после выражения я должен написать Form1. и только после этого строка должна быть найдена. Только целое слово, независимо от количества повторов в самой строке. Вот мой код :

Код:
procedure TForm1.Memo1Change(Sender: TObject);
var
X, Y, N: integer;
S, A, B, Full: string;
begin
 S:= 'Form1.'; // Искомая строка
 X:= Memo1.CaretPos.X; // Позиция курсора в строке
 Y:= Memo1.CaretPos.Y; // Номер строки
 Full:= Memo1.Lines[Y]; // Текст всей строки
 A:= Copy(Full, 1, X); // Копируем текст от начала строки до каретки
 B:= Copy(Full, X, Length(Full)); //  Текст от каретки до конца строки
 
 For N:= 1 to X do // Сканируем текст от начала строки до каретки
 begin
 if POS(S, Full) <> 0 then // Если текст найден, тогда
 begin
 ... выполняем действие 1
 end
 else // Иначе
 begin
 ... выполняем действие 2
 end;
 end;

end;
Мне нужно целое слово!, Обратите внимание, в конце слова Form1. стоит точка! То есть, как только я ввожу Form1 и Точку, тогда выполняем действие 1

Последний раз редактировалось Stilet; 28.12.2015 в 15:53.
Маховик вне форума Ответить с цитированием
Старый 16.11.2015, 16:59   #2
Filka
Форумчанин
 
Регистрация: 29.10.2015
Сообщений: 273
По умолчанию

Для чего это?
Filka на форуме Ответить с цитированием
Старый 16.11.2015, 17:13   #3
Маховик
Новичок
Джуниор
 
Аватар для Маховик
 
Регистрация: 10.07.2013
Сообщений: 7
По умолчанию

В редакторе после ввода слова Form1. появляется подсказка (список со свойствами формы) и после выбора свойства и нажатия на Энтер свойство вставляется в текущую позицию. Это я сделал, но слово Form1. может встречаться в строке более 1 раза. Функция POS находит всё подряд с вхождениями, а мне нужно только слово целиком. Например
Есть строка 12345 Form1.Name 67890 Form1.
Найти мне нужно только Form1.
Маховик вне форума Ответить с цитированием
Старый 16.11.2015, 17:23   #4
Filka
Форумчанин
 
Регистрация: 29.10.2015
Сообщений: 273
По умолчанию

http://archive.dialektika.com/archiv...plesChap04.zip
Filka на форуме Ответить с цитированием
Старый 16.11.2015, 17:30   #5
Маховик
Новичок
Джуниор
 
Аватар для Маховик
 
Регистрация: 10.07.2013
Сообщений: 7
По умолчанию

Это то, что нужно. Спасибо!!!
Маховик вне форума Ответить с цитированием
Старый 16.11.2015, 17:31   #6
Filka
Форумчанин
 
Регистрация: 29.10.2015
Сообщений: 273
По умолчанию

Пожалуйста.
Filka на форуме Ответить с цитированием
Старый 28.12.2015, 14:57   #7
Маховик
Новичок
Джуниор
 
Аватар для Маховик
 
Регистрация: 10.07.2013
Сообщений: 7
По умолчанию Подсветка синтаксиса в простом Memo

Привет. Выкладываю полный исходник подсветки синтаксиса в компоненте Memo. Все и везде советуют применять RichEdit либо компонент SyntEdit. Но, мне всё же удалось добиться подсветки ключевых слов, чисел, и символов в компоненте Memo. Однако, не удалось добиться подсветки однострочных и многострочных комментариев. Правой кнопкой мыши вызывается меню. Всё работает, но как быть с комментариями?

Вложение 78940

Вложение 78941

Последний раз редактировалось Маховик; 28.12.2015 в 16:01.
Маховик вне форума Ответить с цитированием
Старый 29.12.2015, 02:54   #8
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Ради чего ты тратил время, если про synedit знал? Жизнь коротка и потерянное время обмену и возврату не подлежит.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск слова в Memo Rebel123 Общие вопросы Delphi 21 05.05.2012 20:30
поиск слова в memo Bionic Общие вопросы Delphi 2 15.01.2012 19:10
Поиск слова в строке и редактирование этого слова Wasili4 Microsoft Office Excel 3 22.06.2011 21:06
Организовать поиск всех вхождений заданного слова в загруженном тексте s2dentishe Помощь студентам 0 21.11.2009 18:53
Поиск целого числа в строке sven117 Общие вопросы C/C++ 9 01.07.2009 14:01