![]() |
Weitere Probleme mit VST
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:
Jede dieser Texte (bis auf "Projektname") ist eine Konstante bspw. IDC_SOURCES.
- Projektname
| |- Sources | |- Bugs | |- ToDos | |- Entwickler | |- Veröffentlichungen Um von einer beliebig gewählten Node ausgehend eine Node bspw. unter "Sources" einzufügen habe ich folgenden Code:
Delphi-Quellcode:
Die Funktionen GetProjectNode und GetListNode habe ich als Textdateien angehängt.
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 Konstanten sind in folgender Weise deklariert:
Delphi-Quellcode:
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.
// captions
IDC_SOURCES = 'Sources'; IDC_BUGS = 'Bugs'; IDC_TODOS = 'ToDos'; IDC_CODERS = 'Entwickler'; IDC_PUBLICATIONS = 'Veröffentlichungen'; IDC_NONAME = 'unbenannt'; Woran kann das liegen, dass erst ab einem gewissen Punkt ein solcher Fehler auftritt? :gruebel: Chris |
Re: Weitere Probleme mit VST
Prüfst du vielleicht irgendwo mit einer while oder repeat schleife nach IDC_SOURCES, aber hast in dem zu suchenden Node (oder Ähnlich) IDC_TODOS gesetzt ?
mfG mirage228 |
Re: Weitere Probleme mit VST
Hi,
nein. Chris |
Re: Weitere Probleme mit VST
Hallo Chris,
Zitat:
|
Re: Weitere Probleme mit VST
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
sorry... ich wollte gerade nochmal fragen, wer denn vielleicht doch eine Idee hat, aber wenn die Funktionen nicht dabei sind, wird das wohl nichts. ;) Darum sind sie jetzt nochmal dabei. Wenn sich jemand das nochmal ansehen könnte... Im Moment komm ich da nicht weiter und wenn das nicht geht, dann wird das Programm nie fertig. ;) Chris |
Re: Weitere Probleme mit VST
Des weiteren fehlt noch deine Datenstrukturbeschreibung.... (PTVData)
Wie hast du die sz-Variablen definiert? String? WideString? Weil ggf. müsstest du deine zuzuweisende Konstante konvertieren/casten? Hast du schon rausgefunden in welcher Zeile er sich denn genau aufhängt? (Im GetListNode ..) Und bekommst du dort überhaupt dann eine gültige Node zurück? Ich nehme stark an, dass er sich in der Schleife unten
Delphi-Quellcode:
aufhängt, da du die funktion immer wieder selbst aufrufst?
While (TmpNode<>Nil) and (Result=Nil) do
begin Result:=GetListNode(TmpNode,NodeText); TmpNode:=Node.NextSibling; end; Was ist wenn er die node nie findet? :) |
Re: Weitere Probleme mit VST
Hi,
Zitat:
Delphi-Quellcode:
type
TTVData = packed record dwMode: DWORD; szCaption: WideString; {... Hier kommen einige weitere WideString-Deklarationen ...} bDone: Boolean; end; PTVData = ^TTVData; Zitat:
Zitat:
Zitat:
Chris |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz