AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Weitere Probleme mit VST

Ein Thema von CalganX · begonnen am 25. Jan 2004 · letzter Beitrag vom 10. Feb 2004
Antwort Antwort
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#1

Weitere Probleme mit VST

  Alt 25. Jan 2004, 18:05
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
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Weitere Probleme mit VST

  Alt 25. Jan 2004, 19:03
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
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Weitere Probleme mit VST

  Alt 25. Jan 2004, 20:09
Hi,
nein.

Chris
  Mit Zitat antworten Zitat
Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Weitere Probleme mit VST

  Alt 26. Jan 2004, 05:37
Hallo Chris,
Zitat von Chakotay1308:
Die Funktionen GetProjectNode und GetListNode habe ich als Textdateien angehängt.
die beiden Funktionen fehlen leider.
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Weitere Probleme mit VST

  Alt 7. Feb 2004, 18:16
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
Angehängte Dateien
Dateityp: txt funktionen.txt (737 Bytes, 26x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Shivan
Shivan

Registriert seit: 5. Mär 2003
Ort: Ravensburg
131 Beiträge
 
Delphi 6 Enterprise
 
#6

Re: Weitere Probleme mit VST

  Alt 9. Feb 2004, 21:59
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:
  While (TmpNode<>Nil) and (Result=Nil) do
    begin
     Result:=GetListNode(TmpNode,NodeText);
     TmpNode:=Node.NextSibling;
    end;
aufhängt, da du die funktion immer wieder selbst aufrufst?
Was ist wenn er die node nie findet?
Markus Stein
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Weitere Probleme mit VST

  Alt 10. Feb 2004, 18:19
Hi,
Zitat von Shivan:
Des weiteren fehlt noch deine Datenstrukturbeschreibung.... (PTVData)
okay:
Delphi-Quellcode:
type
  TTVData = packed record
    dwMode: DWORD;
    szCaption: WideString;
    {... Hier kommen einige weitere WideString-Deklarationen ...}
    bDone: Boolean; end;
  PTVData = ^TTVData;
Zitat von Shivan:
Weil ggf. müsstest du deine zuzuweisende Konstante konvertieren/casten?
In diesem Fall würde er aber niemals weiterkommen, aber er schafft ja bspw. IDC_SOURCES.

Zitat von Shivan:
Hast du schon rausgefunden in welcher Zeile er sich denn genau aufhängt? (Im GetListNode ..)
Das ist ja das Problem: es lässt sich einfach nicht herausfinden.

Zitat von Shivan:
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:
  While (TmpNode<>Nil) and (Result=Nil) do
    begin
     Result:=GetListNode(TmpNode,NodeText);
     TmpNode:=Node.NextSibling;
    end;
aufhängt, da du die funktion immer wieder selbst aufrufst?
Was ist wenn er die node nie findet?
In diesem Fall würde er aber sofort aus der Schleife springen, weil dann Node.NextSibling auch nil wäre und somit würde die Schleife beenden. Außerdem: wieso sollte er die Node nicht finden? Sie exisitert und hat einen konstanten Namen.

Chris
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz