как изменить текст в Edit в чужом окне?

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

BopoH
Сообщения: 11
Зарегистрирован: 08 окт 2006, 17:47

как изменить текст в Edit в чужом окне?
Аватара пользователя
Сейчас_не_спящий
Сообщения: 46
Зарегистрирован: 26 янв 2007, 17:06
Откуда: Беларусь, Гомель
Контактная информация:

??? что значит в чужом окне? Если ты имеешь в виду в другой форме, тогда так:
имя_формы.Edit1.Text := что_сюда_хочешь_то_и_пиши=);
Всё не знает никто, но важно найти того кто знает нужное...
Blood_Magic
Сообщения: 273
Зарегистрирован: 30 июн 2005, 14:53

сначало ищешь окно (FindWindow), потом Edit в окне (FindWindowEx), потом изменяешь текст (SendWindow(найденный Handle,wm_SetText,..,..))
- Чем юзер похож на обезьяну?
- Он жмет на все, что жмется, дергает все, что дергается и крутит все, что крутится.
- Чем юзер отличается от обезьяны?
- У обезьяны хватает ума не воспроизводить ту последовательность, которая приводит к краху системы.
BopoH
Сообщения: 11
Зарегистрирован: 08 окт 2006, 17:47

Ну про FindWindow и SendWindow понятно, а вот что за FindWindowEx можно по подробние или ссылочку плиз.
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

&quot писал(а):а вот что за FindWindowEx
почти тоже самое, что и FindWindow - только там задается еще Parent Window
FindWindowEx(phWnd, chWnd, lpClassName, lpWindowName);
phWnd - хендл родительского окна, передается найденное по FindWindow
chWnd - хендл подчиненного окна, нам неизвестен, пишем 0
lpClassName - для более точного поиска желательно знать имя класса
lpWindowName - имя окна, или Caption
имеем

Код: Выделить всё

h := FindWindowEx(hWnd, 0, 'TEditWindow', nil);
It's a long way to the top if you wanna rock'n'roll
BopoH
Сообщения: 11
Зарегистрирован: 08 окт 2006, 17:47

1.Захожу в Delphi, на форму form1 кидаю edit1(текст в нём удаляю), компилирую, откидываю.
2.Создаю новый проект, в ворме caption меняю на form, кидаю на неё Button1, по событию ButtonClick идёт следующий код:

h:=FindWindowEx(FindWindow(nil, 'form1'), 0, 'TEditWindow', nil);
sendmessage(h,wm_settext,0,lparam(lpctstr('текст который нужно вывести в Edit')));

Компилирую прогу 2.
запускаю прогу 1, запускаю прогу 2,жму в 2 на батон, в 1 как был Edit пустам, так и остался :(
Где бага?

p.s. на SendWindow кричит, что Undeclared identifier, мож подключать что надо??
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

&quot писал(а):SendWindow кричит, что Undeclared identifier, мож подключать что надо
Судя по параметрам, опечатка автора.
&quot писал(а):запускаю прогу 1, запускаю прогу 2,жму в 2 на батон, в 1 как был Edit пустам, так и остался
Где бага?
Ну раз на форме Edit, то имя класса у него TEdit, а не TEditWindow. Это я так, для примера, хотя такой класс есть - напоминает всем известный TMemo.
It's a long way to the top if you wanna rock'n'roll
BopoH
Сообщения: 11
Зарегистрирован: 08 окт 2006, 17:47

Сэнк, сработало. Вопрос следующий, на чужой форме два LabeledEdit, пишим в первый, мне надо писать во второй, не затрагивая содержимого
первого. И ещё, мне надо по нажатию кнопки открыть файл ассоциированой с ним прогой, путь к файлу в Edit.
Пробовал через ShellExecute, но там путь - ansichar
BopoH
Сообщения: 11
Зарегистрирован: 08 окт 2006, 17:47

Блин, неужели никто не ответит???
Blood_Magic
Сообщения: 273
Зарегистрирован: 30 июн 2005, 14:53

ну что там отвечать, первое вообще я не понял что ты спросил, а про второе не понял в чем проблема

ShellExecute(Handle,'open',PChar(Edit1.Text),nil,nil,SW_SHOWDEFAULT)
- Чем юзер похож на обезьяну?
- Он жмет на все, что жмется, дергает все, что дергается и крутит все, что крутится.
- Чем юзер отличается от обезьяны?
- У обезьяны хватает ума не воспроизводить ту последовательность, которая приводит к краху системы.
Ответить