Appel Function avec type variables differentes ?

Résolu
DavKli Messages postés 28 Date d'inscription mardi 10 mars 2009 Statut Membre Dernière intervention 31 octobre 2013 - 30 oct. 2011 à 12:21
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 - 31 oct. 2011 à 03:00
Bonjour a tous,

je ne pas trouvé de reponse sur le site alore je vais poster la question. J'ai une function que je souhait appeler avec comme argument STRING ou avec un TTreeNode. Je essaié avec un variant comme dans la demonstration :

function TMainForm.FolderToIndex(Folder: Variant): Integer;
Begin
  //Code
End;


et en appelant soit par

MainForm.FolderToIndex('Inbox/Exemple');


ou encore par

MainForm.FolderToIndex(FolderTreeview.Items[CurrentFolder]);


A parament, le variant n'aime pas les TTreeNodes. Autres solutions, a part deux functions differentes ?

3 réponses

Utilisateur anonyme
30 oct. 2011 à 16:54
Salut,

A parament, le variant n'aime pas les TTreeNodes. Autres solutions, a part deux functions differentes ?


*Tu devrais peut être commencer par regarder la différence entre type et objet.

*Les variants sont de mauvaises choses qui ne devraient pas exister : On les prend pour des fourres-tout à tord.

Pour répondre à ta question : il est possible de passer plusieurs paramètres dans une foncion. Un exemple non testé :

Function MyFunction(Const AString : String; Const ATreeNode : TTreeNode);

  If AString<>'' Then
  //...... 

  If Assigned(ATreeNode) Then
  //...... 


A appeler ainsi

Cas 1 : 
MyFunction(MonString,Nil);
Cas 2 :
MyFunction('',MonTreeNode);
Cas 3 : 
MyFunction(MonString,MonTreeNode);
Cas 2 :
MyFunction('',Nil);


Sinon l'idéal est de séparer le problème : une fonction pour le string, une fonction pour le treenode. Là c'est typiquement un problème de conception et non de code
3
DavKli Messages postés 28 Date d'inscription mardi 10 mars 2009 Statut Membre Dernière intervention 31 octobre 2013
30 oct. 2011 à 17:12
J'ai ajouté une fonction que me convert le TTreeNode en String alors je ne que une seule variable a passer. Merci a vous.
0
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
31 oct. 2011 à 03:00
« Les variants sont de mauvaises choses qui ne devraient pas exister : On les prend pour des fourres-tout à tord. »

Un Variant -->
Un String -->
0
Rejoignez-nous