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

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

Вставить текст в другую программу. [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, восстановить значение буфера обмена


Наверх

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