![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по EnumChildWindows [D6, WinXP]
Elen © (2006-10-17 14:47:00)Господа!
У меня на форме есть несколько едитов. Я хочу найти их хендлы. Применяя EnumChildWindows в каллбэке получаю числа но они почему-то не равны хендлам эдитов (хотя количество этих чисел такое же как и количество элементов на форме).
Вот мой код :
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
ListBox1: TListBox;
Edit3: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
function func(h:Thandle;l:LPARAM):boolean;
var
Form1: TForm1;
implementation
{$R *.dfm}
//********** FUNCTION **********
function func;
var p:pchar;
begin
{В H возвращаются найденные хендлы}
form1.ListBox1.Items.Append(inttostr(h)+' '+inttostr(l));
result:=true;
end;
//********** END FUNCTION ******
procedure TForm1.Button1Click(Sender: TObject);
begin
caption:=inttostr(Edit1.Handle);
{Этот должен быть в списке но его нет}
EnumChildWindows(form1.handle,@func,0);
end;
end.
Подскажите где я ошибаюсь. (просьба сильно не пинать :) )
Ketmar (2006-10-17 15:08:00) [1]>[7] Elen(c) 17-Oct-2006, 15:06
ой. дико извиняюсь. что-то не заметил, в какой конференции нахожусь. %-)
Elen (2006-10-17 15:06:00) [2]
> Ketmar
Не-е. Рулит конечно. просто это как бы в целях обучения. В общем у меня есть экзешничек и на нем несколько едитов. Туда хочу запихивать данные автоматом из другой проги. Уже все получилось. Спаибо.
Ketmar (2006-10-17 15:04:00) [3]а что, edit1.Handle больше не рулит???
Elen (2006-10-17 15:00:00) [4]Всем Всем Всем!
Спасибо за пинки. Помогло. (Как это можно было такое пропустить!!?? Видать погода давит...)
clickmaker (2006-10-17 14:59:00) [5]и кто учит так реализацию функций оформлять? Гадай тут, что такое h и l: то-ли параметры, то-ли свойства, то-ли вообще глобальные... Пока не тыцнешь на find declaration
Сергей М. (2006-10-17 14:52:00) [6]
> просьба сильно не пинать
Ну как же тебя не пинать, если "уж сколько раз твердили миру", что колбэк-функция, адрес которой передается в данном (и аналогичных) случае, должна быть stdcall-функцией ....
BiN (2006-10-17 14:51:00) [7]объявление callback функции:
1. Не boolean, а bool
2. stdcall отсутствует
clickmaker (2006-10-17 14:51:00) [8]function func(h:Thandle;l:LPARAM):boolean; stdcall;