Ik werk met Delphi 5 en kwam tijdens het werken aan iets een probleem tegen: het lijkt wel of de write specifier het niet doet. Hieronder even een stukje code van de klasse TTest waarin het probleem zich ook al voordoet:
En hier maak ik een instantie van die klasse aan en voeg een woordje toe:
Het gekke is, dat-ie dus wel het woordje "tekst" toevoegd, maar nooit bij m'n ShowMessage komt. Ik kan het stukje FLines.Assign(Value); zelfs weghalen uit de SetLines methode en nog steeds voegt-ie het woordje goed toe! Het lijkt wel of ie mijn read en write instructies gewoon negeert. (Da's dus het frustrerende: als je code iets anders doet, dan wat-ie volgens de code zou moeten doen)
Heeft iemand enig idee wat ik fout doe?
Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| type TTest = class(TComponent) private FLines: TStrings; procedure SetLines(Value: TStrings); public constructor Create; published property Lines: TStrings read FLines write SetLines; end; ... constructor TTest.Create; begin FLines := TStringList.Create; end; procedure TTest.SetLines(Value: TStrings); begin ShowMessage('Waarom komt-ie hier niet?'); FLines.Assign(Value); end; |
En hier maak ik een instantie van die klasse aan en voeg een woordje toe:
Delphi:
1
2
3
4
5
6
7
| procedure TForm1.Button1Click(Sender: TObject); var Test: TTest; begin Test := TTest.Create; Test.Lines.Add('tekst'); end; |
Het gekke is, dat-ie dus wel het woordje "tekst" toevoegd, maar nooit bij m'n ShowMessage komt. Ik kan het stukje FLines.Assign(Value); zelfs weghalen uit de SetLines methode en nog steeds voegt-ie het woordje goed toe! Het lijkt wel of ie mijn read en write instructies gewoon negeert. (Da's dus het frustrerende: als je code iets anders doet, dan wat-ie volgens de code zou moeten doen)
Heeft iemand enig idee wat ik fout doe?