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

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

Вопрос. [D7, WinXP]


Страждущий ©   (2007-03-31 23:15:00) 

Доброй ночи.
Тема такая на чужой форме есть два edit
класс и название известно
на пример
user:Tedit
pass:Tedit
в эдитах пусто
Функция
EditWnd := FindWindowExA(Wnd, 0,'Tedit','user');
неходит
как Быть ?


Leonid Troyanovsky   (2007-04-01 15:54:00) [1]


> DrPass ©   (01.04.07 14:12) [10]

> вероятно, что не хуже тебя ;-)

Ну, и славно. А то я уж начал переживать.

--
Regards, LVT.


Leonid Troyanovsky   (2007-04-01 15:47:00) [2]


> RASkov   (01.04.07 14:19) [12]
> Всегда думал, что заголовок Edita это его текст, но вот
> ведь какая еще есть фигня

Ни разу не использовал EDIT with title bar :) (т.е., не знаю),
но к FindWindowEx оно отношение имеет минимальное.
Однако, использование последнего для поиска текста
в чужих контролах - проблематично.

--
Regards, LVT.


DrPass   (2007-04-01 15:07:00) [3]


> RASkov   (01.04.07 14:28) [13]

Можно идентифицировать, зная порядок их создания. Для того у ней и есть второй параметр


RASkov   (2007-04-01 14:28:00) [4]

Т.е. получается, что фик идентифицируешь TEdit'ы FindWindowExA'ом не зная, что у них было в Текст при создании....


RASkov   (2007-04-01 14:19:00) [5]

Всегда думал, что заголовок Edita это его текст, но вот ведь какая еще есть фигня

> Заголовок (название) окна TEdit есть его текст на момент создания контрола (вызова CreateParams).

Caption:=Format('FindWin - %d, Hnd - %d',[FindWindowExA(Handle, 0, 'Tedit', PChar(Edit1.Text)), Edit1.Handle]);


DrPass   (2007-04-01 14:15:00) [6]


> begin...end ©   (01.04.07 14:08) [9]

Это понятно. Я просто считал, что Delphi для стандартных контролов не заморачиваясь использует стандартные классы EDIT, BUTTON и т.д. Я уже посмотрел, что она их копирует и создает новый класс, так что сорри.


DrPass   (2007-04-01 14:12:00) [7]


> begin...end ©   (01.04.07 14:03) [8]

Вот именно. А не свойство Name, как это, похоже, считает автор темы.


> Leonid Troyanovsky ©   (01.04.07 13:48) [7]

Да не переживай за меня так. Я знаком с Win32 API... и вполне вероятно, что не хуже тебя ;-)


begin...end   (2007-04-01 14:08:00) [8]

> DrPass ©   (01.04.07 11:41) [4]

> Ты в ней переписывал компоненты TEdit, чтобы они имели класс
> окна "Tedit"?

FindWindow(Ex) ищет регистронезависимо.


begin...end   (2007-04-01 14:03:00) [9]

Заголовок (название) окна TEdit есть его текст на момент создания контрола (вызова CreateParams).


Leonid Troyanovsky   (2007-04-01 13:48:00) [10]


> DrPass ©   (01.04.07 13:41) [6]

> метод виртуальный, и "любому или нелюбому" остается на усмотрение
> разработчика контрола.

Она и он - некоторая разница ж есть, IMHO.

> Кроме имени класса у окна еще и заголовок есть.

Тебя удивить тем, что есть "заголовок" окна EDIT?

--
Regards, LVT.


DrPass   (2007-04-01 13:41:00) [11]


> Leonid Troyanovsky ©   (01.04.07 12:44) [5]

Вряд ли ты меня удивишь такой фигней, но таки да, я ошибся - для TEdit и стандартных компонент VCL класс действительно такой же. Насчет "любому винконтролу" - не факт, т.к. CreateParams метод виртуальный, и "любому или нелюбому" остается на усмотрение разработчика контрола.
Впрочем, все равно стоит принять во внимание

> DrPass ©   (01.04.07 00:05) [1]

Кроме имени класса у окна еще и заголовок есть.


Leonid Troyanovsky   (2007-04-01 12:44:00) [12]


> DrPass ©   (01.04.07 11:41) [4]

> Только в случае формы она дает своему оконному классу имя
> своего класса.

Любому винконтролу, удивись.

--
Regards, LVT.


DrPass   (2007-04-01 11:41:00) [13]


> Страждущий   (01.04.07 00:14) [2]

Ну и что, что твоя бывшая? Ты в ней переписывал компоненты TEdit, чтобы они имели класс окна "Tedit"?
Оконный класс и заголовок окна в Windows - вещи, не имеющие никакого отношения к классу компонента и свойству Name. Только в случае формы она дает своему оконному классу имя своего класса.
Так что см.
> DrPass ©   (01.04.07 00:05) [1]


RASkov   (2007-04-01 01:27:00) [14]

> [2] Страждущий   (01.04.07 00:14)

Значит перемудрил с Wnd и(или) со второым параметром который у тебя - 0....


Страждущий   (2007-04-01 00:14:00) [15]

100 %
TEdit
100 %
user.

почему так уверен это бывшая моя прога.
исходники утеряны.


DrPass   (2007-04-01 00:05:00) [16]


> FindWindowExA(Wnd, 0,'Tedit','user');

Посмотреть на "чужую форму" с помощью WinSight. Вполне вероятно (точнее, на 100% наверняка), что у них и класс не TEdit называется, и заголовок не user :)


Наверх

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