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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2008, 23:18   #1
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию Как узнать был ли вставлен текст из ClipBoard?

Такая проблема, на форме есть Edit, необходимо определить был ли вставлен в него текст из буфера обмена. Есть идеи?
Dux вне форума Ответить с цитированием
Старый 19.10.2008, 23:47   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Сравнить содержимое буфера и эдита.
mihali4 вне форума Ответить с цитированием
Старый 19.10.2008, 23:56   #3
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Сравнить содержимое буфера и эдита.
Дайте примерчик, если не сложно
Dux вне форума Ответить с цитированием
Старый 20.10.2008, 00:44   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Пожалуйста:
Код:
uses ...., Clipbrd;
...
if ClipBoard.AsText=Edit1.Text then
Label1.Caption:='Текст из буфера вставлен' else
Label1.Caption:='Текст из буфера не вставлен';
mihali4 вне форума Ответить с цитированием
Старый 20.10.2008, 00:44   #5
Arkuz
Форумчанин
 
Аватар для Arkuz
 
Регистрация: 22.09.2007
Сообщений: 540
По умолчанию

Код:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Clipbrd; //подключите модуль работы с буфером

...............

procedure TForm1.Edit1Change(Sender: TObject);
begin
 if Edit1.Text=Clipboard.AsText
   then ShowMessage('В Edit1 содержится текст из буфера обмена');
end;
Всё...
Arkuz вне форума Ответить с цитированием
Старый 20.10.2008, 00:59   #6
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Спасибо, однако, как выяснилось, это не сильно мне помогло...
Dux вне форума Ответить с цитированием
Старый 20.10.2008, 01:03   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Dux Посмотреть сообщение
Спасибо, однако, как выяснилось, это не сильно мне помогло...
То есть? В чем проблема теперь?
mihali4 вне форума Ответить с цитированием
Старый 20.10.2008, 01:48   #8
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Да дело в том, что в обработчике OnChange компонента Edit работает сложный алгоритм с несколькими циклами и работать он должен по разному, в зависимости от того, как вводится текст (выбирается из списка, вводится вручную, либо вставляется из clipboard). Сказать честно, уже сам немного запутался...
Dux вне форума Ответить с цитированием
Старый 22.10.2008, 20:20   #9
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А вы введите некую глобальную переменную под названием "тип ввода" TYPVVOD и присваивайте ей разные значения в зависимости от того, каким способом ввода оператор (юзер) воспользуется.
Тогда "в обработчике OnChange компонента Edit" останется только поставить CASE...OF
mihali4 вне форума Ответить с цитированием
Старый 23.10.2008, 08:16   #10
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Ну да, все просто. Способ вам уже известен, осталось только правильно применить.
В OnChange вставьте этот код
Код:
if ClipBoard.AsText=Edit1.Text then 
  {был ввод из буфера, применяем соотв. алгоритм}
else
  {тут дальше проверки, применяем другие алгоритмы}
Тут правда есть один нюанс, в буфере может быть тот же текст какой пользователь набрал от руки.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 23.10.2008 в 08:19.
mutabor вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить полный путь к файлу, который был послан на принтер? Stilet Общие вопросы Delphi 7 29.02.2008 17:49
RichEdit - работа с Clipboard GAGARIN-NEW Компоненты Delphi 5 16.12.2007 20:30
Вставка данных(Excel) из clipboard в DBGrid mahsus Общие вопросы Delphi 1 07.10.2007 02:02
В Memo сделать так, чтобы текст был разного цвета, разноцветный memo Artem Компоненты Delphi 3 07.09.2007 13:40
обработка изображений, clipboard borodaj Общие вопросы Delphi 2 02.05.2007 16:10