algo similar ao GetClassName para pegar o nome do componente
Alguém sabe como pegar o nome de todos os componentes de um form.
Estou usando a propriedade ´GetClassName´, mas ela só retorna a classe. Já é útil, mas seria melhor conseguir pegar o nome. E alguém tem uma rotina para pegar todos os componentes de uma tela.
Obs: Estou fazendo isso de outro aplicativo.
Estou usando a propriedade ´GetClassName´, mas ela só retorna a classe. Já é útil, mas seria melhor conseguir pegar o nome. E alguém tem uma rotina para pegar todos os componentes de uma tela.
Obs: Estou fazendo isso de outro aplicativo.
Acacio
Curtidas 0
Respostas
Fabriciocolombo
16/09/2009
se não for isso posta um trecho do seu código
var i: Integer; begin for i := 0 to ComponentCount-1 do begin ShowMessage(Components[i].Name); end;
GOSTEI 0
Acacio
16/09/2009
Bom, não é isso ue eu quero, esses componentes estão num outro aplicativo. Ai nesse aplicativo eu pego o handle e o handle de seus filhos. Com esse handle eu consigo pegar qual a classe que ele pertence. Exemplo se ele é TEdit, vi retorna TEdit, porém eu precisaria que me voltasse também o nome do componente Exemplo é do tipo TEdit e o nome é EdNome.
var
h: Thandle;
s,NOME : string;
j,i,l,wpos: Integer;
hWndIEChild :Thandle;// HWND;
ClassName: array[0..255] of char;
begin
H := FindWindow(nil,´Exe2´);
H := getwindow(H,3);//Aqui pega o nome do form
i:= SendMessage(h, WM_GETTEXTLENGTH, 1, 5) + 1;
setLength(s, i);
hWndIEChild := getwindow(H,5);
SendMessage(hWndIEChild, WM_GETTEXT, 100, Integer(s));
s := trim(s);
wpos := pos(´Edit1´,s);
Edit1.Text := s;
Edit2.Text := NOME;
GetClassName(hWndIEChild, ClassName, sizeof(Classname));
if trim(ClassName) <> ´´ then
Edit2.Text := trim(ClassName);
var
h: Thandle;
s,NOME : string;
j,i,l,wpos: Integer;
hWndIEChild :Thandle;// HWND;
ClassName: array[0..255] of char;
begin
H := FindWindow(nil,´Exe2´);
H := getwindow(H,3);//Aqui pega o nome do form
i:= SendMessage(h, WM_GETTEXTLENGTH, 1, 5) + 1;
setLength(s, i);
hWndIEChild := getwindow(H,5);
SendMessage(hWndIEChild, WM_GETTEXT, 100, Integer(s));
s := trim(s);
wpos := pos(´Edit1´,s);
Edit1.Text := s;
Edit2.Text := NOME;
GetClassName(hWndIEChild, ClassName, sizeof(Classname));
if trim(ClassName) <> ´´ then
Edit2.Text := trim(ClassName);
GOSTEI 0