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

Free Pascal Discussion :

Remplacement de la procédure SetInOutRes de Delphi [Free Pascal]


Sujet :

Free Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur

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

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 130
    Billets dans le blog
    9
    Par défaut Remplacement de la procédure SetInOutRes de Delphi
    Bonjour !

    J'ai voulu retoucher l'unité Console de Rudy Velthuis (qui est une réplique de l'unité Crt) pour la rendre compatible avec Free Pascal.

    http://rvelthuis.de/programs/console.html

    Voici les trois modifications que j'ai faites. Je précise que j'ai compilé en mode Delphi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      //ScrollConsoleScreenBufferA(StdOut, Rect, @Rect, NewPos, Fill); // Error: Incompatible type for arg no. 3: Got "Pointer", expected "SMALL_RECT"
      ScrollConsoleScreenBufferA(StdOut, Rect, Rect, NewPos, Fill);
     
      //ReadPtr := T.BufPtr; // Error: Incompatible types: got "TextRec.^TextBuf" expected "PChar"
      ReadPtr := PAnsiChar(T.BufPtr);
     
      //SetInOutRes(GetLastError); // Error: Identifier not found "SetInOutRes"
    Je pense que les deux premières corrections sont bonnes. En revanche je n'ai pas trouvé de remplacement pour la procédure SetInOutRes() qui (si j'ai bien compris) permet de régler la valeur de la variable (?) IOResult. Auriez-vous une idée ?

  2. #2
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 477
    Par défaut
    salut

    cette fonction ne sert qu'à remettre à zéro le code erreur des entrées\sorties

    cela revient un peu à faire IOResult := 0;

  3. #3
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 079
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 079
    Par défaut
    Salut Roland,
    Citation Envoyé par Roland Chastain Voir le message
    Auriez-vous une idée ?
    Aucune !
    Suis allé farfouiller dans mes vieilles sources .pas, Windows comme SysUtils, et cette procédure n'y est pas...

    Je pense que c'est le moment d'écrire à l'auteur.

  4. #4
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 477
    Par défaut
    resalut

    non c'est dans system.pas pour delphi

  5. #5
    Rédacteur/Modérateur

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

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 130
    Billets dans le blog
    9
    Par défaut
    Merci pour vos réponses. Vu l'endroit où l'instruction est placée, j'ai l'impression qu'elle ne sert pas à grand chose. En tout cas la valeur de IOResult n'est jamais utilisée dans l'unité. Peut-être l'idée est-elle que le programme utilisant l'unité puisse lire la valeur de IOResult en cas d'échec de l'ouverture de la console. Mais bon, comme ça n'échoue jamais...

  6. #6
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 079
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 079
    Par défaut
    Citation Envoyé par anapurna Voir le message
    resalut

    non c'est dans system.pas pour delphi
    Rhôôô, c'est la meilleure, celle-là

    Extraits du console.pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    interface
     
    uses Windows;
     
    implementation
     
    uses SysUtils;
    Comment t'as fait pour deviner que c'était dans system.pas ? Ou alors cette unité est incluse par défaut ?

    Et voilà tout ce qu'on trouve à ce propos dans le system.pas de mon vieux D3 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    procedure SetInOutRes;
    asm
            PUSH    EAX
            CALL    SysInit.@GetTLS
            POP     [EAX].InOutRes
    end;
     
    procedure InOutError;
    asm
            CALL    GetLastError
            JMP     SetInOutRes
    end;
    Je vous laisse traduire en français,

  7. #7
    Rédacteur/Modérateur

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

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 130
    Billets dans le blog
    9
    Par défaut
    @Jipété

    Oui, l'unité System est appelée implicitement. Merci pour le code. C'est bizarre, il n'y a pas d'argument à la procédure.

  8. #8
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 079
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 079
    Par défaut
    Citation Envoyé par Roland Chastain Voir le message
    C'est bizarre, il n'y a pas d'argument à la procédure.
    Le bout extrait doit avoir pas loin de 20 ans, ça a peut-être évolué depuis, mais je n'ai pas mieux à proposer...

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

Discussions similaires

  1. Comment remplacer des fonctions MySQL/PHP en Delphi
    Par Sundark dans le forum Débuter
    Réponses: 7
    Dernier message: 23/05/2008, 09h39
  2. Executer une procédure Access sous Delphi
    Par kmaniche dans le forum Bases de données
    Réponses: 7
    Dernier message: 08/12/2006, 20h51
  3. Créer une procédure stockée depuis Delphi
    Par blonde dans le forum Bases de données
    Réponses: 10
    Dernier message: 10/03/2006, 11h26
  4. procédure stockée Oracle dans delphi 6
    Par UPNE387 dans le forum Bases de données
    Réponses: 3
    Dernier message: 04/05/2004, 09h47
  5. PRocédure stocké, comment appeler avec delphi?
    Par SkyDev dans le forum Bases de données
    Réponses: 3
    Dernier message: 09/04/2004, 18h20

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