Bonjour,
Soit une procédure procedure TMainForm.ShowDirectory(ListDir: string; var Liste: TCheckListBox); qui fonctionne bien, je peux lui passer l'une ou l'autre des TCheckListBox de ma fiche, et ça affiche bien les fichiers en liste, tutti va bene.
Mais voilà-t-y pas que j'ai maintenant aussi besoin d'une TListBox pour récupérer tout pareil la liste des fichiers d'un dossier.
L'idée serait donc d'aller chercher le parent commun des deux objets cible, à savoir TCustomListBox, de déclarer
procedure ShowDirectory(ListDir: string; var Liste: TCustomListBox); et d'appeler ShowDirectory(chemin, MyCheckListBox); ou MyListBox); mais vous pensez bien que ça serait trop simple !
Je ne compile pas (Error: Call by var for arg no. 2 has to match exactly: Got "TCheckListBox" expected "TCustomListBox"), normal, j'ai essayé de ruser avec du as, avec du ClassName, mais je patauge et je n'avance pas...
Je viens donc quémander un peu d'aide, une idée, quelque chose pour m'éviter de bêtement dupliquer cette procédure ShowDirectory juste à cause de la cible, qui est pratiquement la même dans les deux cas.
Il existerait une méthode bourrin consistant en l'utilisation d'une TListBox cachée qui serait recopiée après l'appel, mais est-ce bien honnête ? Genre
procedure ShowDirectory(ListDir: string; var ListBoxCachée: TListBox); et
.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ShowDirectory(chemin, ListBoxCachée); MyCheckListBox := ListBoxCachée; // ou MyListBox := ListBoxCachée;
Comment vous feriez, vous ?
(Google n'est pas d'une grande aide, ou je ne sais pas formuler la bonne question)
Partager