Hi,
leider ist es schwierig innerhalb von wenigen Zeichen einen besseren Titel zu finden.
Mein Problem besteht darin, dass ich einige Nodes im VirtualStringTree nicht hinzufügen kann, da eine Funktion ab einer gewissen Konstante eine Endlosschleife bildet. Erklären kann ich mir das nicht.
Eine Gruppe/ein Projekt sieht als Grundgerüst so aus:
Code:
- Projektname
|
|- Sources
|
|- Bugs
|
|- ToDos
|
|- Entwickler
|
|- Veröffentlichungen
Jede dieser Texte (bis auf "Projektname") ist eine Konstante bspw.
IDC_SOURCES.
Um von einer beliebig gewählten Node ausgehend eine Node bspw. unter "Sources" einzufügen habe ich folgenden Code:
Delphi-Quellcode:
procedure TfrmMain.mpSourceClick(Sender: TObject);
var
pNode, pTemp: PVirtualNode;
pData: PTVData;
begin
if vstData.FocusedNode = nil then Exit;
pTemp := GetProjectNode(vstData.FocusedNode);
pNode := vstData.AddChild(GetListNode(pTemp, IDC_SOURCES));
pData := vstData.GetNodeData(pNode);
pData.dwMode := 3;
pData.szURL := IDC_NONAME;
self.SaveList;
self.UpdateList;
pcMode.ActivePage := tsStart;
end;
Die Funktionen
GetProjectNode und
GetListNode habe ich als Textdateien angehängt.
Die Konstanten sind in folgender Weise deklariert:
Delphi-Quellcode:
// captions
IDC_SOURCES = 'Sources';
IDC_BUGS = 'Bugs';
IDC_TODOS = 'ToDos';
IDC_CODERS = 'Entwickler';
IDC_PUBLICATIONS = 'Veröffentlichungen';
IDC_NONAME = 'unbenannt';
An sich funktioniert die Funktion wunderbar. Das Problem tritt erst auf, wenn ich IDC_TODOS verwenden will (statt IDC_SOURCES im obigen Beispiel). Ebenfalls bei IDC_CODERS und IDC_PUBLICATIONS tritt eine Endlosschleife auf.
Woran kann das liegen, dass erst ab einem gewissen Punkt ein solcher Fehler auftritt?
Chris