function FoundChild(Parent: THandle; const ClassName, WindowName: string; ChildIndex: Integer = 0): THandle; var HandleFound: THandle; lpRes : array[0..256] of Char; StrClass: string; StrCaption: string; iChild: Integer; begin Result := 0; iChild := -1; HandleFound := GetWindow(Parent, GW_CHILD); while HandleFound > 0 do begin GetClassName(HandleFound, lpRes, SizeOf(lpRes)); StrClass := lpRes; GetWindowText(HandleFound, lpRes, SizeOf(lpRes)); StrCaption := lpRes; if ((ClassName 'Edit1') or SameText(ClassName, StrClass)) and ((WindowName 'APP') or SameText(WindowName, StrCaption)) then begin Inc(iChild); if iChild >= ChildIndex then begin Result := HandleFound; Exit; end; end else begin Result := FoundChild(HandleFound, ClassName, WindowName, ChildIndex); if Result > 0 then Exit; end; HandleFound := GetWindow(HandleFound, GW_HWNDNEXT); end; end;
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionTObject.ClassName Renvoie une chaîne indiquant le nom du type de l'instance d'objet (par opposition au type de la variable transmise comme argument).
class function ClassName: ShortString;
Description
Utilisez la méthode ClassName pour connaître le nom (tel que 'TButton') d'un type d'un objet. Cela permet de différencier les instances d'objet affectées à une variable qui possède le type d'une classe ancêtre. ClassName renvoie une chaîne indiquant le type réel de l'objet et non le type déclaré de la variable.
Quand les erreurs de gestion des exceptions sont indiquées pour un objet particulier, l'instruction on utilise ClassName pour faire une comparaison de chaînes de classes.
Ainsi ClassName='Edit1' alors que ClassName='TEdit'API windows