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

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

GetWindowText [D5, Win95/98]


Ruslan_ ©   (2002-02-09 14:53:00) 

Помогите, пожалуйста, решить такую задачу.
Есть программа, в которой есть 4 TPanel. В одну TPanel внедрен толи Label толи Edit. Мне нужно из своей программки получить доступ к Edit, я пишу вот такой код, но ни чего не получается. Возможно, выводит только Caption Tpanel-и, а как добраться до той Tpanel в которую внедрен Edit и получить доступ к Edit?. Может по-другому можно решить эту задачу.
Заранее спасибо.
procedure TForm1.Button1Click(Sender: TObject);
var
f:HWND;
d:pchar;
begin
f:=FindWindow("TfmMainForm",nil);
f:= FindWindowEx(f,0,"Tpanel",nil);
GetWindowText(f,d,80);
Form1.Caption:=d;
end;


Raptor   (2002-02-13 13:40:00) [1]

Из Labelвытащить текст тебе никак не удастся. А что касается Edit-а, то хочу посоветовать читать хоть иногда хелп. Поверь, очень помогает. ;-))
Если ты посмотришь описание функции GetWindowTextв хелпе, то обязательно увидишь строчку:
This function cannot retrieve the text of an edit control in another application.
Так что для этих целей надо юзать SendMessage(WM_GETTEXT,...).


Dimaond Cat   (2002-02-13 00:12:00) [2]

Нет лейбл это не статик текст, он образован от TGraphicControl тоесть по идее не явл. оконным элементом управления


Bachin   (2002-02-11 11:43:00) [3]

2Dimaond Cat:
А разве TLabel это не STATIC_... как и TButton?
надо будет пересмотреть иерархию, а то я туда же и TGroupBox отнес...


Dimaond Cat   (2002-02-11 02:48:00) [4]

Странно, что ты не догадался сделать следующий шаг
procedure TForm1.Button1Click(Sender: TObject);
var
f:HWND;
d:pchar;
begin
f:=FindWindow("TfmMainForm",nil);
f:= FindWindowEx(f,0,"Tpanel",nil);
f:= FindWindowEx(f,0,"TEdit",nil);
GetWindowText(f,d,80);
Form1.Caption:=d;
end;

Но к сожалению с Label такой фокус не прокатит т.к. он не имеет хендла


Наверх

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