Zitat von
fränk0815:
Bisher mache ich das direkt in der AddFunction per NotifyEvent, jedoch musste ich festellen das es so nicht funktioniert da das Object an dieser Stelle zwar erzeugt ist, die Werte aber noch nicht "befüllt" sind.
Meinst du damit diese Stelle?
Delphi-Quellcode:
while not FSqlResult.EOF do
begin
Add(TPosition.Create); // Hier wird das Event gefeuert
last.Nummer := StrToInt(FSqlResult.FieldValueByName('pos',False));
last.Menge := StrToInt(FSqlResult.FieldValueByName('menge',False));
last.Bezeichnung := Utf8Decode(FSqlResult.FieldValueByName('bezeichnung',False));
last.Einzelpreis := DecRep(FSqlResult.FieldValueByName('ep',False));
// aber hier sind die Properties erst gefüllt
FSqlResult.Next;
end;
FreeAndNil(FSqlResult);
Dann füge das Add einfach erst bei meinem Kommentar ein:
Delphi-Quellcode:
NewPos: TPosition;
[...]
while not FSqlResult.EOF do
begin
NewPos := TPosition.Create;
NewPos.Nummer := StrToInt(FSqlResult.FieldValueByName('pos',False));
NewPos.Menge := StrToInt(FSqlResult.FieldValueByName('menge',False));
NewPos.Bezeichnung := Utf8Decode(FSqlResult.FieldValueByName('bezeichnung',False));
NewPos.Einzelpreis := DecRep(FSqlResult.FieldValueByName('ep',False));
Add(NewPos);
FSqlResult.Next;
end;
FreeAndNil(FSqlResult);