[Delphi] Programme Delphi 3 (Win95) => XP [Résolu/Fermé]

Signaler
Messages postés
8
Date d'inscription
lundi 12 février 2007
Statut
Membre
Dernière intervention
25 septembre 2008
-
Messages postés
8
Date d'inscription
lundi 12 février 2007
Statut
Membre
Dernière intervention
25 septembre 2008
-
Bonsoir.

J'ai téléchargé un programme (Open Source), ayant été programmé en 1999 pour fonctionner sous Windows 95.
Note : Ce programme a été écrit avec Borland Delphi 3.

Malgré l'option "Compatibilité windows 95/98" dans propriété de l'executable, ce programme ne fonctionne pas correctement.

1) L'instal fonctionne.
2) Le lancement fonctionne mais ...

Au lancement du programme, la "feuille" (Form) principale se lance, puis une seconde qui contient les informations d'utilisations (Licence GPL).

Cette seconde fenetre se ferme en cliquant sur le bouton fermer, ou au bout de quelques secondes, et lorsqu'elle se ferme, les elements de la fenetre principale se chargent, je peux les survoler, le texte explicatif s'affiche (texte explicatif du/ des boutons), mais dés que je clic ou que ce soit sur la fenêtre, cela me réaffiche l'écran de licence.

Note : Aprés que la fenetre de licence se soit fermé, la fenetre principale n'a pas le focus elle é "terne", comme une fenetre en arriere plan.

Ainsi il est impossible de se servir du logiciel.

Etant analyste programmeur, j'ai installé Delphi 7 PE, et j'ai recompilé, aucun changement.
J'ai donc jeté un oeil dans le code (Pas si simple), et j'ai vu que lorsque je désactive l'appel à la fenetre de licence (Dans le fichier de base qui contient les "Program XXX [...] Uses XXX,XXX [...] XXX.CreateForm"), cela fonctionne à merveille.

En regardant un peu plus le code, j'ai compris que l'événement OnActivate (De la MainForm), appelle une procédue FormActivate, qui elle même appelle, l'affichage de la fenetre de licence (ainsi que d'autres trucs).

Question1 : Est ce que le OnActivate est égal au OnFocus en VB?

Donc ce qui se passe c'est que, ma "mainForm" appelle une sous form, à laquelle elle donne le focus, cette fenetre fait ce qu'elle a a faire et se ferme, et lorsque je clic dans ma fenetre principale, je lui redonne le focus (Donc je redéclenche le OnActivate), donc je ré-appel la procédure FormActivate, qui réouvre la fenetre de licence, c'est comme cela que je le comprend.

Le probléme c'est que ce logiciel fonctionne a merveille sous Windows 95.

Ainsi est ce que quelqu'un aurait une idée de comment résoudre ce probléme?

Note : Je n'ai jamais fais de Delphi (Juste un peu de pascal en premiére année de fac), Je suppose que l'idée serait d'appeller l'ouverture de la fenetre de licence par un autre événement que le "OnActivate", mais si vous pouviez me décrire la démarche ce serait sympa.

Merci d'avance et bonne soirée.

1 réponse

Messages postés
8
Date d'inscription
lundi 12 février 2007
Statut
Membre
Dernière intervention
25 septembre 2008

Rebonsoir !

Bon j'ai trouvé une solution.

En fait je n'associe plus la procédure Activate a l'evenement OnActivate, et je crée un bouton sur la feuill principale qui permet de lancer le truc.
Voila.

Bonne soirée