VirtualDrawTree GetText ist kein Ereignis?

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Spike1977
Beiträge: 15
Registriert: Mo 13. Nov 2023, 18:11

VirtualDrawTree GetText ist kein Ereignis?

Beitrag von Spike1977 »

Das erste Problem. Was ist GetText? Es ist kein Ereignis. Wo kommt das her oder wie muss es tatsächlich aussehen.

Laut
https://wiki.freepascal.org/VirtualTree ... or_Lazarus
soll es aber da so hin.

Code: Alles auswählen

procedure TForm1.VirtualDrawTreeGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
 Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString);
var
  Data: PTreeData;
begin
  Data := VirtualDrawTree.GetNodeData(Node);
  case Column of
    0: CellText := Data^.Column0;
    1: CellText := Data^.Column1;
    2: CellText := Data^.Column2;
  end;
end;

Benutzeravatar
theo
Beiträge: 10499
Registriert: Mo 11. Sep 2006, 19:01

Re: VirtualDrawTree GetText ist kein Ereignis?

Beitrag von theo »

VirtualDrawTree ist nicht VirtualStringTree.

Spike1977
Beiträge: 15
Registriert: Mo 13. Nov 2023, 18:11

Re: VirtualDrawTree GetText ist kein Ereignis?

Beitrag von Spike1977 »

* theo
Laut
https://wiki.freepascal.org/VirtualTree ... or_Lazarus
ist es aber VirtualDrawTree also sollte es gehen.

Benutzeravatar
theo
Beiträge: 10499
Registriert: Mo 11. Sep 2006, 19:01

Re: VirtualDrawTree GetText ist kein Ereignis?

Beitrag von theo »

Spike1977 hat geschrieben:
So 19. Nov 2023, 09:36
Laut
https://wiki.freepascal.org/VirtualTree ... or_Lazarus
ist es aber VirtualDrawTree also sollte es gehen.
Wie kommst denn du da drauf?
Auf dieser Seite kommt das Wort VirtualDrawTree nicht einmal vor.
Es sind Beispiele für den VirtualStringTree.

wp_xyz
Beiträge: 4893
Registriert: Fr 8. Apr 2011, 09:01

Re: VirtualDrawTree GetText ist kein Ereignis?

Beitrag von wp_xyz »

TVirtualStringTree ist primär für die Anzeige von Texten geschrieben, daher ist die Grundvoraussetzung, dass der Tree die Texte kennen muss, und dafür gibt es das Event OnGetText.

TVirtualDrawTree ist allgemeiner und kann "alles" darstellen. Die Annahme, mit Texten zu tun zu haben, ist weggefallen, und daher hat das Event OnGetText keinen Sinn mehr. Das heißt natürlich nicht, dass TVirtualDrawTree keine Texte anzeigen kann, nur muss man sich um alles selbst kümmern, also darum, wie der Text aus den Daten hinter dem virtuellen Tree extrahiert werden kann und prinzipiell wie man den Text auf den Canvas bekommt. Wie in dem anderen Thread schon gesagt: Studiere mein Beispiel in viewtopic.php?p=138105#p138105.

Antworten