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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.01.2011, 12:14   #1
troyan32
Пользователь
 
Регистрация: 30.01.2011
Сообщений: 31
По умолчанию Удаление буквы или пробела в мемо по нажатию на кнопку.

Как сделать имитатор нажатия на backspace?
troyan32 вне форума Ответить с цитированием
Старый 30.01.2011, 13:16   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Смотря для чего. Можно послать окну сообщение, или через keydb_event.
В зависимости от ситуации выбирается метод.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.01.2011, 13:35   #3
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

если в своём окне, и не обязательно "имитировать нажатие backspase", а нужно просто удалить, то можно както так

Код:
var
s:string;
begin
s:=Memo1.Lines.Text;
Delete(s, Memo1.SelStart, 1);
memo1.Lines.Text:=s;
end;
удаляется символ слева от курсора
vovk вне форума Ответить с цитированием
Старый 31.01.2011, 12:11   #4
troyan32
Пользователь
 
Регистрация: 30.01.2011
Сообщений: 31
По умолчанию

vovk, ты меня понял, но твой код не работает.
troyan32 вне форума Ответить с цитированием
Старый 31.01.2011, 12:33   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

delete всегда удаляет вправо от указаной позиции.
Код:
Delete(s, Memo1.SelStart, 1);// удалит один символ ЗА курсором(то бишь справа).
Код:
delete(s, Memo.selStart-1, 1); //удалить один до куросра.
можно еще предложить такой вариант.

Код:
Memo.selEnd:=Memo.Selstart-1; //выделяем один символ влево от текущей позиции
Memo.selText:='';//заменяем выделенный кусок (у нас это один символ) пустой строкой.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 31.01.2011 в 12:37.
evg_m вне форума Ответить с цитированием
Старый 31.01.2011, 13:25   #6
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Для автора: жаль что вы не поняли Stileta
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
 memo1.SetFocus;//необязательно
 memo1.Perform(WM_CHAR,VK_BACK,0)
end;
SERG1980 вне форума Ответить с цитированием
Старый 31.01.2011, 13:34   #7
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Цитата:
Read SelStart to determine the position of the first selected character, where 0 indicates the first character, the second with 1, and so on. If there is no selected text (SelLength=0), SelStart indicates the position of the cursor.
а строка начинается с 1
Цитата:
delete всегда удаляет вправо от указаной позиции.
так что у меня правильно
vovk вне форума Ответить с цитированием
Старый 07.02.2011, 20:03   #8
troyan32
Пользователь
 
Регистрация: 30.01.2011
Сообщений: 31
По умолчанию

У SERG1980 код мне больше всех подошёл. Но спасибо всем.
troyan32 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отнимать значение по нажатию на кнопку artemavd Общие вопросы Delphi 14 26.11.2010 09:27
Сдвинуть прямоугольник по нажатию на кнопку artemavd Общие вопросы Delphi 3 21.09.2010 07:27
Показать ADOConnection1.Connectionstring по нажатию на кнопку hitch1 БД в Delphi 9 07.12.2009 17:44
Как закрыть MDIChild форму по нажатию на кнопку AndreyF Общие вопросы Delphi 4 11.07.2009 16:26
Задача со стрингом на удаление пробела Impario Помощь студентам 10 04.01.2009 20:12