DelphiCool
Messages postés455Date d'inscriptionmardi 24 juillet 2001StatutMembreDernière intervention10 mars 2009
-
13 avril 2002 à 23:23
cs_Nono40
Messages postés962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 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.
cs_Nono40
Messages postés962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 septembre 20062 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és455Date d'inscriptionmardi 24 juillet 2001StatutMembreDernière intervention10 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és962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 septembre 20062 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és455Date d'inscriptionmardi 24 juillet 2001StatutMembreDernière intervention10 mars 2009 14 avril 2002 à 17:11
Tu veux surement dire comme ceci:
If n <> 0 Then Items.AddStrings(List);
cs_Nono40
Messages postés962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 septembre 20062 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és455Date d'inscriptionmardi 24 juillet 2001StatutMembreDernière intervention10 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és209Date d'inscriptionlundi 11 février 2002StatutMembreDernière intervention13 décembre 2002 14 avril 2002 à 00:32
Comprend pas ton prog. Y a un truc a installer ou koi?
DelphiCool
Messages postés455Date d'inscriptionmardi 24 juillet 2001StatutMembreDernière intervention10 mars 2009 13 avril 2002 à 23:23
15 avril 2002 à 00:25
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...
14 avril 2002 à 23:08
14 avril 2002 à 21:18
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.
14 avril 2002 à 17:11
If n <> 0 Then Items.AddStrings(List);
14 avril 2002 à 16:23
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.
14 avril 2002 à 10:45
C'est un composant que je vient de faire, pour le dragrop
install HiaListDrop.pas
14 avril 2002 à 00:32
13 avril 2002 à 23:23