Hallo,
danke an alle, habe den Fehler gefunden.
Ich habe blöderweise aus dem Projekt eine Function geändert und in einem anderen Projekt benutzt. Das hatte ich total vergessen, aber mit dem Programm WinMerg wurde mir die
Unit angezeigt, dass sie auch geändert worden ist. So konnte ich den Fehler dann Lokalisieren und beseitigen.
Bei der unteren Funktion hatte ich das var vor NeueNode: TTreeNode gelöscht. So ganz Verstehen kann ich das noch nicht, weil ja eigentlich TTreeNode ein Object ist, also wird für mein Verständnis ein Zeiger übergeben.
Delphi-Quellcode:
function TVNodeInsert (Nod: TTreeNodes; var NeueNode: TTreeNode;
const strElternKnoten: String; const strKnoten: String;
Obj: TObject): boolean; overload;
var
TempNode: TTreeNode;
begin
result:= FALSE; // Es ist kein Knoten im Baum eingetragen worden
TempNode:= Nod.GetFirstNode; // Root-Knoten in TempNode speichern
while TempNode <> NIL do // Solange wiederholen, bis TempNode = NIL ist
begin
If (CompareText(TempNode.Text, StrElternKnoten)=0) then
begin
if NOT(IstDoppelt(Nod, strKnoten)) then // Ist der Knoten nicht vorhanden
begin
// Neuer Knoten eintragen mit einem Object
NeueNode:= Nod.AddChildObject(TempNode,StrKnoten,Obj);
Result:= TRUE; // Es ist ein Knoten eingetragen
end;
end;
TempNode:= TempNode.getNext; // Nächster Knoten in TempNode
end;
end;
Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.