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

Composants VCL Delphi Discussion :

Problème avec un Timer


Sujet :

Composants VCL Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    octobre 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2005
    Messages : 52
    Points : 61
    Points
    61
    Par défaut Problème avec un Timer
    Salut à tous

    VOila j'utilise la procedure suivante :

    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.Play(Cursor : longInt);
     Var
     i,SizeBegin,ImgSize: longInt;
     jpg: tjpegimage;
     begin
     FSS:=TFIleStream.Create(FichEd.text,fmOpenRead);
     MS:=TMemoryStream.create;
     jpg:= tjpegimage.Create;
     SizeBegin:=0;
     For i:=0 to Cursor do
     begin
     SizeBegin:=SizeBegin+StrToInt(InfoList.Strings[Cursor]);
     end;
     ImgSize:=StrToInt(InfoList.Strings[Cursor+1]);
     Try
     FSS.Position:=SizeBegin;
     MS.CopyFrom(FSS,ImgSize);
     MS.Seek(0,SoFromBeginning);
     jpg.LoadFromStream(MS);
     Visual.Picture.Bitmap.Assign(jpg);
     Finally
     jpg.free;
     FSS.Free;
     MS.Free;
     end;
     end;
    InfoList est une stringList
    Cursor est un integer.
    Visual est un TImage.
    Les streams sont déclarées comme des variables globales

    La procedure ne plante pas. Sauf si j'utilise un Timer pour l'appeler. Je ne comprends pas pk. Si quelqu'un a une idée ??

    Merci A+

  2. #2
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    mars 2003
    Messages
    3 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : mars 2003
    Messages : 3 785
    Points : 5 888
    Points
    5 888
    Par défaut
    La proc plante par le Timer.... c'est à dire ?

    Le Timer est réglé sur combien ?
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    octobre 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2005
    Messages : 52
    Points : 61
    Points
    61
    Par défaut
    Salut

    L'intervalle du timer n'intervient pas dans la mesure ou j'ai fais un test avc 50ms et un autre avec 2000ms et cela ne change rien.

    Au niveau de l'erreur : l'apparition de la première image se passe normalement. C'est lors du second appel que le probleme a lieu. Il s'agit d'un probleme lié aux flux normalement. Mais je ne comprends pas pk dans la mesure ou je les libère

    Merci

  4. #4
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2006
    Messages : 5 993
    Points : 7 901
    Points
    7 901
    Par défaut
    Bonjour,

    Si ce n'est pas le cas, mettre au début et à la fin de l'event timer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    begin
    timer1.enabled:=false ;
    ...
    timer1.enabled:=true ;
    end ;
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    octobre 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2005
    Messages : 52
    Points : 61
    Points
    61
    Par défaut
    Re,

    Jeveux bien mettre timer1.enabled:=false puis true mais je ne comprends pas ce que cela va changer

    A+

  6. #6
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2006
    Messages : 5 993
    Points : 7 901
    Points
    7 901
    Par défaut
    Jeveux bien mettre timer1.enabled:=false puis true mais je ne comprends pas ce que cela va changer
    Ca évite les empilements d'événements et (à vérifier si encore vrai depuis tests Delphi 1) des executions simultanées de 2 events dans certains cas.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  7. #7
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    décembre 2003
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : décembre 2003
    Messages : 1 876
    Points : 2 610
    Points
    2 610
    Par défaut
    pourqoi crée (les stream et le jpeg) et les détruire dans la meme procedure si elle sont globale
    crée les dans oncréeat et les détrure dans ondestroy de la form
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    septembre 2004
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : septembre 2004
    Messages : 108
    Points : 89
    Points
    89
    Par défaut
    Bonjour,
    Quelle est l'erreur exactement et sur quelle ligne si ca plante, stp.

Discussions similaires

  1. Problème avec un timer
    Par tchoimars dans le forum Windows Forms
    Réponses: 1
    Dernier message: 03/03/2008, 17h33
  2. [Problème avec les Timers]
    Par ARachid dans le forum MFC
    Réponses: 4
    Dernier message: 11/05/2007, 18h47
  3. Problème avec les timers
    Par Mouse Slider dans le forum SDL
    Réponses: 5
    Dernier message: 22/08/2006, 09h34
  4. [Débutant]Problème avec un timer
    Par Fabouney dans le forum C
    Réponses: 10
    Dernier message: 10/08/2006, 19h25
  5. [Débutant]Problème avec les timers
    Par mickael777 dans le forum MFC
    Réponses: 1
    Dernier message: 11/04/2005, 11h00

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