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 :

Comment rendre la main au programme?


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Jayceblaster
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 420
    Par défaut Comment rendre la main au programme?
    Bonjour.

    Je vous explique mon soucis...

    J'ai récupéré sur le web un bout de code qui permet de générer une matrice (a la maniere du film) mais lorsque je lance ce code je n'ai plus la main pour faire d'autre opération...

    Comment faire pour rendre la main au logiciel tout en continuant a faire touner ma matrice?? (j'ai entendu parler de thread mais je trouve ca pas tres clair si quelqu'un peu m'eclaircir)

    merci d'avance

  2. #2
    Membre éprouvé
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Par défaut
    Les threads permettent de lancer plusieurs traitements en parallèles.

    Dans ton cas, ce qu'il se passe peut-être, c'est que ton traitemenet prend tellement de ressources, qu'il ne réagit plus aux évenement (click sur bouton par exemple).

    Ce que tu peux faire, c'est a la fin d'un tour de boucle (plus le tour sera élémentaire, plus ca risque de ralentir l'ensemble de ton traitement), tu peux essayer de faire un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ProcessMessages
    ceci permet de traiter la file d'attente des évenements Windows, avant d'entamer ton second tour.
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  3. #3
    Membre éclairé Avatar de Jayceblaster
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 420
    Par défaut
    TicTacToc a ecris:
    tu peux essayer de faire un:
    Application.ProcessMessages
    J'avais deja essayé mais ca ne marche pas

  4. #4
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Par défaut

    si ca ne te gêne pas, fais voir le code, on pourra t'aider plus facilement

  5. #5
    Membre éclairé Avatar de Jayceblaster
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 420
    Par défaut
    ok voila le code:
    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
     
      procedure TForm1.FormPaint(Sender: TObject); 
    var x,y,r,l:integer; 
    begin 
    randomize; 
    canvas.Font.Name:='Verdana'; 
    canvas.Font.Style:=[fsBold]; 
    for r:=1 to 400 do 
            begin 
            x:=random(20); 
            for y:=1 to random(20) do 
                    begin 
                    sleep(1); 
                    canvas.Font.Color:=RGB(0,MulDiv(y,255,20),0); 
                    canvas.TextOut(x*15,y*15,chr(random(65)+65)); 
                    l:=y; 
                    end; 
                    canvas.Font.Color:=clWhite; 
                    canvas.TextOut(x*15,l*15,chr(random(65)+65)); 
            end; 
    end;
    voila....

  6. #6
    Membre éclairé Avatar de Jayceblaster
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 420
    Par défaut
    Ah ben si le:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      Application.ProcessMessages
    marche c'est simplement que je l'avais pas mis dans le for (pfffff)

    mais puisque vous avez le code a quel endrois je peux préciser les caractere a générer ( par exemple que les lettres 'D''E''E''L''P''H''I')...
    C'est dans le random????

Discussions similaires

  1. Réponses: 15
    Dernier message: 30/05/2009, 13h53
  2. Comment rendre les programmes compatibles sur Vista ?
    Par wa3dbk dans le forum Windows Vista
    Réponses: 1
    Dernier message: 06/10/2007, 16h58
  3. comment rendre la main au system d'exploitation?
    Par Mickey.jet dans le forum Windows Forms
    Réponses: 1
    Dernier message: 11/07/2007, 16h02
  4. Comment rendre transparent le tour d un icone
    Par NeoRonin dans le forum Composants VCL
    Réponses: 7
    Dernier message: 03/03/2003, 01h40
  5. Vous gerez comment les options d'un programme?
    Par n0n0 dans le forum C++Builder
    Réponses: 5
    Dernier message: 17/05/2002, 13h21

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