IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Passage de pointeurs entre fonctions


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 213
    Points : 81
    Points
    81
    Par défaut Passage de pointeurs entre fonctions
    Salut,

    je commence doucement à savoir faire la différence entre pointeurs et variables.. pas facile quand on viens de PHP ou tout est pareil :-)

    Mais là ? J'ai un couac

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
    	m: Integer;
      path: String;
    begin
     
      BitBtn1.enabled:= false;
      timer3.enabled := true;
     
      Path:=StringGrid1.cells[5,StringGrid1.Row];
     
      m := BASS_StreamCreateFile(False, Pchar(Path), 0, 0, 0);
     
      if BASS_ChannelPlay(m, False) then
      begin
     
    (( quelques lignes sans importance ))
     
      end
      else
      begin
     
      Error('Error: ' + StringGrid1.cells[5,StringGrid1.Row]);
     
      end;
     
    end;

    Comme vous le remarquez j'utilise le pointeur "m" pour relier mes deux fonctions BASS.

    Mais? Pour arrêter mon flux musical j'ai besoin de cette référence !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    procedure TForm1.BitBtn3Click(Sender: TObject);
    var m : Integer;
    begin
     
        BASS_ChannelStop(m);
     
    end;
    Il me dis que m est déclarée mais pas utilisée ... ??

    Merci

  2. #2
    bjl
    bjl est déconnecté
    Membre averti Avatar de bjl
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : Brésil

    Informations forums :
    Inscription : Décembre 2002
    Messages : 263
    Points : 338
    Points
    338
    Par défaut
    Bonjour,

    Si tu veux que m soit disponible pour toutes les fonctions de ta form; déclare le en private dans l'interface de ta form mais pas en local dans tes procédures.

  3. #3
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    tu déclares m en variable locale à ta procédure BitBtn1Click : elle n'a pas d'existence en dehors.
    la variable locale m de BitBtn3Click n'est donc pas la même... (logique, puisqu'elle est redéclarée localement)
    il faut que tu déclares m dans la section var de l'Unit1, soit dans la section interface, soit dans la section implémentation
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 213
    Points : 81
    Points
    81
    Par défaut
    Merci je l'ai déclaré dans Private !

    C'est parfait 8)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/05/2011, 01h59
  2. Passage de valeur entre fonctions avec guidata
    Par ursamajor dans le forum Interfaces Graphiques
    Réponses: 7
    Dernier message: 20/04/2011, 16h23
  3. passage de pointeur de fonction a une DLL en C#
    Par bramy dans le forum Windows Forms
    Réponses: 1
    Dernier message: 29/04/2007, 13h44
  4. Réponses: 15
    Dernier message: 22/03/2007, 02h35
  5. passage de pointeurs entre appli delphi et DLL c++
    Par e-teo dans le forum Langage
    Réponses: 1
    Dernier message: 13/10/2005, 21h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo