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 Delphi Discussion :

Delphi7 - Application Console - Recherche Pour D7 de l'analogue du GotoXY de BP7


Sujet :

Langage Delphi

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 10
    Points : 1
    Points
    1
    Par défaut Delphi7 - Application Console - Recherche Pour D7 de l'analogue du GotoXY de BP7
    1. avec BP7 dans une applcation on pouvait positionner le curseur sur l'écran
    vu comme une page de texte de 80 colonnes et de 25 lignes

    USES CRT;
    BEGIN
    GOTOXY(20, 10); (* positionne le curseur colonne 20 et ligne 10 *)
    Write('A'); (* écrit A à cette place *)
    Etc.
    END.

    2. avec D7, GotoXY a une autre signification : il s'agit de semble-t-il
    de se positionner dans un graphique. (Les données de la procédure ne sont
    pas de type Entier mais DOUBLE).

    3. Pour avoir l'analogue avec D7 de ce qui existait avec BP7 il y a rien d'évident.

    SetConsoleCursorPosition semble être une solution

    Mais trouver dans ces longues unités les seules lignes utiles pour utiliser
    SetConsoleCursorPosition n'est pas facile.


    4. Pourquoi vouloir positionner le curseur sur la console :

    Certains de mes programmes BP7 construisent sous forme texte
    (Police Terminal) des dessins de problèmes de pentaminos

    Par exemple : les 3940 solutions des 12 pentacubes dans un boite 4x5x3)
    Avec un processeur à 2Ghz, l'exécution dure environ 15 minutes
    (malgré les séquences critiques écrites en assembleur)

    Pendant les quelques sept milliards d'essais, le programme affiche à la console
    le dessin de chaque solution trouvée; (fait avec les 11 fragments d'encadrés
    de la police Terminal) plus quelques informations texte.
    Cela fait patienter et montre que la programme à l'air de fonctionner.
    Ce qui avait été utile pour la mise au point.

    Un résultat se trouve ici :
    https://www.flickr.com/photos/141992...7720301614861/
    -------------------------------------------------------------------------------------------------------------------
    Message précédent pas assez précis et équivoque

    L'aide de Delphi7 montre GotoXY dans l'unité RpBase.


    Comment déclarer avec précision cette procédure pour qu'elle soit reconnue ?
    (Utilisation uniquement dans une application Console)

    Cela pour convertir des programmes BP7 qui effectuent des dessins de ... pentaminos
    sous forme de textes évolutifs, utilisant les 11 fragments d'encadrés de la police Terminal.
    (les "carrés" obtenus font 18 pixels de haut et 20 pixels de large)

    L.M.

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 694
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 694
    Points : 13 130
    Points
    13 130
    Par défaut
    Ce sera un SetConsoleCursorPosition avant le Write.

    Tu peux t'inspirer (voire utiliser ) cette unité.


    EDIT:
    Ah oui D7. seulement t'en inspirer alors...

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Sinon l'API Windows SetConsoleCursorPosition fait surement quelque chose de similaire, voir le travail fait par Andnotor : Application console en couleur, et plus, c'est un Delphi plus récent mais tu peux adapter une autre version ici qui est un peu plus proche de D7

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure GotoXY(const AX, AY: SHORT);
    var
      CursorCoord: _COORD;
    begin
      CursorCoord.X := AX;
      CursorCoord.Y := AY;
     
      SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), CursorCoord);
    end;
    EDIT : Grillé le temps de retrouver le message !

    EDIT 2 : RpBase c'est Rave Report ! Non ? Donc pas grand rapport avec la Console mais plutot l'impression
    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
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    Ce sera un SetConsoleCursorPosition avant le Write.

    Tu peux t'inspirer (voire utiliser ) cette unité.


    EDIT:
    Ah oui D7. seulement t'en inspirer alors...

    Merci mais ce n'est pas assez précis pour moi.
    Mon message initial a été modifié et précisé.
    Le titre aussi a été modifié.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Sinon l'API Windows SetConsoleCursorPosition fait surement quelque chose de similaire, voir le travail fait par Andnotor : Application console en couleur, et plus, c'est un Delphi plus récent mais tu peux adapter une autre version ici qui est un peu plus proche de D7

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure GotoXY(const AX, AY: SHORT);
    var
      CursorCoord: _COORD;
    begin
      CursorCoord.X := AX;
      CursorCoord.Y := AY;
     
      SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), CursorCoord);
    end;
    EDIT : Grillé le temps de retrouver le message !

    EDIT 2 : RpBase c'est Rave Report ! Non ? Donc pas grand rapport avec la Console mais plutot l'impression

    Merci
    Je vais essayer d'extraire la partie utile de "unit Ext.Winapi.Console;"
    (une autre version ici qui est un peu plus proche de D7)

    Mon message initial a été modifié et précisé.
    Le titre a été aussi précisé

  6. #6
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Votre image montre un dessin et pas du tout un affichage dans la console texte.
    Pourquoi ne pas passer en FMX et en mode Graphique avec un Delphi plus récent, cela gère juste des FLOAT pour les positions, en plus vous pourriez expérimenter la 3D pour une représentation de vos Pentaminos.

    Delphi 7 à 20 ans, c'est un peu dommage de se limiter à ça


    SetConsoleCursorPosition c'est une fonction dans Windows.pas, il n'y a rien de plus à ajouter, voir le wrapper GotoXY fourni ci-dessus qui semble assez trivial et doit parfaitement s'insérer dans votre fragment de code si vous l'adapter à la RTL de Delphi 7.


    Pourquoi ne pas plutôt montrer votre code actuel que l'on puisse vous aider à le traduire car votre question dans sa forme actuelle biaise et limite totalement la discussion.
    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

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 10
    Points : 1
    Points
    1
    Par défaut Positionner le curseur dans la Console
    Citation Envoyé par ShaiLeTroll Voir le message
    Votre image montre un dessin et pas du tout un affichage dans la console texte.
    Pourquoi ne pas passer en FMX et en mode Graphique avec un Delphi plus récent, cela gère juste des FLOAT pour les positions, en plus vous pourriez expérimenter la 3D pour une représentation de vos Pentaminos.

    Delphi 7 à 20 ans, c'est un peu dommage de se limiter à ça


    SetConsoleCursorPosition c'est une fonction dans Windows.pas, il n'y a rien de plus à ajouter, voir le wrapper GotoXY fourni ci-dessus qui semble assez trivial et doit parfaitement s'insérer dans votre fragment de code si vous l'adapter à la RTL de Delphi 7.


    Pourquoi ne pas plutôt montrer votre code actuel que l'on puisse vous aider à le traduire car votre question dans sa forme actuelle biaise et limite totalement la discussion.

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 10
    Points : 1
    Points
    1
    Par défaut problème de positonnement du curseur résolu
    J'avais la réponse sous les yeux dans le message Envoyé par ShaiLeTroll.
    Mais j'avais d'abord cherché dans les unités proposées

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure GotoXY(const AX, AY: SHORT);
    var
      CursorCoord: _COORD;
    begin
      CursorCoord.X := AX;
      CursorCoord.Y := AY;
     
      SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), CursorCoord);
    end;
    Cela fonctionne parfaitement.

    - Pour éviter la confusion avec GotoXY Graphique de Delphi7 j'ai nommé la procédure PosCur.
    - SetConsoleCursorPosition étant une fonction il faut définir Projet/options/Compilateur : syntaxe étendue.

    Merci
    ----------------------------------------
    D'autre part au sujet de ma digression sur les pentacubes :

    Un programme PAS recherchait les solutions sous forme texte
    La dernière ligne du fichier est :

    3940 6728528635 142 136 40 VWZZPPPYPPFYTXYYUUUYVWZITWFITXFITXFIUXUIVZZNVWFNVWNNTXNLLLLL

    Les 12 pentacubes sont notés d'après leur forme FILNPTUVWXYZ
    Le 60 lettres représentent ici la dernière solution

    Un second programme DPR construit à partir de ces solutions un fichier BMP qui est celui présenté avec le lien
    https://www.flickr.com/photos/141992...7720301614861/
    il utilise une unité faite pour cela UBMP.PAS

    Les seuls dessins que j'ai à faire doivent être faits automatiquement.
    ---------------------------------------
    C'est un autre programme qui dessine les solutions sous forme de fichier texte
    avec mise en page pour impression et utilisant les 11 fragments encadrés de la police Terminal
    ---------------------------------------

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/05/2004, 15h37
  2. [Kylix] une application console
    Par naili dans le forum EDI
    Réponses: 3
    Dernier message: 19/04/2004, 14h27
  3. [Delphi] Application "console" et caractères ASCII
    Par Yorys dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 31/07/2003, 09h50
  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