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

Autres IDE Pascal Discussion :

Utilisation de l'unité WinCRT [Virtual Pascal]


Sujet :

Autres IDE Pascal

  1. #1
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut Utilisation de l'unité WinCRT
    Bonjour !

    J'ai rencontré un problème en essayant l'unité WinCRT de Virtual Pascal.

    Voici mon 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
     
    (* Virtual Pascal 2.1 *)
     
    program testWinCrt;
     
    uses
      WinCrt, Strings, Windows;
     
    begin
      CheckBreak := True;
      //ScreenSize.x := 128;
      StrCopy(WindowTitle, 'D'#233'monstration de WinCRT');
      InitWinCrt;
      WriteBuf('Bonjour !'#10#13, 11);
      //ReadKey;
      //repeat until KeyPressed;
      DoneWinCrt;
    end.
    La fenêtre s'ouvre et le texte s'affiche, mais ni Readkey ni KeyPressed ne fonctionnent. L'instruction ScreenSize.x := est également sans effet.

    Autre problème : je ne parviens pas à changer le nombre de lignes de l'éditeur, ni en passant par les options de l'IDE, ni par le fichier de commande trouvé dans le tutoriel d'Alcatîz. Est-ce encore un coup de Windows 7 ?

    Dernière question. J'ai voulu essayer de compiler un programme à partir de Geany. J'obtiens ce message d'erreur : "unit system.vpi not found". Pourtant, le même programme se compile sans erreur à partir de l'IDE. Auriez-vous des idées sur le sujet ?
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  2. #2
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Par contre, je m'aperçois qu'en passant par les propriétés du raccourci vers Vp.exe, on peut choisir (je parle toujours de Windows 7) les dimensions de l'écran, la taille de la police et la police elle-même. Je n'avais jamais constaté cela auparavant.

    Et là on obtient je trouve de très bonnes conditions de travail.
    Images attachées Images attachées  
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  3. #3
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 938
    Points : 59 416
    Points
    59 416
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    Je n'ai encore jamais essayé d'installer Virtual Pascal sur Windows 7 ; je vais voir d'où peuvent venir les différents problèmes. Je te tiens au courant.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  4. #4
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par Alcatîz Voir le message
    Bonjour,

    Je n'ai encore jamais essayé d'installer Virtual Pascal sur Windows 7 ; je vais voir d'où peuvent venir les différents problèmes. Je te tiens au courant.
    Merci, Alcatîz, c'est gentil. Je suis plongé depuis hier dans ton tutoriel où j'apprends des tas de choses.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  5. #5
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 938
    Points : 59 416
    Points
    59 416
    Billets dans le blog
    2
    Par défaut
    Voilà, j'ai installé VP sur Windows 7. J'en ai d'ailleurs profité pour faire un maximum de screenshots pour un tutoriel d'installation.

    Prenons les problèmes dans le désordre :
    Citation Envoyé par Roland Chastain Voir le message
    je ne parviens pas à changer le nombre de lignes de l'éditeur, ni en passant par les options de l'IDE, ni par le fichier de commande trouvé dans le tutoriel d'Alcatîz. Est-ce encore un coup de Windows 7 ?
    Pour modifier le nombre de lignes et de colonnes de l'éditeur, il faut procéder en deux étapes :
    - Démarrer l'IDE, aller dans le menu Options / Environment / Preferences, cocher l'option Keep original et fermer l'IDE.
    - Editer les propriétés du raccourci, dans l'onglet Disposition, et augmenter les valeurs de taille de la mémoire tampon de l'écran et de taille de fenêtre. J'ai personnellement configuré mon éditeur en 128 colonnes sur 80 lignes, ce qui est confortable selon mon goût.

    Par contre, ce qui me fâche c'est l'intégration de l'éditeur avec le système : avec les autres versions de Windows, l'IDE permet par exemple des copier-coller avec le presse-papier ; Windows 7 ne le permet pas. De même, les combinaisons de touches de l'éditeur sont interceptées par le système, ce qui rend inopérantes certaines d'entre elles et oblige de travailler à la souris. Tout cela est bien sûr lié au support de plus en plus ténu du mode console par Windows.

    Citation Envoyé par Roland Chastain Voir le message
    J'ai rencontré un problème en essayant l'unité WinCRT de Virtual Pascal.
    La fenêtre s'ouvre et le texte s'affiche, mais ni Readkey ni KeyPressed ne fonctionnent. L'instruction ScreenSize.x := est également sans effet.
    Je ne constate pas ce problème. Un détail : dans les options de l'éditeur de liens, il faut bien cocher qu'il s'agit d'une application GUI (et non compatible GUI). En effet, une fenêtre WinCrt est une véritable fenêtre Windows.

    Citation Envoyé par Roland Chastain Voir le message
    Dernière question. J'ai voulu essayer de compiler un programme à partir de Geany. J'obtiens ce message d'erreur : "unit system.vpi not found". Pourtant, le même programme se compile sans erreur à partir de l'IDE. Auriez-vous des idées sur le sujet ?
    Pour ce qui est de Geany, je ne trouve pas de solution mais je suis éminemment intéressé vu les limitations de l'éditeur dues à Windows 7 par rapport aux versions précédentes. Le problème est identique sous Windows et sous Linux, tant en ligne de commande directe qu'avec Geany. J'ai essayé de modifier le PATH, d'inclure le fichier de configuration vpo dans la commande, etc, mais rien à faire. Je vais bien sûr encore chercher.

    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  6. #6
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 938
    Points : 59 416
    Points
    59 416
    Billets dans le blog
    2
    Par défaut
    J'ai trouvé pour le dernier problème !

    Si les répertoires sont correctement configurés dans l'IDE natif, il faut faire référence au fichier de configuration vp.vpo dans la ligne de commande. Dans Geany, il faut surtout que le dossier de travail pointe vers le dossier où se trouve le compilateur :
    Attention, pas d'espace après le -V sinon cela ne fonctionne pas !

    Pour avoir un build complet, il faut ajouter l'option -B avant le -V.

    Tant qu'à faire, pour ceux qui sont sous Linux, il est possible de rajouter à Geany des commandes pour la conversion au format ELF de l'exécutable produit par le compilateur et pour le rendre exécutable in fine :
    Pour résumer, sous Linux, si Virtual Pascal est installé dans le répertoire /home/bibi/vp21 :
    • Compilation :
      • Commande : ./vpc -Vvp.vpo "%d/%f"
      • Dossier de travail : /home/bibi/vp21/bin.lnx
    • Reconstruction :
      • Commande : ./vpc -B -Vvp.vpo "%d/%f"
      • Dossier de travail : /home/bibi/vp21/bin.lnx
    • Conversion au format ELF :
      • Commande : ./pe2elf -t:Linux "../out.lnx/%e.exe"
      • Dossier de travail : /home/bibi/vp21/bin.lnx
    • Attribut exécutable :
      • Commande : chmod +x "%e"
      • Dossier de travail : /home/bibi/vp21/out.lnx

    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  7. #7
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par Alcatîz Voir le message
    Je ne constate pas ce problème. Un détail : dans les options de l'éditeur de liens, il faut bien cocher qu'il s'agit d'une application GUI (et non compatible GUI). En effet, une fenêtre WinCrt est une véritable fenêtre Windows.
    C'était ça. Génial !

    Citation Envoyé par Alcatîz Voir le message
    Pour modifier le nombre de lignes et de colonnes de l'éditeur, il faut procéder en deux étapes :
    - Démarrer l'IDE, aller dans le menu Options / Environment / Preferences, cocher l'option Keep original et fermer l'IDE.
    - Editer les propriétés du raccourci, dans l'onglet Disposition, et augmenter les valeurs de taille de la mémoire tampon de l'écran et de taille de fenêtre. J'ai personnellement configuré mon éditeur en 128 colonnes sur 80 lignes, ce qui est confortable selon mon goût.
    Oui, ça marche.

    Citation Envoyé par Alcatîz Voir le message
    Pour ce qui est de Geany, je ne trouve pas de solution mais je suis éminemment intéressé vu les limitations de l'éditeur dues à Windows 7 par rapport aux versions précédentes.
    Je vais continuer à chercher aussi de mon côté.

    Pour l'essentiel (l'utilisation de WinCrt) la discussion est résolue. L'unité est parfaitement utilisable sous Windows 7.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  8. #8
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par Alcatîz Voir le message
    J'ai trouvé pour le dernier problème !
    Génial ! Je vais essayer tout de suite.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  9. #9
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Le tandem Geany-Virtual Pascal fonctionne parfaitement et fait un bel outil de travail.

    On peut y adjoindre l'aide de Virtual Pascal au format CHM.

    Quant à l'unité WinCRT, elle est bien pratique : elle permet d'ouvrir une "vraie" fenêtre avec les fonctions de la console.

    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
     
    (*  Virtual Pascal 2.1  *)
     
    (*  Simple fenêtre avec entrée et sortie *)
     
    program exemple;
     
    uses
      winCrt, sysUtils;
     
    var
      s: string;
      i: smallWord;
     
    begin
      checkBreak := true;
      screenSize.x := 40;
      screenSize.y := 20;
      strCopy(windowTitle, 'Fen'#234'tre WinCrt');
      initWinCrt;
      writeLn(timeToStr(time)+#10#13);
      writeLn('Quel est votre nom ?');
      readLn(s);
      writeLn('Bonjour '+ s +' !');
      writeLn('Entrez un nombre !');
      readLn(i);
      writeLn('Le double de '+ intToStr(i) + ' est '+ intToStr(2*i) +'.');
      writeLn('Pressez une touche !');
      readKey;
      doneWinCrt;
    end.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  10. #10
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut Lecture et écriture de fichier texte
    Voici un autre petit programme.

    Le programme ouvre un fichier texte (ci-joint), récupère des données et fabrique une unité Pascal contenant ces données.

    L'opération est chronométrée au moyen d'une fonction empruntée à un exemple d'Alcatîz.

    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
     
    (* Virtual Pascal 2.1 *)
     
    program Exemple;
     
    (* Lit le fichier estr-tbl.txt et le convertit en unité Easter.pas *)
     
    uses
      SysUtils, WinCRT, Windows;
     
    var
      Easter : array[1900..2199] of string[5];
      HrDebut, HrFin : tSystemTime;
     
    procedure ReadEasterTable;
    var
      f: text;
      s: string;
      i, j: smallInt;
    begin
      Assign(f, 'estr-tbl.txt');
      Reset(f);
      i := 1900;
      while not EOF(f) do
      begin
        readLn(f, s);
        if (Copy(s, 2, 1) = '1') or (Copy(s, 2, 1) = '2') then
        begin
          for j := 0 to 9 do
          begin
            Easter[i + j] := Copy(s, 8 + j * 6, 5);
          end;
          inc(i, 10);
        end;
      end;
      Close(f);
    end;
     
    procedure MakeUnit;
    var
      f: text;
      s: string;
      i: smallInt;
    begin
      assign(f, 'Easter.pas');
      rewrite(f);
      writeLn(f); writeLn(f, 'unit Easter;');
      writeLn(f); writeLn(f, 'interface');
      writeLn(f); writeLn(f, 'const');
      writeLn(f, '  DateOfEaster : array [1900..2199] of string[5] = (');
      for i := 1900 to 2198 do
      begin
        if i mod 10 = 0 then write(f, '  ');
        write(f, '''' + Easter[i] + '''' + ',');
        if ((i + 1) mod 10 = 0) then writeLn(f);
      end;
      writeLn(f, '''' + Easter[2199] + '''' + ');');
      writeLn(f); writeLn(f, 'implementation');
      writeLn(f); writeLn(f, 'end.');
      close(f);
    end;
     
    function TEMPS_ECOULE (
                          HrDebut, HrFin : tSystemTime
                         ) : Cardinal;
    begin
      TEMPS_ECOULE := Cardinal(HrFin.wHour) * 3600000 +
                      Cardinal(HrFin.wMinute) * 60000 +
                      Cardinal(HrFin.wSecond) * 1000 +
                      Cardinal(HrFin.wMilliseconds) -
                      Cardinal(HrDebut.wHour) * 3600000 -
                      Cardinal(HrDebut.wMinute) * 60000 -
                      Cardinal(HrDebut.wSecond) * 1000 -
                      Cardinal(HrDebut.wMilliseconds);
    end;
     
    begin
      InitWinCRT;
      GetLocalTime(HrDebut);
      ReadEasterTable;
      MakeUnit;
      GetLocalTime(HrFin);
      WriteLn('Chrono=', TEMPS_ECOULE(HrDebut,HrFin), ' ms');
      ReadLn;
      DoneWinCRT;
    end.
    Fichiers attachés Fichiers attachés
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

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

Discussions similaires

  1. Utilisation memo dans unité
    Par Maglight dans le forum Langage
    Réponses: 7
    Dernier message: 02/04/2009, 21h09
  2. [Turbo Pascal] Unité wincrt.tpu
    Par Bibou_ini dans le forum Turbo Pascal
    Réponses: 1
    Dernier message: 18/05/2008, 05h13
  3. Réponses: 2
    Dernier message: 31/10/2007, 08h48
  4. [TP] Problème d'utilisation d'une unité
    Par altruist dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 24/02/2006, 16h38
  5. [ADO] utilisation de l'unité adodb sous delphi 2005 PE
    Par dams580 dans le forum Bases de données
    Réponses: 8
    Dernier message: 17/02/2006, 09h40

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