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

C++Builder Discussion :

Pthread et form [Débutant]


Sujet :

C++Builder

Vue hybride

parabole33 Pthread et form 28/12/2010, 11h29
kineton Salut, Un peu de code... 28/12/2010, 13h55
ShaiLeTroll Ne mets pas Application ou... 28/12/2010, 14h36
parabole33 Ok merci pour vos réponse . ... 28/12/2010, 17h43
parabole33 G fait ce code ... 29/12/2010, 13h57
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Par défaut Pthread et form
    bonjour ,

    Etant débutant , je cherche des infos sur les thread sur Borland .

    Actuellement , je cherche à afficher un dialogue de progression pendant un traitement lourd en arrière . J'ai essayé avec les thread . le dialogue s'affiche bien .

    Par contre en fermeture d'application , g une erreur " Handle de fenêtre non valide " .

    merci

    @ +

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 206
    Par défaut
    Salut,

    Un peu de code permettrait de pouvoir mieux t'aider.
    Sur quelle ligne se produit le plantage ?

  3. #3
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 079
    Par défaut
    Ne mets pas Application ou une autre Form comme Owner de la Fenêtre de Progression !
    Si c'est déjà fait, veille à ce que la création de l'objet ProgressForm et la libération soit dans le même thread, de même pour le Show et le Close\Hide
    Effectivement, Windows n'aime pas que l'on manipule des Handles d'un Thread à un autre quand ces Handles ne sont pas conçu pour cela, d'où l'OSError 1400
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #4
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Par défaut
    Ok merci pour vos réponse .

    Autrement comment on fait pour faire afficher un mini dialogue avec une TProgressiveBar et quelques TLabel durant le traitement en arrière ?

    Je n'arrive pas à trouver des exemples

    merci

  5. #5
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Par défaut
    Citation Envoyé par parabole33 Voir le message
    Ok merci pour vos réponse .

    Autrement comment on fait pour faire afficher un mini dialogue avec une TProgressiveBar et quelques TLabel durant le traitement en arrière ?

    Je n'arrive pas à trouver des exemples

    merci
    G fait ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     ProgressBar = new TProgressBar(Form2);
      //ProgressBar->Parent=Form2 ; <-- Erreur  l'OSError 1400
     ProgressBar->Visible = true ;
     ProgressBar->Position=50 ;
    Pour les label , cela fonctionne . Pour la bar , pas visible et erreur

    aie .... help !

  6. #6
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 079
    Par défaut
    Form2 est créé dans le thread principal je suppose !
    ProgressBar est créé dans le thread secondaire ?

    Encore une fois, je me répète ne mélange pas les Handles entre les différents Threads !

    Laisse la ProgressBar en fsStayOnTop (et BringToFront) sans Parent

    Ton traitement lourd, c'est une boucle ou un traitement que tu lances sans pour avoir de contrôle de dessus (genre un autre exe) ?

    Si boucle, utilise les évènements, fait tes propres Event de progression qui utilise Synchronize, voir comment est codé OnClick, DoClick ainsi que OnWrite et DoWrite utilisé en Synchronise dans ScktComp (.hpp et .pas), c'est du code VCL mais cela se comprend pour le refaire en C++

    Si traitement bloquant, lance le dans le thread et utiliser un Timer pour simuler un semblant d'activité !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

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

Discussions similaires

  1. Réponses: 87
    Dernier message: 06/07/2011, 15h33
  2. Héritage entre Forms
    Par BarBal dans le forum Composants VCL
    Réponses: 7
    Dernier message: 29/08/2002, 17h44
  3. [Kylix] SIGSEGV 11 - creation form
    Par pram dans le forum EDI
    Réponses: 1
    Dernier message: 29/08/2002, 15h24
  4. [FORMS] Chemin des icones (intégré FAQ 150 QR)
    Par jerome62 dans le forum Forms
    Réponses: 2
    Dernier message: 30/07/2002, 08h32
  5. Form principale non visible au demarrage!!!!
    Par toufou dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/07/2002, 21h49

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