Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как перехватить вставку из буфера в комбобокс?


cyber-pilot ©   (2010-11-01 18:09:00) 

Пробовал вот так:

type
 TForm1 = class(TForm)
   procedure FormCreate(Sender: TObject);
 private

 public

 end;

 TExtEdit = class(TEdit)
 private
   procedure WMPaste(var Message: TMessage); message WM_PASTE;
 end;

 TExtComboBox = class(TComboBox)
 private
   procedure WMPaste(var Message: TMessage); message WM_PASTE;
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
 vEdit: TExtEdit;
 vcbxReplace: TExtComboBox;
begin
 vEdit := TExtEdit.Create(Self);
 vEdit.Parent := Self;
 vEdit.Left := 10;
 vEdit.Top := 10;
 vEdit.Width := 200;
 vEdit.Height := 20;

 vcbxReplace := TExtComboBox.Create(Self);
 vcbxReplace.Parent := Self;
 vcbxReplace.Left := 10;
 vcbxReplace.Top := 50;
 vcbxReplace.Width := 200;
 vcbxReplace.Height := 20;
end;

{ TExtComboBox }

procedure TExtComboBox.WMPaste(var Message: TMessage);
begin
 ShowMessage('Вставка из буфера в комбобокс перехвачена!');
end;

{ TExtEdit }

procedure TExtEdit.WMPaste(var Message: TMessage);
begin
 ShowMessage('Вставка из буфера в едит перехвачена!');
end;

end.


Для TExtEdit - работает, для TExtComboBox - нет. Может быть есть другой способ. Был бы рад помощи.


clickmaker   (2010-11-01 18:21:00) [1]

ComboBox - он на то и комбо, что из двух контролов - Edit и ListBox
нужно получить хэндл его эдита и у него ловить (cb.Perform(CB_GETCOMBOBOXINFO))


Наверх

Титульная страница Поиск, карта сайта Написать письмо