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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.10.2022, 16:22   #21
hexor_boo
Разъяснятор
Форумчанин
 
Аватар для hexor_boo
 
Регистрация: 21.04.2022
Сообщений: 106
По умолчанию

При каждом Ctrl+V там происходят-отлавливаются сообщения 273, 307, 273 (точно именно эта последовательность и это количество сообщений).

Winapi.Messages:
Код:
WM_COMMAND      = $0111; //273
WM_CTLCOLOREDIT = $0133; //307

Последний раз редактировалось hexor_boo; 06.10.2022 в 17:14.
hexor_boo вне форума Ответить с цитированием
Старый 06.10.2022, 16:42   #22
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Для WM_COMMAND надо дополнительно смотреть на wPar, там уточняющее значение.

WM_CTLCOLOREDIT - это не нужно трогать. Оно ни чего не изменит. Это управляющее сообщение для выбора параметров текста/цвета в EDIT.
macomics вне форума Ответить с цитированием
Старый 06.10.2022, 17:29   #23
hexor_boo
Разъяснятор
Форумчанин
 
Аватар для hexor_boo
 
Регистрация: 21.04.2022
Сообщений: 106
По умолчанию

Цитата:
Сообщение от macomics Посмотреть сообщение
Для WM_COMMAND надо дополнительно смотреть на wPar, там уточняющее значение.

WM_CTLCOLOREDIT - это не нужно трогать. Оно ни чего не изменит. Это управляющее сообщение для выбора параметров текста/цвета в EDIT.
WM_CTLCOLOREDIT - я так и понял.
WM_COMMAND - уточняющее только в wParam? а lParam? И где можно поглядеть значения/имена констант для уточняющих элементов?
hexor_boo вне форума Ответить с цитированием
Старый 06.10.2022, 19:13   #24
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

в lParam обычно уже находится параметр зависящий от значения в wParam

https://learn.microsoft.com/en-Us/wi...urc/wm-command

Далее находите тип окна, которое у вас присутствует. Я так понял у вас EDIT

https://learn.microsoft.com/en-us/wi.../edit-controls

Последний раз редактировалось macomics; 06.10.2022 в 19:15.
macomics вне форума Ответить с цитированием
Старый 07.10.2022, 18:53   #25
hexor_boo
Разъяснятор
Форумчанин
 
Аватар для hexor_boo
 
Регистрация: 21.04.2022
Сообщений: 106
По умолчанию

Рабочее решение:
Код:
procedure TForm_Debug.edTextKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
Var
 strBuffer    : String;
 strCRLF      : String;
 strSeparator : String;
 strResult    : String;
begin
 //V=86
 If (ssCtrl In Shift) And (Key=86) Then
  Begin
   Key:=0;
   strBuffer:=Clipboard.AsText;
   strCRLF:=#13#10;
   strSeparator:=', ';
   strBuffer:=Trim(strBuffer);
   strResult:=ReplaceStr(strBuffer, strCRLF, strSeparator);
   edText.Text:=strResult;
  End;
end;

procedure TForm_Debug.edTextKeyPress(Sender: TObject; var Key: Char);
begin
 If (Ord(Key)=22) Then
  Key:=Chr(0);
end;

procedure TForm_Debug.edTextKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 If (ssCtrl In Shift) And (Key=86) Then
  Key:=0;
end;
Здесь строка в буфере обмена остается неизменной - просто перед вставкой в TcxTextEdit она проходит обработку.

Последний раз редактировалось hexor_boo; 07.10.2022 в 18:55. Причина: Дополнил ответ
hexor_boo вне форума Ответить с цитированием
Старый 07.10.2022, 21:50   #26
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Еще добавьте проверку того, что вы вставляете в TcxTextEdit
Код:
if Clipboard.HasFormat(CF_TEXT) then
macomics вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Гиперссылка в буфере обмена Maksim_V Microsoft Office Excel 3 07.07.2017 15:54
Автозамена в буфере обмена Егор Александрович Microsoft Office Word 1 27.02.2016 03:36
Кодировка в буфере обмена dacorp Общие вопросы Delphi 3 14.05.2011 16:46
Выловить в буфере обмена даные с значением http -=Virus=- Помощь студентам 13 20.02.2010 23:14
Что у тебя в буфере обмена? Hollander Свободное общение 26 18.02.2010 16:55