Propriétés de TControl non accessible [Résolu]

Signaler
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
-
Messages postés
85
Date d'inscription
samedi 6 novembre 2004
Statut
Membre
Dernière intervention
17 décembre 2005
-
Bonjour à tous.
Pourquoi ne peut-on pas écrire par exemple:
procedure TForm1.Button1Click(Sender: TObject);
var i : Integer;
begin
for i := 0 to Panel1.ControlCount-1 do
Panel1.Controls[i]. DragMode : = dmAutomatic;
end;
En effet, je ne peux pas changer les propriétés DragMode des controls.
Alors que je pourrais faire, par exemple:
Panel1.Controls[i].Enabled := false;
Ca, ça passe...
Je ne comprends pas la différence...
Si quelqu'un peut avoir la gentillesse de m'expliquer, merci. :)

2 réponses

Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
3
Salut,



D'après l'aide, la propriété DragMode de TControl est protégée, alors
qu'elle est publiée pour certains de ses descendants (contrairement à
enabled qui est plublic dès "l'origine"). Ca doit expliquer tes problèmes.



Ken@vo

____________________

Code, Code, Codec !
Messages postés
85
Date d'inscription
samedi 6 novembre 2004
Statut
Membre
Dernière intervention
17 décembre 2005
1
Je pense qu'un transtypage dans une classe descendante où "DragMode" est public voire published pouurait arranger les choses.
A la limite, même si c'est pas très réglo tu pourrais creer un type du genre:

type
TMonControl= class(TControl)
public
property DragMode;
end;

et faire le transtypage:

TMonControl(Panel1.Controls[i]). DragMode : = dmAutomatic;

Sur ce...