![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вставить текст в другую программу. [D7, 2000]
worldmen © (2006-09-14 13:59:00)Как вставить текст в другую форму.
Само окно я могу найти (findWindow).
Если известно что там есть компонент Edit (туда нужно вставить).
worldmen (2006-09-15 13:24:00) [1]Огромное спасибо.
default (2006-09-15 13:21:00) [2]вот так работает
procedure TForm1.Button1Click(Sender: TObject);
var
Wnd : HWND;
edt : HWND;
f : TForm1;
begin
Wnd :=FindWindow(nil,'Form1'); // находим окно
Assert(Wnd <> 0, 'Wnd');
edt:= FindWindowEx(Wnd,0,'TEdit',nil);
Assert(Wnd <> 0, 'edt');
SendMessage(edt,WM_SETTEXT,0, lparam(LPCTSTR('передать строку')))
end;
worldmen (2006-09-15 12:56:00) [3]Я не понял как искать Edit спомощью FindWindowEx.
HWND FindWindowEx(
HWND hwndParent, // дескриптор родительского окна
HWND hwndChildAfter, // дескриптор дочернего окна
LPCTSTR lpszClass, // указатель имени класса
LPCTSTR lpszWindow // указатель имени окна
);
Я сделал пример. Сделал форму и кинул на нее TEdit. Имя окна "Тест"
В другой форме ищу
procedure TMonitor.Button1Click(Sender: TObject);
var Wnd : HWND;
edt : HWND;
f : TForm1;
begin
Wnd :=FindWindow(nil,'Тест'); // находим окно
edt:= FindWindowEx(wnd,0,'TEdit',Тест); // ищем компонент - наверное неправильно
SendMessage(edt,WM_SETTEXT,0,lparam(LPCTSTR('передать строку')))
end;
default (2006-09-14 15:15:00) [4]worldmen © (14.09.06 15:04) [3]
используй лучше WM_SETTEXT
WM_PASTE это я так привёл...вчера вопрос про буфер тут был вот у меня с буфером ассоциации и возникли:)
> Как найти Edit, если из на форме два штуки?
FindWindowEx
worldmen (2006-09-14 15:04:00) [5]Как найти Edit, если из на форме два штуки?
worldmen (2006-09-14 15:03:00) [6]> послать едиту сообщение WM_PASTE
А как его (Edit) найти?
default (2006-09-14 14:06:00) [7]ординарно: WM_SETTEXT
неординарно: сохранить значение буфера обмена винды, записать туда помещаемую в един строку, послать едиту сообщение WM_PASTE, восстановить значение буфера обмена