Appel Function avec type variables differentes ? [Résolu]

Messages postés
30
Date d'inscription
mardi 10 mars 2009
Dernière intervention
31 octobre 2013
- 30 oct. 2011 à 12:21 - Dernière réponse :
Messages postés
2684
Date d'inscription
jeudi 15 janvier 2004
Dernière intervention
26 juillet 2018
- 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 ?
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
- 30 oct. 2011 à 16:54
3
Merci
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

Merci Utilisateur anonyme 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
Messages postés
30
Date d'inscription
mardi 10 mars 2009
Dernière intervention
31 octobre 2013
- 30 oct. 2011 à 17:12
0
Merci
J'ai ajouté une fonction que me convert le TTreeNode en String alors je ne que une seule variable a passer. Merci a vous.
Commenter la réponse de DavKli
Messages postés
2684
Date d'inscription
jeudi 15 janvier 2004
Dernière intervention
26 juillet 2018
- 31 oct. 2011 à 03:00
0
Merci
« Les variants sont de mauvaises choses qui ne devraient pas exister : On les prend pour des fourres-tout à tord. »

Un Variant -->
Un String -->
Commenter la réponse de Caribensila

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.