[D5] récupération d’une instance de classe.
Bonjour,
J’ai une feuille de saisie contenant un certain nombre de TEdits, de TComboBoxes et de TRadioButtons. Lors de la validation, avant d’enregistrer, je souhaite contrôler l’exhaustivité de la saisie. Je suis donc en train d’essayer de bâtir une fonction :
Citation:
ControlePresence(TObj : TControl) : Boolean;
Dans laquelle je passe l’objet à contrôler en paramètre et, dans un premier temps, s’il n’est pas vide la fonction doit retourner True.
Mon problème réside dans mon incapacité à récupérer l’instance de l’objet que j’envoie en paramètre. Je suis débutant, je me suis plongé dans le guide de F Beaulieu ainsi que dans la prose de Laurent Dardenne « Les références de classe ou métaclasses » mais je ne m’en sort pas.
Dans le code ci-dessous par exemple, le premier objet envoyé étant un TEdit, j’essaie de récupérer le contenu de la propriété Text mais je n’y arrive pas.
Citation:
Le Compilo me donne le message : Text identificateur non déclaré.
Pourtant mes showmessage successifs me donnent : TEdit comme TObj.ClassName.
Quelqu’un peut-il me sortir de l’ornière en m’expliquant ce que je ne fais pas correctement ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| Function ControlePresence(TObj : TControl) : Boolean;
var
Edit : Tedit ;
Combo : TComboBox;
Radio : TRadioGroup;
begin
Result := False;
if TObj is Tedit then
begin
showMessage('TObj est un: ' + TObj.ClassName);
If TObj.InheritsFrom(Tedit) then
begin
showMessage('TObj est un: ' + TObj.ClassName);
//Edit := Tedit.Create(TObj);
//Edit.Parent := Self;
//if TObj.Text <> '' then Result := True;
//FreeAndNil(Edit); |
J'ai aussi essayé avec un constructeur mais c'est pas mieux.
Merci.