Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Vadim14
1 / 2 / 1
Регистрация: 27.02.2016
Сообщений: 304
1

Вставка текста перед написанным текстом

28.09.2016, 19:36. Просмотров 260. Ответов 8
Метки нет (Все метки)

Если честно, вообще не понимаю как это реализовать. Например написал я слово "хороший" нажал Enter И перед этим текстом в том же БЛОКНОТЕ вставилось слово "я" и конечный результат "я хороший". То есть, написали слово хороший, нажали энтер и перед ним должно появиться слово Я. Важно, что хочу это сделать в сторонней программе, типа блокнота
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2016, 19:36
Ответы с готовыми решениями:

Вставка Enter перед строкой
Добрый день! Проблема вот в чем: Имеется многострочный txt. Нужно: чтобы перед каждой строкой, в...

Дописать в каждую строку перед уже имеющимся текстом новый текст в memo
В поле memo имеется много строк. Каждая строка представляет собой имя файла, например:...

Вставка перед текстом знака абзаца
В документе есть жирный текст двух видов: Без отступа слева. И с отступом слева. Нужно...

Значки перед текстом
Подскажите пожалуйста, у меня есть 3 надписи, и перед каждой из них должна быть одна и та же...

Поставить многоточие перед текстом
text-overflow: ellipsis обрезает предложение и добавляет многоточие в конце, а как сделать так...

8
droider
Universal
Эксперт Pascal/Delphi
4443 / 2476 / 780
Регистрация: 04.10.2012
Сообщений: 9,014
29.09.2016, 10:49 2
Цитата Сообщение от Vadim14 Посмотреть сообщение
написали слово хороший, нажали энтер и перед ним должно появиться слово Я. Важно, что хочу это сделать в сторонней программе, типа блокнота
Цитата Сообщение от Vadim14 Посмотреть сообщение
вообще не понимаю как это реализовать
Можно так. В OnKeyPress TEdit-а

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
uses ComObj;
//...
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
s:string;
WsShell: OleVariant;
begin
WsShell :=CreateOleObject('WScript.Shell');
s :=AnsiLowerCase(Edit1.Text); //считываем строку
   // AnsiLowerCase() переводит символы строки в нижний регистр
  // Для юникодных версий Delphi WideLowerCase()
if Key=#13 then begin //при нажатии Enter
if s='хороший' then
  begin
  Insert('я ', s, 1); //вставка текста в существующий
  Edit1.Text :=s; //выводим полученную строку (если необходимо)
  end;
  WsShell.Run('notepad', 1, False); //открываем Блокнот или другую указанную программу
  Sleep(200); //задержка
  WsShell.SendKeys(s, True); //посылаем ему сообщение, введенное пользователем
  WsShell.SendKeys('{ENTER}', True); //переходим на новую строку
 //можно отправить следующую строку (или команду) и т.д.
 end;
 
end;
 
end.
0
D1973
Модератор
4012 / 2885 / 1393
Регистрация: 21.01.2014
Сообщений: 12,247
Записей в блоге: 3
Завершенные тесты: 1
29.09.2016, 11:14 3
droider, я почему-то так понял, что ТС хочет именно в блокноте, а не в своей программе, написать слово "хороший", там же нажать ENTER и чтобы после этого у него в блокноте же подставилась буква Я в начале строки.
0
droider
Universal
Эксперт Pascal/Delphi
4443 / 2476 / 780
Регистрация: 04.10.2012
Сообщений: 9,014
29.09.2016, 11:18 4
D1973, тогда эта задача точно не для него "Забьет" себе мозг.
0
D1973
29.09.2016, 11:21
  #5

Не по теме:

droider, что-то сердце мне вещует, что мозг он "забьет" всем нам :D И вообще на заготовку для зловреда похоже...

0
MyEternity
96 / 96 / 25
Регистрация: 25.04.2016
Сообщений: 525
29.09.2016, 11:22 6
1 Вариант
Попробуйте поискать в интернете метод SendKeys. Это как раз то, что вам нужно.
Но предупреждаю - все не просто.

2 Вариант
Использвать WinAPI.
Ищем нужное окно, и периодически получаем с него содержимое (наш текст), проверяем.
Если совпало с каким-то условием, то делаем обработку текста и шлем новый текст в окно SendMessage.

Добавлено через 1 минуту
В любом случае, такой код тут за вас писать никто не будет, а помочь с тем, что что-то не работает - думаю, помогут.
0
droider
Universal
Эксперт Pascal/Delphi
4443 / 2476 / 780
Регистрация: 04.10.2012
Сообщений: 9,014
29.09.2016, 11:29 7
Цитата Сообщение от MyEternity Посмотреть сообщение
Попробуйте поискать в интернете метод SendKeys
а я о том писал выше)). Почти...
0
D1973
Модератор
4012 / 2885 / 1393
Регистрация: 21.01.2014
Сообщений: 12,247
Записей в блоге: 3
Завершенные тесты: 1
29.09.2016, 11:31 8
Цитата Сообщение от MyEternity Посмотреть сообщение
Если совпало с каким-то условием
Условие-то - нажатие ENTER в окне стороннего приложения...
0
MyEternity
96 / 96 / 25
Регистрация: 25.04.2016
Сообщений: 525
29.09.2016, 12:03 9
Цитата Сообщение от D1973 Посмотреть сообщение
Условие-то - нажатие ENTER в окне стороннего приложения...
Что мешает искать chr(10) или chr(13) в буфере чужого приложения?
0
29.09.2016, 12:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2016, 12:03

Добавить символ перед текстом в RichEdit
Здравствуйте! Помогите с одной задачей связанной с поиском слова, а именно предлога во всем...

Нули перед текстом в общем формате
Добрый день. На листе 1 лежит таблица. На лист 2 сканером в столбец А бьются данные со сканера....

Подстановка символа перед найденным текстом
Помогите вери плз чайнику! Нужен 'обработчик строки' или функция, которая будет искать текст и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru