Bonjour,
nouvelle semaine, nouveaux problèmes...
Récupéré hier un projet de traitement graphique chez l'ami John (c'est kèk chose ses projets ! La quantité de fichiers pour faire un HelloWorld, tu te demandes... Plus la manière de nommer les choses, très particulière : faut_ s_'y_ faire_ ).
Bref, je demande à Laz de me le convertir, il se loupe sur certains points qu'après examen je commente (genre les lignes en rapport avec l'impression bloquent la compil : on verra ça plus tard), et quand enfin je peux lancer le prog, ben ça loupe pas : AV
Après enquête, il y a une blague dans FormCreate, et après enquête approfondie c'est "post sur le forum" parce que là, vous allez voir, c'est encore un truc de ouf'.
Soit un objet déclaré ainsi (je mets juste le début, concerné au 1er chef) au tout début d'une unité :
et quelques lignes plus bas on trouve cette chose, appelée (à travers une avalanche d'appels intermédiaires [c'est du John]) depuis le FormCreate, donc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 unit u_c_display; {$MODE Delphi} interface uses SysUtils, Classes, u_c_basic_object, u_c_log; type c_display= class(c_basic_object) public m_do_display: Boolean; m_indentation: Integer; m_current_string: String; m_c_strings: tStrings;
Vu, le commentaire de l'instruction qui affecte True au boolean ? Que si je commente cette ligne ça roule ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Constructor c_display.create_display(p_name: String; p_c_strings: tStrings; p_c_log: c_log); begin Inherited ; m_c_strings:= p_c_strings; m_do_display:= True; // <------- Fait planter sur SIGSEGV... m_c_log:= p_c_log; end; // create_display
p_c_strings correspond à un memo.Lines, et p_c_log est passé comme nil.
Et sous Windows c'est quelque chose encore dans la même unité mais plus loin que le Create qui met la pagaille :
Et la procédure g_c_display.display se contente d'afficher du texte si m_do_display est à true.
Une idée sur ce que je pourrais bien faire pour avancer ?
Une chose très curieuse, c'est que les messages d'erreur n'arrivent pas instantanément, il leur faut bien 5 à 10 secondes (si si !) même quand ils se suivent ; très bizarre...
Ah, le lien de son projet.
Partager