Lazarus semble corriger des bugs de Delphi 6 !
Bonjour.
1) J'ai noté que dans Delphi, on ne pouvait pas arrêter tout de suite une application dans la routine "OnCreate" par "[Fiche].close", moi j'avais toujours utilisé "Halt(0)" ; apparemment ce BUG (il faut bien l'appeler comme cela) semble corrigé dans Lazarus. Ceci dit j'ai l'impression que Halt est plus "rapide" à arrêter, avec la méthode Close j'ai l'impression de voir brièvement "flasher" la fiche, mais peut-être n'est-ce qu'une impression ?
2) Je n'étais pas le seul à avoir noté qu'une application Delphi ne se fermait pas proprement par "[Fiche].close", il était impossible de recompiler dans la foulée car le ".exe" était "inaccessible" (en fait il continuait à être actif dans les processus), dans ce cas il fallait s'arrêter par "TerminateProcess". APPAREMMENT ce problème SEMBLE également résolu dans Lazarus.
3) Autre avantage : si on renomme un composant, toutes les références dans le code sont mises à jour, et pas seulement l'en-tête de déclaration.
Continuez comme cela !
Les habits neufs de l'empereur
Bonjour.
C'est ce conte d'Andersen que me rappelle la fameuse discussion : dans le conte, ce ne sont pas les vêtements qui n'existaient pas, c'étaient soi-disant les gens qui étaient trop bêtes pour les voir ; ici ce n'est pas le langage qui a un bug, c'est l'utilisateur qui s'en sert mal ! Chez une grand firme d'informatique en 3 lettres, il n'y avait aussi pas de bugs, seulement des "features" ! :lol:
Ceci dit, lors du lancement du programme (je suis au moins sûr que l'événement Create n'a lieu qu'à ce moment là ! ), j'effectue l'initialisation d'une interface USB et en cas de raté (non branchée) je quitte le logiciel, qui ne comprend qu'une fiche au passage. Ensuite en cas de succès j'effectue différentes tâches d'initialisation, et je ne vois pas pourquoi répartir tout cela sur 2 routines événementielles. Déjà qu'à la fin j'appelle une autre routine qui effectue une mise à jour de la couleur d'une Led (virtuelle à l'écran) et arrête le robot, et qui au passage est aussi appelée par les routines de gestion de perte et de retour du focus au niveau de l'application.
Peut-être que dans un environnement multi-fiches la logique serait différente ? En utilisant Show et Hide ? Moi en tout cas :
1) Je suis avant tout un amateur de robotique, non un théoricien, et je veux que le système fasse ce que MOI je veux. J'ai maintenant trouvé le Halt(0), il m'aurait suffi de le savoir dès le début, je ne me lancerai pas dans une discussion sur "bug ou pas bug" qui m'apporte autant que de connaître le sexe des anges. :ptdr:
2) Je ne suis pas le seul à avoir remarqué que parfois les programmes écrits avec Delphi se fermaient "mal" avec Close. Il m'arrive AUSSI de parcourir les topics et posts des autre utilisateurs ! :calim2:
3) Le non-remplacement du nom d'un composant dans le code est en tout cas une réalité, un peu moins gênante certes ... On peut toujours utiliser Editer/Remplacer, avec les précautions d'usage !
Voilà ...