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à :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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
Partager