2009-02-04 5 views
4

Quel outil/approche suggéreriez-vous de convertir en Delphi d'une grande application graphique Windows 16 bits, écrite en vieux Borland Pascal 7/OWL? Comprendre les différences assez importantes entre OWL et VCL, ainsi que les différences entre les manipulations de pointeurs en pascal 16 bits et l'état de l'art en utilisant des chaînes et des objets dans Delphi - existe-t-il des moyens/outils qui pourraient aider pour éviter la réécriture presque complète de l'application?Comment convertir une application OWL/BP7 en Delphi?

Répondre

1

Je suppose qu'il n'y a aucun outil pour soutenir votre migration, mais je voudrais essayer de démarrer dans une ancienne version Delphi comme 1,2 ou 3. Cette syntaxe devrait être beaucoup plus proche sur BP7 que la nouvelle version de Delphi.

À ce stade, vous devriez d'abord essayer d'apporter votre logique d'application à Delphi, sans aucun élément visuel. Ensuite, utilisez le concepteur de formulaire pour reconstruire votre interface graphique.

Un point important à prendre en compte est qu'une chaîne DOS est une chaîne ASCII, alors que les chaînes Delphi jusqu'à Delphi 2007 sont codées en ANSI. Dans Delphi 2009, le mot clé string décrit une chaîne unicode.

1

Il y a très longtemps, lorsque j'ai changé OWL en VCL (en C++), il était plus facile d'écrire tout à partir de zéro. Il peut y avoir des parties de code qui ne traitent pas de l'interface utilisateur et des manipulations de chaînes, mais sinon c'est totalement différent.

En fait, l'une de mes plus grandes applications est encore dans OWL, parce que je ne prends pas la peine de la réécrire. Tant que cela fonctionne, que ce soit.

2

Je pense que vous devez déterminer; A) Quelle part du code a trait à la logique métier, à la manipulation des données (de base) et à des choses comme les structures de fichiers propriétaires, le traitement mathématique, etc.? Ce sont des choses qui pourraient remonter en grande partie en l'état, car elles sont plus susceptibles d'être écrites en 'pascal' avec des éléments beaucoup plus petits et évidents d'OWL/BP7. Par exemple, lorsque je l'ai fait avec une application, j'avais une série d'unités qui traitaient du chargement/enregistrement de fichiers propriétaires, des trucs pour calculer la pâques, des trucs pour faire des maths sur les tableaux, etc. Tout cela passait de BP7 à Delphi. avec presque aucun changement. B) quelle quantité de code doit faire avec l'interface graphique (et rien d'autre) - les gestionnaires de boucles de messages, les constructeurs d'éléments de dialogue, les propriétés des contrôles, etc. Ce genre de travail demandera beaucoup de travail à Delphi et à moins vous pouvez trouver quelqu'un avec une belle ligne dans .RES ->. DFM (ou similaire), je pense que vous envisagez de construire ce peu à partir de zéro. Ce n'est pas une mauvaise chose, car si c'est une application Windows 16 bits, vous voudrez probablement en profiter pour au moins la rendre un peu plus "moderne". Je pense que ce sera la partie la plus laborieuse du projet.

c) Quelle quantité de code utilise des trucs que vous savez pouvoir faire différemment en Delphi, mais cela fonctionnerait comme dans Pascal en ce moment? C'est là où le point de @ BloodySmartie sur la migration vers une ancienne version de Delphi a du sens pour moi. Vous devriez être en mesure de porter ce projet à quelque chose comme Delphi 5/7 en faisant des changements évidents (et bien compris) à des choses comme la manipulation de chaînes. Le plus de ces choses que vous pouvez laisser non portées, le mieux à mon avis. Obtenir quelque chose qui fonctionne et que vous vérifiez le comportement de base avec, puis lancer un processus de refactoring/affiner pour tirer le meilleur parti de Delphi au fur et à mesure que les ressources le permettent. Vous pourriez avoir (comme je l'ai fait) des tableaux de pointeurs dans BP7, où chaque pointeur va à un tableau de pointeurs qui mènent finalement à un objet - c'est ainsi que nous avons contourné les limitations de mémoire dans le monde Windows 16 bits. Quand j'ai porté mon application pour la première fois, ces tableaux de pointeurs vers des tableaux de pointeurs fonctionnaient toujours bien en Delphi et je les ai laissés seuls jusqu'à ce que j'aie le temps de faire quelque chose de plus «Delphi» avec les structures.

Mais avant de faire tout cela - pourquoi transférez-vous l'application? Si vous le portez parce que vous êtes sur le point d'apporter un nombre raisonnable de modifications aux fonctionnalités de l'application, le moment est peut-être venu de réécrire l'application. Au fur et à mesure que vous réécrivez en Delphi, vous pourrez toujours utiliser des blocs de fonctions et de procédures basées sur des règles métier, il ne s'agit donc pas nécessairement d'une réécriture complète et totale à partir de zéro.

1

nous avions aussi - et avons toujours - des tonnes d'applications hibou. donc nous avons fait porter le hibou 16bit au hibou 32bit et sommes donc encore en train de développer et de maintenir nos applications basées sur le hibou (en fait avec Delphi 2007 pour win32).

vous pouvez trouver ce moyen plus facile et plus rapide que de passer à vcl.

acclamations Andrej

0

FrameworkPascal.com fournit une solution efficace avec un minimum de changements aux fenêtres d'origine de code 3.1. Nous l'avons fait pendant un certain temps mais maintenant nous fournissons une solution arrondie avec des unités OWL compatibles 32 bits. Nous fournissons également des unités ODBC SQL, une technologie de sécurité basée sur les adresses MAC et des unités spéciales comme les unités CRT capables de gérer le code écrit en mode DOS et en mode graphique, mixé, avec de nouveaux graphismes 32 bits et ciblant les applications graphiques 32/64. . Le code hérité peut être compilé avec OWL Windows MDI en commençant par les démos d'applications modèles qui peuvent être rapidement modifiées.

Questions connexes