Tout est dans le titre, j'ai trouvé le ClassName et le Text contenu dans le control mais pour retrouver son nom, quelle méthode ?
Merci
Version imprimable
Tout est dans le titre, j'ai trouvé le ClassName et le Text contenu dans le control mais pour retrouver son nom, quelle méthode ?
Merci
il y a cette fonction
une Fois que tu a un TWinControl valide, reste à utiliser sont nom...Code:function FindControl(Handle: HWnd): TWinControl;
Code:
1
2
3
4
5
6
7
8
9
10
11
12 var hWnd:THandle; FindCtrl:TWinControl; begin hWnd:=Edit1.handle; // prend le hWnd de Edit1 FindCtrl:=FindControl(hWnd); if FindCtrl<>nil then begin Edit1.Text:=FindCtrl.Name; //-->Nom du Control end; end;
FindWindow() permet d'obenir l'handle à partir du ClassName.
Pour la suite, voir le code donné par Eric. ;)
:resolu: ???
Je recupere les Handle a partir d'un enumchildwindow et à priori le FindControl ne me trouve jamais les controles. (Quelque soit sa classe)
Est-ce parcque le handle correspond à une application externe à celle qui fait la recherche ?
Ah ben oui ;) Dans ce cas, pour ton appli, ce composant n'a pas de nom. Ce n'est qu'une fenêtre Windows (au sens large du terme) qui n'est pas forcément un composant Delphi.Citation:
Envoyé par dd16
Et même si c'en était un, il ne voudrait rien dire dans ton programme puisqu'il serait dans un espace mémoire différent.
salut
faut pas les ecouter.
il existe un moyen de recuperer le nom des composants
@+ PhilCode:function GetClassName(hWnd: HWND; lpClassName: PChar; nMaxCount: Integer): Integer;
PS : argh j'ai lu trop vite il a le classname c'est le nom donné a l'objet qu'il veut le nom n'est pas significatif le compilo ne garde pas cet information
@+ phil