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

Lazarus Pascal Discussion :

Utilisation de TPicture.OnProgress [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut Utilisation de TPicture.OnProgress
    Bonjour à toutes et à tous,

    dans une application, je voudrais utiliser le OnProgress d'un TPicture. J'ai écrit ce qui suit :
    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
    28
    29
    30
    31
    32
    33
    unit MapUtil;
     
    {$mode objfpc}{$H+}
     
    interface
     
    uses
      Graphics, FPImage;
     
     
    procedure ImageUnique(DimImg, QJpg: Integer);
    procedure PictProgress(Sender: TObject; Stage: TFPImgProgressStage;
                                       PercentDone: Byte; RedrawNow: Boolean; const R: TRect;
                                       const Msg: AnsiString; var Continue : Boolean);
     
    implementation
     
    procedure PictProgress(Sender: TObject; Stage: TFPImgProgressStage;
                                       PercentDone: Byte; RedrawNow: Boolean; const R: TRect;
                                       const Msg: AnsiString; var Continue : Boolean);
    begin
      { Show progress of long image processing. }
      ...
    end;
     
    procedure ImageUnique(DimImg, QJpg: Integer);
     begin
      PictSrc:= TPicture.Create;
      PictSrc.LoadFromFile(DirSrc+ImgSrc);
     
      PictSrc.OnProgress:= PictProgress; // ça bloque ici
     
      ...
    A la compilation, sur la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PictSrc.OnProgress:= PictProgress;
    j'ai l'erreur suivante :
    maputil.pas(81,24) Error: Wrong number of parameters specified for call to "PictProgress"
    Je ne comprends pas où est mon erreur.

    Merci de votre aide.

    Pierre

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

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 937
    Billets dans le blog
    6
    Par défaut
    Soit il attend l'adresse : PictSrc.OnProgress:= @PictProgress; ; soit une procédure d'objet au lieu d'une procédure simple.
    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 !

  3. #3
    Membre Expert

    Homme Profil pro
    au repos
    Inscrit en
    Février 2014
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : Février 2014
    Messages : 429
    Par défaut
    Bonsoir,

    Je confirme ce que tourlourou dit.

    Ton message d'erreur vient de l'absence de @
    Mais tu auras une autre erreur, vu l'endroit où tu déclares ta procedure PictProgress.
    Elle doit être déclarée dans un objet, par exemple, dans la section private d'un TForm.

    Cordialement
    Thierry

  4. #4
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut
    Citation Envoyé par tourlourou Voir le message
    Soit il attend l'adresse : PictSrc.OnProgress:= @PictProgress; ; soit une procédure d'objet au lieu d'une procédure simple.
    Ce n'est pas PictSrc.OnProgress:= @PictProgress; , par contre, j'ai essayé différents méthodes d'écrire que c'est une procédure d'objets, mais à chaque fois j'ai une erreur de compilation du genre :

    maputil.pas(43,23) Error: overloaded identifier "PictProgress" isn't a function ou bien
    maputil.pas(45,83) Fatal: Syntax error, ";" expected but "OF" found.

    Je ne vois pas comment il faut écrire tout cela.

    Merci de votre aide.

    PIerre

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

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 937
    Billets dans le blog
    6
    Par défaut
    type TFPImgProgressEvent = procedure( Sender: TObject; Stage: TFPImgProgressStage; PercentDone: Byte; RedrawNow: Boolean; const R: TRect; const Msg: AnsiString; var Continue: Boolean ) of object;
    Donc il attend une méthode d'objet. Comme c'est un événement destiné à l'interface, il n'est pas illogique de déclarer la procédure qui doit lui être affectée comme méthode de la fiche principale, qui devra réagir aux événements de progression.
    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 !

  6. #6
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut
    Vous avez raison, il fallait que ma déclaration se fasse dans un objet : ça fonctionne.

    Quant au @, cela dépend du mode de compilation. Il le faut en mode {$mode objfpc}{$H+} mais pas en mode {$mode Delphi}{$H+}.

    Merci à vous.

    Question annexe : elle est où la balise codeinline ?

    Pierre

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

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 937
    Billets dans le blog
    6
    Par défaut
    pour la balise, elle n'est pas implémentée dans l'interface, mais fonctionne bien...
    comme le noparse qui permet d'ajouter des commentaires qui ne prendront pas la coloration syntaxique dans un code.
    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 !

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

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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