COMPOSANT THIALISTDROP

DelphiCool Messages postés 455 Date d'inscription mardi 24 juillet 2001 Statut Membre Dernière intervention 10 mars 2009 - 13 avril 2002 à 23:23
cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 - 15 avril 2002 à 00:25
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/11853-composant-thialistdrop

cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
15 avril 2002 à 00:25
Heu... Désolé, mais je crois que je me suis trompé... La prochaine fois je testerais mieux mes commentaires...

En fait il faut TOUJOURS tester l'association de l'événement avant son appel :
If n <> 0 Then
Begin
Items.AddStrings(List);
If Assigned(FOnDropFile)Then FOnDropFile(Self, List);
End;

Comme ça on évite la violation d'accès si l'événement n'est pas défini dans le projet Demo...
DelphiCool Messages postés 455 Date d'inscription mardi 24 juillet 2001 Statut Membre Dernière intervention 10 mars 2009
14 avril 2002 à 23:08
Merci pour tes conseils, mais j'ai une exception "acces violation" si l'evenement OnDropFile n'est pas present ds le projet demo
cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
14 avril 2002 à 21:18
Oui, comme tu veux. L'idée de créer un événement OnDropFile est bonne il vaut mieux donc le conserver :
If n <> 0 Then
Begin
If Assigned(FOnDropFile) Then FOnDropFile(Self, List) Else Items.AddStrings(List);
End;

Tu pourrais aussi ajouter dans tous les cas les noms au ListBox :
( que l'événement soit défini ou non )
If n <> 0 Then
Begin
Items.AddStrings(List);
FOnDropFile(Self, List);
End;

Mais bon, ce ne sont que des idées comme ça. C'est toi qui décide

Nono.
DelphiCool Messages postés 455 Date d'inscription mardi 24 juillet 2001 Statut Membre Dernière intervention 10 mars 2009
14 avril 2002 à 17:11
Tu veux surement dire comme ceci:

If n <> 0 Then Items.AddStrings(List);
cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
14 avril 2002 à 16:23
C'est super-simple et efficace ton composant...
Mais tu pourrais aussi lui faire se remplir tout seul :
procedure ThiaListDrop.DragDropDetect(var Msg : TMessage);
....
....
If n <> 0 Then
Begin
If Assigned(FOnDropFile)
Then FOnDropFile(Self, List)
Else Items.Assign(List);
End;
...
...
Comme ça tu n'as pas besoin d'écrire une seule ligne dans le Prog demo. Mais l'utilisateur peut utiliser la liste de façon différente simplement en associant du code à l'événement OnDropFile.

La fonction Assigned permet se savoir si du code est attaché à un événement et donc de réagir différemment.

Nono.
DelphiCool Messages postés 455 Date d'inscription mardi 24 juillet 2001 Statut Membre Dernière intervention 10 mars 2009
14 avril 2002 à 10:45
Pardon, oui

C'est un composant que je vient de faire, pour le dragrop
install HiaListDrop.pas
cs_Gysmo Messages postés 209 Date d'inscription lundi 11 février 2002 Statut Membre Dernière intervention 13 décembre 2002
14 avril 2002 à 00:32
Comprend pas ton prog. Y a un truc a installer ou koi?
DelphiCool Messages postés 455 Date d'inscription mardi 24 juillet 2001 Statut Membre Dernière intervention 10 mars 2009
13 avril 2002 à 23:23
Soif de commentaires ;-D
Rejoignez-nous