AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Exception bei VST.EndUpdate (TVirtualStringTree).
Thema durchsuchen
Ansicht
Themen-Optionen

Exception bei VST.EndUpdate (TVirtualStringTree).

Ein Thema von Bjoerk · begonnen am 22. Dez 2014 · letzter Beitrag vom 22. Dez 2014
Antwort Antwort
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#1

Exception bei VST.EndUpdate (TVirtualStringTree).

  Alt 22. Dez 2014, 13:47
Hab keine Ahnung wieso?

Delphi-Quellcode:
procedure TSomeForm.AssignToVST(Grid: TGrid);
var
  I, J: integer;
  Data: PVstNodeData;
  Node, Temp: PVirtualNode;
begin
  if (Grid.RowCount > 0) and (Grid.ColCount > 0) then
  begin
    VST.BeginUpdate;
    try
      VST.Clear;
      for I := 0 to Grid.RowCount - 1 do
      begin
        Node := VST.AddChild(Nil);
        Data := VST.GetNodeData(Node);
        Data.Caption := Grid.Cells[I, 0];
        Data.Row := I;
        Data.Col := 0;
        for J := 1 to Grid.ColCount - 1 do
        begin
          Temp := VST.AddChild(Node);
          Data := VST.GetNodeData(Temp);
          Data.Caption := Grid.Cells[I, J];
          Data.Row := I;
          Data.Col := J;
        end;
      end;
    finally
      VST.EndUpdate;
    end;
  end;
end;
  Mit Zitat antworten Zitat
gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Exception bei VST.EndUpdate (TVirtualStringTree).

  Alt 22. Dez 2014, 14:24
Kann mir nicht vorstellen, dass es im EndUpdate knallt.

Ich hätte vielmehr die Zeilen:
Delphi-Quellcode:
Data := VST.GetNodeData(Node);
Data.Caption := Grid.Cells[I,0];
im Verdacht.

GetNodeData liefert wahrscheinlich NIL zurück, da dem Node garkein "Data" zugewiesen worden ist.
Anschließend versuchst du dem NIL eine Caption zu geben.
Hier knallst natürlich und der Debugger bleibt im Finally stehen, was den Eindruck erweckt, das EndUpdate würde die Exception auslösen.

Lasse doch mal Try..Finally spaßeshalber weg und schaue dir den zweiten Parameter von VST.AddChild an.
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Exception bei VST.EndUpdate (TVirtualStringTree).

  Alt 22. Dez 2014, 15:17
Nee, is nich nil. Aber hast mich trotzdem auf die richtige Fährte gebracht. VST.NodeDataSize := SizeOf(TVstNodeData); vergessen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.116 Beiträge
 
Delphi 12 Athens
 
#4

AW: Exception bei VST.EndUpdate (TVirtualStringTree).

  Alt 22. Dez 2014, 16:30
Und das nächste Mal könnte jemand spaßeshalber auch was ganz Unwichtiges erwähnen,
wie z.B. die Fehlermeldung (was war es für eine Exception und wie lautet der Text) und an welcher Stelle (Zeile/Befehl) knallt es.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Exception bei VST.EndUpdate (TVirtualStringTree).

  Alt 22. Dez 2014, 18:02
Das weiß ich selbst. Hätte ich natürlich gepostet, wenn‘s denn eine gegeben hätte. Hier war nur Brutalabsturz mit Kernel Info.
  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 04:32 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