[Problème Ecriture découplée dans TMémo]
Bonjour à tous.
J'essaye d'implanter un petit système de traçage d'évènements dans une appli.
Je souhaite pouvoir écrire dans un TMémo en passant
par une variable de type TStrings.
Ce ne me semble pas trop exotique comme comme idée...
et pourtant je me heurte au problème suivant :
Je joins mon code ultrasimplifié
1/ Affectation dans FormCreate
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82 Unit u_essai_log; {$mode Objfpc}{$H+} Interface Uses Classes , Sysutils , Lresources , Forms , Controls , Graphics , Dialogs , StdCtrls { -- mes unités -- } // , u_c_trace ; Type { Tform1 } Tform1 = Class(Tform) Btn_Creation_coupleur_: TButton; Memo1: Tmemo; Procedure Btn_creation_coupleur_click(Sender: Tobject); Procedure Formactivate(Sender: Tobject); Procedure Formcreate(Sender: Tobject); Private { Private Declarations } Public { Public Declarations } End; Var Form1: Tform1; g_truc : TStrings; Implementation { Tform1 } procedure affiche(const S : String); begin if assigned(g_truc) then g_truc.Add(S) else showmessage('G_truc = NIL'); end; Procedure Tform1.Formcreate(Sender: Tobject); Begin //{ if Assigned(MeMo1) then g_truc := memo1.Lines else showmessage( 'Memo1 non assigné'); //} End; Procedure Tform1.Btn_creation_coupleur_click(Sender: Tobject); var l_str : string; Begin l_str := '>azertyuiop<'; Affiche(l_str); // memo1.Lines.Add(l_str); End; Procedure Tform1.Formactivate(Sender: Tobject); Begin { if Assigned(MeMo1) then g_truc := memo1.Lines else showmessage( 'Memo1 non assigné'); affiche ('Assignation effectuée'); } End; Initialization {$I u_essai_log.lrs} End.
- j'obtiens un message Projerct raised exception class : EXTERNAL SIGSEGV
2/ Affectation dans Formactive
- j'obtiens le bon comportement mais je rédéfinis mon affectation à chaque prise de main de la fenêtre...
je ne peux pas me contenter de ce comportement qui me posera problème lors de l'implantation de mon unité
J'ai déjà recherché dans le forum et ai suivi les indications de cette discussion:
http://www.developpez.net/forums/sho...hlight=SIGSEGV
J'ai LAZARUS 0.9.24 beta, Windows XP, Debogueur = none,
mes répertoires sont compatibles MSDOS, et je ne pense pas compiler trop loin de la racine.
maintenant voici mes hypothèses :
- Je passe à côté de quelque chose d'ultra simple qu'un débutant comme moi ne voit pas même près de son nez.
- Le composant TMémo n'est pas totalement initialisé lors de l'éxécution de FormCreate.
Bref, Auriez-vous une idée me permettant d'avancer sur ce problème ?
Merci par avance de vos réponses éventuelles.
Cordialement Captain
Partager