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

Codes sources à télécharger Delphi Discussion :

Application console en couleur, et plus


Sujet :

Codes sources à télécharger Delphi

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 934
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 934
    Par défaut Application console en couleur, et plus
    Salut à tous !

    J'avais dernièrement besoin de lancer des tâches et pour plus de clarté envie de mettre un retour couleur dans la console.
    Je me suis donc amusé à coder une petite unité à cette fin, et de fil en aiguille c'est devenu un truc assez sympa, enfin je trouve

    Outre la couleur, les tâches peuvent être mono ou multithreads. Incluse également la gestion des entrées claviers.

    Démo :
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    program Project1;
     
    {$APPTYPE CONSOLE}
     
    {$R *.res}
     
    uses
      System.SysUtils, System.Threading, System.SyncObjs, AppConsole;
     
    const
      Restart :TSelectOption = (Text:'Recommencer Parallèle ? [O/N]'; Options:['O', 'N']; Color:Console.White);
     
    begin
      Randomize;
     
      //--------------------------------------------------------------------------------------------------
      // Séquentiel
      Console.WriteHeader('Exécution séquentielle');
     
      Console.Write('Test1:', Console.Purple);
      Console.WriteTask('Execution Sync 1',
                        function :boolean
                        begin
                          Console.WriteLn('Ceci est un avertissement', Console.DarkYellow);
                          Result := TRUE;
                        end);
     
      Console.Write('Test2:', Console.Purple);
      Console.WriteTask('Execution Sync 2',
                        function :boolean
                        begin
                          Console.WriteLn('Ceci est une erreur', Console.Red);
                          Result := FALSE;
                        end);
     
      //--------------------------------------------------------------------------------------------------
      // Parallèle
      while True do
      begin
        Console.WriteHeader('Exécution Parallèle');
     
        var Error := 0;
     
        TParallel.For(1, 10,
                      procedure(aID :integer)
                      begin
                        if not Console.WriteTask('Execution du job N°' +aID.ToString,
                                                 function :boolean
                                                 begin
                                                   // Travail
                                                   Sleep(Random(10) *1000);
     
                                                   // Erreur ?
                                                   Result := Random(15) <> 0;
                                                 end) then TInterlocked.Increment(Error);
                      end);
     
        WriteLn;
     
        if Error > 0
        then Console.WriteLn('Exécution parallèle terminée avec erreur', Console.Red)
        else Console.WriteLn('Exécution parallèle terminée sans erreur', Console.Green);
     
        WriteLn;
        Console.WriteRule;
        WriteLn;
     
        if Console.WaitInput(Restart) = 'N' then Exit;
     
        Console.Clear;
      end;
    end.
    Et le résultat :

    Nom : AppConole.jpg
Affichages : 449
Taille : 95,8 Ko

    Limitations :
    Gardez à l'esprit que seules les lignes visibles à l'écran auront leur status mis à jour par WriteTask. En effet, la première ligne visible à toujours l'indice 0 et il n'est pas possible d'en utiliser des négatifs.
    Même chose pour Clear qui n'effacera que la zone visible.

    Sur ce, amusez-vous bien !
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Couleur Application Console
    Par Gregory666 dans le forum Débuter
    Réponses: 1
    Dernier message: 11/10/2016, 16h06
  2. Couleur application console Delphi6
    Par Gunter_D dans le forum Langage
    Réponses: 7
    Dernier message: 03/04/2012, 17h32
  3. couleurs texte application console
    Par Jahjouh dans le forum MFC
    Réponses: 3
    Dernier message: 02/01/2006, 14h06
  4. [Kylix] Kylix 3 et Applications console
    Par deniscm dans le forum EDI
    Réponses: 2
    Dernier message: 14/01/2003, 13h37
  5. [Kylix] application console avec kylix 3 ?
    Par Hakim dans le forum EDI
    Réponses: 4
    Dernier message: 15/11/2002, 22h45

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