![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Регистрация: 14.03.2007
Сообщений: 6
|
![]()
Есть чужое окно (окно другой программы, запускаемой по команде из моей программы).
В этом чужом окне (тоже, кстати, когдато кем то сделанном в Delphi) один из многих компонентов имеет тип TEdit (это знаю точно). Мне надо получить имя этого компонента. С помощью GetClassName(ChidHWND, Klass, 80); я получил класс этого окна С помощью GetWindowText(ChidHWND, Caption, 80);я получаю текст в окне этого компонента А как мне получить имя этого Edit-а? т.е. как получить свойство Name компонента TEdit, находящегося на чужой форме. Вот как я нахожу класс и текст: Код:
|
![]() |
![]() |
![]() |
#2 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
![]()
имя компоненты ты врядли выдернешь
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 14.03.2007
Сообщений: 6
|
![]()
Куча компонентов на этой чужой форме.
Мне надо среди них выбрать все Едиты (получить их хэндлы) и потом по мере необходимости посылать в окна этих Едитов SetWindowText и считывать из них SetWindowText. Я могу класс их определить (GetClassName), но у них там у всех класс TEdit. Я могу текст из них считывать (GetWindowText), но у некоторых текст в окне одинаковый. Собственно проблема - то и состоит в том, что текст в онах у некоторых из них одинаковый. Ну вот к примеру я у десяти Едитов успешно определяю хендлы т.к. текст в их окнах разный, а у 11 и 12 определить не могу так как у них в окнах цифры 200 (у обоих). Короче вот кусок кода в котором надо определить Хендлы 11 и 12 Едитов. Вот я и подумал, что не плохо бы их имена заполучить и тогда ... Решение гдето близко, да череп уже варить отказывается... var EditHandle1, EditHandle2, EditHandle3, EditHandle4, EditHandle5, EditHandle6, EditHandle7, EditHandle8, EditHandle9, EditHandle10, EditHandle11, EditHandle12 : Longint; ... function ffoEnumChildProc(ChidHWND: hWnd; List: TStrings): Bool; stdcall; var Klass : array [0..80] of char; Caption : array [0..80] of char; ss:String; begin //перебрать все компоненты и записать их типы и текст (в их окнах) в Мемо Result := True; GetClassName(ChidHWND, Klass, 80); Id := GetDlgCtrlId(ChidHWND); GetWindowText(ChidHWND, Caption, 80); //Определяем Хэндлы дочерних окон if(StrComp('TEdit',Klass) = 0 )and ((StrComp('8',Caption) = 0)) then EditHandle1 := ChidHWND //lx else if(StrComp('TEdit', Klass) = 0)and ((StrComp('5',Caption) = 0)) then EditHandle2 := ChidHWND //lz // else if(StrComp('TEdit', Klass) = 0)and ((StrComp(' ',Caption) = 0)) then EditHandle3 := ChidHWND // нет такого else if(StrComp('TEdit', Klass) = 0)and ((StrComp('3',Caption) = 0)) then EditHandle4 := ChidHWND //Ez else if(StrComp('TEdit', Klass) = 0)and ((StrComp('6',Caption) = 0)) then EditHandle5 := ChidHWND //Ex else if(StrComp('TEdit', Klass) = 0)and ((StrComp('10',Caption) = 0)) then EditHandle6 := ChidHWND //Ez_г else if(StrComp('TEdit', Klass) = 0)and ((StrComp('18',Caption) = 0)) then EditHandle7 := ChidHWND //Ex_г else if(StrComp('TEdit', Klass) = 0)and ((StrComp('0',Caption) = 0)) then EditHandle8 := ChidHWND //LzT else if(StrComp('TEdit', Klass) = 0)and ((StrComp('50',Caption) = 0)) then EditHandle9 := ChidHWND //LxT else if(StrComp('TEdit', Klass) = 0)and ((StrComp('12',Caption) = 0)) then EditHandle10 := ChidHWND //Nц //Вот тут геморой, так как в окнах у этих двух Едитов вписано 200 //поэтому я не могу выцепить их Хэндлы else if(StrComp('TEdit', Klass) = 0)and ((StrComp('200',Caption)= 0)) then EditHandle11 := ChidHWND //Цx ??? // else if(StrComp('TEdit', Klass) = 0)and ((StrComp('200',Caption)= 0)) then EditHandle12 := ChidHWND //Цz ??? Form5.Memo1.Lines.Add(Format('Класс : %s, Текст: %s', [Klass, Caption])); end; procedure TForm5.Button1Click(Sender: TObject); begin Form5.Memo1.Lines.Clear; EnumChildWindows( Wnd1,@ffoEnumChildProc,1); end; |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Респект и Уважение администрации этого форума!!! | Air | Свободное общение | 9 | 28.08.2008 05:58 |
Получить имя и свойства компонента... | prizrak1390 | Общие вопросы Delphi | 3 | 08.04.2008 12:13 |
не могу закачать файл из этого сайта | Rahim1993 | О форуме и сайтах клуба | 4 | 03.01.2008 14:29 |
получить рисунок из компонента WebBrowser1 | Scorpeon | Компоненты Delphi | 3 | 26.06.2007 14:34 |