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

 Delphi Discussion :

Erreur Types incompatibles : Les listes de paramètres diffèrent Thread


Sujet :

Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Juin 2012
    Messages : 142
    Points : 80
    Points
    80
    Par défaut Erreur Types incompatibles : Les listes de paramètres diffèrent Thread
    Bonjour,

    J'ai une erreur : Types incompatibles : Les listes de paramètres diffèrent, je n'arrive pas à capté d’où peux venir cette erreur.

    Thread
    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
    34
    35
    36
    unit UThread;
     
    interface
    uses
      System.SysUtils, System.Classes;
     
    type
     
      TAntiFlood = class(TThread)
     
      constructor Create(ACreateSuspended: Boolean; Event: TNotifyEvent);
     
      procedure Execute; override;
     
    end;
     
    implementation
     
    constructor TAntiFlood.Create(ACreateSuspended: Boolean; Event: TNotifyEvent);
    begin
      FreeOnTerminate := True;
      OnTerminate := Event;
     
      inherited Create(ACreateSuspended);
    end;
     
    procedure TAntiFlood.Execute;
    begin
      while not Terminated do
       begin
         Sleep(2000);
         Terminate;
       end;
    end;
     
    end.
    Form
    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
    34
    35
    36
    37
    38
    unit Unit1;
     
    interface
     
    uses
      Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
      Vcl.Controls, Vcl.Forms, Vcl.Dialogs, UThread, Vcl.StdCtrls;
     
    type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Déclarations privées }
         AntiFlood: TAntiFlood;
     
         procedure NoFlood;
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.NoFlood;
    begin
      AntiFlood := nil;
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      if Assigned(AntiFLood) then Exit;
      AntiFlood := TAntiFlood.Create(False, NoFlood); // Types incompatibles : Les listes de paramètres diffèrent (NoFlood)
    end;
    Merci
    Il n'existe guère de problèmes sans solution, et parfois l'absence de solution décourage le problème

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Juin 2012
    Messages : 142
    Points : 80
    Points
    80
    Par défaut
    C'est la fatigue

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm1.NoFlood(Sender: TObject);
    begin
      AntiFlood := nil;
    end;
    Il n'existe guère de problèmes sans solution, et parfois l'absence de solution décourage le problème

  3. #3
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2003
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2003
    Messages : 167
    Points : 208
    Points
    208
    Par défaut
    Bonjour Gregorv666

    erreur logique vue que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TNotifyEvent = procedure(Sender: TObject) of object;
    Donc dans le code de la form
    il faut déclarer la procédure noflood comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private
        { Déclarations privées }
         AntiFlood: TAntiFlood;
     
         procedure NoFlood(Sender: TObject);
    et l’écrire comme suit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure TForm1.NoFlood(Sender: TObject);
    begin
      AntiFlood := nil;
    end;
    cela devrait mieux fonctionner ainsi

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 14/03/2013, 23h14
  2. Message d'erreur types incompatibles
    Par juju1988 dans le forum Langage
    Réponses: 3
    Dernier message: 29/06/2011, 10h35
  3. Réponses: 17
    Dernier message: 06/03/2007, 07h43
  4. Erreur "type incompatible" sur une fonction
    Par Ricardo_Tubbs dans le forum ASP
    Réponses: 1
    Dernier message: 19/07/2006, 11h59
  5. erreur : type incompatible
    Par keibenoit dans le forum Access
    Réponses: 3
    Dernier message: 30/05/2006, 17h39

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