Intercepeter Evenement

Résolu
L_art_ment Messages postés 302 Date d'inscription vendredi 21 septembre 2007 Statut Membre Dernière intervention 6 février 2013 - 29 mai 2008 à 14:57
L_art_ment Messages postés 302 Date d'inscription vendredi 21 septembre 2007 Statut Membre Dernière intervention 6 février 2013 - 29 mai 2008 à 16:48
         Bonjour, Bonsoir

   Encore un tiot probléme que je viens vous exposer...   Voilà j'utilise le composant MP3coder permettant de convertir des fichiers *.wav en *.mp3, la conversion se fait sans soucis, jusque là tout vat bien je vais bien...

   Le soucis étant que, comme vous devez commencer à le savoir, j'utilise Turbo Delphi, hors je ne peux pas ajouter de composant, mais pour contourner ce petit soucis (qui n'en est pas un finalement) j'utilise l'unité MP3coder.pas... Je sais qu'il est possible d'intercepter l'évenement OnEndProcess (qui détecte le fin de la conversion) puisque dans les exemples que j'ai il y a la procédure TForm1.MP3coder1EndProcess(Sender:TObject); mais chez moi cela ne fonctionne pas puisque mon composant n'est pas sur la fiche Form1...

   Voici la maniére dont il est déclaré dans le MP3coder.pas :
         
interface

uses ...... ;

type
   ...
   TMP3coder = class(TComponent)
      private
         ...
        FOnEndProcess : TNotifyEvent;
         ...
      published
         property OnEndProcess : TNotifyEvent read FOnEndProcess write FOnEndProcess;

      
      Voilà, puis dans ma form principale je déclare :

uses ... MP3coder;

type
   ...

var
   ...
   MP3coder1 : TMP3coder;
   ...

implementation

procedure TForm1.FormCreate(Sender:TObject);
begin
MP3Coder1:=TMP3coder.create(self);
end;

      Puis j'ai un bouton qui lance la conversion, mais je voudrais une fois la conversion terminée détecter l'évenement via ma form principale, je ne sais pas trop comment faire

      J'ai bien essayé la ligne MP3coder1.OnEndProcess := MaProcedureEndProcess // MaProcedureEndProcess étant une procédure qui sera lancé à la détéction de l'évenement... Mais ca ne fonctionne pas, c'est pourtant la chose la plus censée que j'ai testé  

      Merci d'avance de m'éclairer de votre lume, car ma chandelle est presque morte là

      

4 réponses

Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
29 mai 2008 à 16:42
pardon retire le @

 
@+
Cirec

<hr siz="" />
3
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
29 mai 2008 à 16:06
Salut,

c'est très simple:

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure EndProcess(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

implementation

procedure TForm1.FormCreate(Sender:TObject);
begin
  MP3Coder1 := TMP3coder.create(self);
  MP3Coder1.OnEndProcess := @EndProcess;
end;

procedure TForm1.EndProcess(Sender:TObject);

begin
  
// ton code ici
end;
 
@+
Cirec

<hr siz="" />
0
L_art_ment Messages postés 302 Date d'inscription vendredi 21 septembre 2007 Statut Membre Dernière intervention 6 février 2013
29 mai 2008 à 16:18
         Screugneugneuh merci Cirec !! c'est ce que j'avais testé mais sans le @ devant ma procédure...   Là je viens de tester comme tu m'as dis mais il me balance une erreur "variable requise" sur cette même ligne  :s
0
L_art_ment Messages postés 302 Date d'inscription vendredi 21 septembre 2007 Statut Membre Dernière intervention 6 février 2013
29 mai 2008 à 16:48
         Bah mince j'comprend pô ca fonctionne... C'est pourtant ce que j'avais essayé.. J'ai peut être dû oublié un "(sender:TObject)" quelque part ...

         Bein j'suis vraiment désolé :s Grand merci quand même
0
Rejoignez-nous