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 :

Gestion mémoire Delphi XE


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 76
    Points : 56
    Points
    56
    Par défaut Gestion mémoire Delphi XE
    Bonjour,

    J'ai un programme développé en turbo pascal que je dois convertir avec Delphi XE.
    Certaines fonctions en turbo pascal ne sont pas compatibles avec Delphi XE car obsolètes.
    J'aimerai savoir si vous pourriez m'indiquer leur équivalent avec Delphi XE.

    - MARK
    - MEMAVAIL
    - RELEASE

    merci d'avance pour vos réponses

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 548
    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 548
    Points : 25 118
    Points
    25 118
    Par défaut
    Euh, tu ne devrais pas plutôt repenser tout ton programme, refaire une analyse complète ?
    Tu ne peux pas traduire une application Turbo Pascal (pour DOS ???) et Delphi XE pour Windows !
    Faudrait faire les maquettes des écrans, modéliser les classes et la DB ...

    MARK, oubli, on ne programme plus comme ça ! Tu vas pas nous faire un GOTO et modifié la Pile
    Utilise le type Pointer et l'opérateur @ pour récupérer l'adresse d'une variable

    MEMAVAIL, ... euh ben, GetHeapStatus ou GetMemoryManagerState,
    GetProcessMemoryInfo, GlobalMemoryStatus

    RELEASE voir New et Dispose, ou encore GetMem\FreeMem
    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

  3. #3
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 448
    Points
    28 448
    Par défaut
    Citation Envoyé par vitch8 Voir le message
    Bonjour,

    J'ai un programme développé en turbo pascal que je dois convertir avec Delphi XE.
    Certaines fonctions en turbo pascal ne sont pas compatibles avec Delphi XE car obsolètes.
    J'aimerai savoir si vous pourriez m'indiquer leur équivalent avec Delphi XE.

    - MARK
    - MEMAVAIL
    - RELEASE

    merci d'avance pour vos réponses
    je viens de terminer la conversion d'un projet Turbo Pascal for Windows en Delphi...au départ je voulais virer tout le vieux code "Object Windows" pour le remplacer par des classes Delphi...en fait ce n'est pas si simple car on se retrouve avec des modifications impossibles.

    exemple, remplacer les appels à l'API GDI par un TCanvas...ça semble bien, mais l'objet Canvas gère les handle un peu comme ça lui plait, et il n'est pas toujours possible de reproduire la logique du code GDI avec cet objet.

    il faut donc soit repenser le programme (mais ça implique de connaitre l'application pour savoir où on va), soit y toucher le moins possible en cherchant à recréer les fonctions et objets qui n'existent plus (ce que j'ai du faire pour les flux d'objet TPW par exemple).

    moralité, MARK, MEMAVAIL et RELEASE peuvent être "émulé" pour peu qu'on modifie aussi getmem() new() et cie.

    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    var
      v1,v2,v3 : PVar;
    begin
      mark;
      new(v1);
      new(v2);
      new(v3);
      release;
    end;
    ça peut se traduire sous Delphi si new() place v1, v2, v3 dans un TList par exemple, dont "mark" aura conservé la propriété Count pour que release puisse libérer les objets créés depuis.

    mais bon c'est de la bidouille
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  4. #4
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 76
    Points : 56
    Points
    56
    Par défaut
    Merci pour vos réponses.

    Je vais effectivement repenser tout le programme mais il y a une architecture que je souhaitais conserver c'est pourquoi j'ai demandé l'équivalent des fonctions.

    J'ai réussi à convertir mon programme avec les fonctions GetMemoryManagerState et Dispose pour information.

    Merci de votre aide rapide et précieuse.

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

Discussions similaires

  1. Thread POSIX et gestion mémoire
    Par pier* dans le forum POSIX
    Réponses: 1
    Dernier message: 07/07/2006, 21h36
  2. TAO, Value types et gestion mémoire
    Par TiChabin972 dans le forum CORBA
    Réponses: 1
    Dernier message: 25/04/2006, 20h55
  3. [D7] Tableau dynamique et Gestion mémoire
    Par Cl@udius dans le forum Langage
    Réponses: 7
    Dernier message: 13/03/2006, 15h16
  4. [Gestion mémoire] SetLength sur TDoubleDynArray
    Par MD Software dans le forum Langage
    Réponses: 14
    Dernier message: 24/04/2005, 21h11
  5. Gestion mémoire des Meshes (LPD3DXMESH)
    Par [Hideki] dans le forum DirectX
    Réponses: 1
    Dernier message: 08/07/2003, 20h34

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