Changer de curseur sur toute la Form
Bonjour,
je cherche à changer le curseur (en crHourGlass) sur toute la Form et ses composants visuels pendant un traitement. Or la propriété Cursor n'est opérationnelle que sur le composant qui a déclenché l'évènement (un TButton). Je n'ai pas vu de propriété directe. Je pourrais évidemment modifier la propriété Cursor de tous les comportements visuels de la Form. Mais ce n'est pas trop transposable. J'en suis là :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| procedure TForm1.Button1Click(Sender: TObject);
var
bIsControl: boolean;
aClass : TClass;
i: integer;
begin
For i:=1 to ComponentCount-1 do
begin
bIsControl:=False;
aClass:=TComponent(Components[i]).ClassParent;
while (aClass<>nil) and (bIsControl=False) do
begin
if aClass.ClassType=TControl then bIsControl:=True;
aClass:=aClass.ClassParent;
end;
if bIsControl then TControl(Components[i]).Cursor:=crHourGlass;
end;
TControl(Self).Cursor:=crHourGlass;
end; |
En supposant que ce code soit une solution correcte, je me demande où on peut trouver de la documentation sur l'arborescence des composants fournis dans Lazarus : TControl semble être celui de plus bas niveau disposant d'une propriété Cursor. Est-ce que cela signifie que tous les composants visuels héritent de TControl de manière plus ou moins éloignée (d'où la boucle while) ? D'autant que le [F1] de mon lazarus n'aboutit pas. Merci. Tom