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

Langage Pascal Discussion :

[TP] Programmer un menu [Non suivi]


Sujet :

Langage Pascal

  1. #1
    H.H
    H.H est déconnecté
    Candidat au Club
    Inscrit en
    Janvier 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 6
    Points : 2
    Points
    2
    Par défaut [TP] Programmer un menu
    salut mes amis
    je suis débutant et je veux faire ça en pascal
    un menu par exemple
    menu1
    menu2
    menu3
    menu4
    et scroll avec les flèches de clavier entre les 4 menus et après appuyer sur le menu 1 par exemple s'affiche "vous êtes dans le menu1"
    merci

  2. #2
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    De rien !

    Et sinon, peux-tu nous montrer ce que tu as déjà essayé de faire, quelles sont les difficultées rencontrées, quelles recherches tu as fait, ... ?

    @++
    Règles du forum
    F.A.Q Pascal

    Pour me joindre (aucune question technique, merci)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    bonjour,
    je ne suis pas un specialiste du pascal mais je pense que c'est faisable, en utilisant l'unité crt, lire les touches du clavier, effacer l'ecran a chaque fois que la touche haut et bas du clavier est touché et afficher a coté de chaque menu un indicateur de choix (ca peut être le chr(16)). pour monter et descendre la fleche, tu peux faire un compteur i et selon la valeur du compteur s'affiche la fleche..
    apres avoir fait le choix, la valeur du compteur determinera le choix de l'utilisateur..

    corrigez moi svp si je suis faux!

  4. #4
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Non c'est juste
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  5. #5
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Points : 754
    Points
    754
    Par défaut
    EVITER le unit CRT!!! son initialisation est problematique avec pas mal de cartes graphiques!!!

    Il existe un kit de unit
    TurboProfessional
    qui gere TRES bien tout cela

    il gere de plus memoire haute, (paginee ou acces linéaire), fichiers de help, manipulation des interrupts, ...

    TPCRT a comparer à CRT
    1- supporte bien plus de materiel
    2- gere un grand nombre de fonction supplémentaire
    buffer claver, simuler keypressed, redeffinition couleurs, ...

    TPPICK permet de creer des menu deroulant en couleur sur le nombre de lignes/colonnes desirés, de definir des helps actifs en fonction de la gigne, ...


    Si le code DOS est devenu publique - à verifier - je pourrais le fournir.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    Salut,
    voici un exemple que j'ai fait rapidement.. tu peux optimiser le code et l'adapter à tes besoin..

    tu choisis dans le menu avec les fleches du clavier (haut et bas) ensuite tu comfirmes avec Entrer..

    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
    73
    74
    75
     
    program menu;
     
    uses crt;
     
    var
      a, b, c, d: Char;
      i: Integer;
     
    procedure init;
    begin
      a := ' ';
      b := ' ';
      c := ' ';
      d := ' ';
    end;
     
     
    begin
     
      clrscr;
      init;
      i := 0;
      Writeln(a, 'menu1');
      Writeln(b, 'menu2');
      Writeln(c, 'menu3');
      Writeln(d, 'menu4');
      repeat
     
        if keypressed then
        begin
          case readkey of
            #72:
            begin
              clrscr;
              i := i - 1;
            end;
            #80:
            begin
              clrscr;
              i := i + 1
            end;
          end;
          case i of
            1:
            begin
              init;
              a := Char(16);
            end;
            2:
            begin
              init;
              b := Char(16);
            end;
            3:
            begin
              init;
              c := Char(16);
            end;
            4:
            begin
              init;
              d := Char(16);
            end;
          end;
          clrscr;
          Writeln(a, 'menu1');
          Writeln(b, 'menu2');
          Writeln(c, 'menu3');
          Writeln(d, 'menu4');
        end;
     
      until readkey = #13;
      Writeln('vous avez choisi le menu : ', i)
    end.

  7. #7
    Membre éclairé

    Inscrit en
    Avril 2003
    Messages
    284
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 284
    Points : 773
    Points
    773
    Par défaut
    le meme genre un peu plus graphique :
    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
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    program menu;
     
    uses crt;
     
    var
      i, j: Integer;
      col : array[1..4] of byte;
     
     
    procedure writel(s: string; coloris : byte);
    begin
      textbackground(coloris);
      writeln(s);
      textbackground(0);
    end;
     
    procedure RefreshsubMenu;
    begin
     if i> 0 then begin
      gotoxy(1,2);
      Writel('  submenu1 ',col[1]);
      Writel('  submenu2 ',col[2]);
      Writel('  submenu3 ',col[3]);
      Writel('  submenu4 ',col[4]);
      gotoxy(2,i+1);
     end;
    end;
     
    Procedure showmenu;
    begin
     gotoxy(1,1);
     textbackground(1);
     write(' Mainmenu1 ');
     textbackground(0);
     write('| Quitter ');
     gotoxy(1,1);
     
    end;
     
    Procedure showmenu2;
    begin
     gotoxy(1,1);
     textbackground(0);
     write(' Mainmenu1 |');
     textbackground(1);
     write(' Quitter ');
     gotoxy(13,1);
     
    end;
     
    procedure ShowSubmenu;
    begin
     
      col[1] := 1;
      col[2] := 0;
      col[3] := 0;
      col[4] := 0;
      i := 1;
      clrscr;
      showmenu;
      RefreshsubMenu;
     
      while readkey <> #13 do begin
        if keypressed then
        begin
          case readkey of
            #72:
            begin
              clrscr;
              if i>0 then
                begin
                  col[i]:=0;
                  i := i - 1;
                  col[i]:=1;
                  if i=0 then break;
                end;
            end;
            #80:
            begin
              clrscr;
              if i<4 then
                begin
                  col[i]:=0;
                  i := i + 1;
                  col[i]:=1;
                end;
            end;
          end;
          clrscr;
          showmenu;
          RefreshsubMenu;
        end;
      end;
      clrscr;
      gotoxy(4,8);
      if (i<>0) and (j=1)then
      Writeln('vous avez choisi le menu : ', i);
      i := 0;
      j:=1;
      showmenu
    end;
     
    begin
    i:=0;
    j:=1;
    showmenu;
      repeat
        if keypressed then
        begin
          case readkey of
            #80:
            begin
              if i=0 then showsubmenu;
            end;
            #77:
            begin
              if j=1 then begin;
                clrscr;
                j:=2;
                i:=0;
                showmenu2;
              end;
            end;
            #75:
            begin
              if j=2 then begin
                j:=1;
                showmenu;
              end;
            end;
          end;
        end;
        until ((readkey = #13) and (j = 2));
      gotoxy(4,8);
      textbackground(0);
      Writeln('vous avez choisi le menu quitter, bye');
      readln;
    end.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    Salut,
    ben on lui laisse maintenant l'analyse des deux codes comme ca il apprend le principe

  9. #9
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Félicitations, comme ça, il n'a plus qu'à recopier, vous l'avez beaucoup aidé

    A quelqu'un qui a faim, vaut-il mieux lui donner un poisson, ou bien lui apprendre à pêcher ?

    Citation Envoyé par j.p.mignot
    EVITER le unit CRT!!! son initialisation est problematique avec pas mal de cartes graphiques!!!
    Pourriez-vous donner vos sources [d'information] s'il vous plait ? Pour le moment votre intervention passe plus pour du "on dit" et de la pub gratuite que pour une information valable...

    @++
    Règles du forum
    F.A.Q Pascal

    Pour me joindre (aucune question technique, merci)

Discussions similaires

  1. Programmer le menu contextuel de windows
    Par fred61 dans le forum C#
    Réponses: 0
    Dernier message: 13/12/2010, 13h28
  2. Récupérer les programmes du menu démarrer
    Par smyley dans le forum Windows
    Réponses: 2
    Dernier message: 07/07/2008, 13h18
  3. Réponses: 1
    Dernier message: 08/03/2008, 20h06
  4. programmer un menu en java
    Par rahma2007 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 15/04/2007, 11h01
  5. Programmation graphique : menu déroulant
    Par ivan33 dans le forum Pascal
    Réponses: 1
    Dernier message: 17/02/2007, 06h35

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