![]() |
Data zu Treeview hinzufügen ?
Hi
wie kann ich eine Data für jedes Child hinzufügen ? Ich möchte einen Link für jedes Child zuzuweisen Durch klick oder Doppelklick auf Child, soll die Seite in Webbrowser daneben aufgerufen werden
Delphi-Quellcode:
object Form1: TForm1
Left = 192 Top = 114 Width = 719 Height = 368 Caption = 'Form1' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False PixelsPerInch = 96 TextHeight = 13 object TreeView1: TTreeView Left = 10 Top = 10 Width = 141 Height = 311 Indent = 19 TabOrder = 0 Items.Data = { 01000000260000000000000000000000FFFFFFFFFFFFFFFF0000000002000000 0D53756368656D616368696E656E1F0000000000000000000000FFFFFFFFFFFF FFFF000000000000000006676F6F676C651E0000000000000000000000FFFFFF FFFFFFFFFF0000000000000000057961686F6F} end object WebBrowser1: TWebBrowser Left = 170 Top = 10 Width = 531 Height = 311 TabOrder = 1 ControlData = { 4C000000E1360000252000000000000000000000000000000000000000000000 000000004C000000000000000000000001000000E0D057007335CF11AE690800 2B2E126208000000000000004C0000000114020000000000C000000000000046 8000000000000000000000000000000000000000000000000000000000000000 00000000000000000100000000000000000000000000000000000000} end end |
Re: Data zu Treeview hinzufügen ?
Definiere dir einen Recordtyp, von dem du dann einen pro Node zuweist.
|
Re: Data zu Treeview hinzufügen ?
TreeView.Items.AddChildObject()
ich hätts darüber gelösst. |
Re: Data zu Treeview hinzufügen ?
Zitat:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var oNewNode : TTreeNode; begin oNewNode := treeview1.Items.AddObject(nil, 'Suchmachinen', Nil); treeview1.Items.AddChildObject( oNewNode, 'google', Nil ); treeview1.Items.AddChildObject( oNewNode, 'yahoo', Nil ); // wie kann ich nun den Link zuweisen // URL := 'www.google.de'; für google // URL := 'www.yahoo.de'; für yahoo |
Re: Data zu Treeview hinzufügen ?
Delphi-Quellcode:
type
PMydata = ^TMyData; TMyData = Record Url: string; end; ... procedure TForm1.Button1Click(Sender: TObject); var oNewNode : TTreeNode; data: PMyData; begin oNewNode := treeview1.Items.AddObject(nil, 'Suchmachinen', Nil); new(data); data.url := 'http://www.google.de'; treeview1.Items.AddChildObject( oNewNode, 'google', data ); new(data); data.url := 'http://www.yahoo.de'; treeview1.Items.AddChildObject( oNewNode, 'yahoo', data ); ... |
Re: Data zu Treeview hinzufügen ?
Zitat:
![]() |
Re: Data zu Treeview hinzufügen ?
:lol:
sollte so gehen wie meine nachfolgenden poster es geschrieben haben... |
Re: Data zu Treeview hinzufügen ?
Es passiert aber nichts :cry:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var oNewNode : TTreeNode; data: PMyData; begin oNewNode := treeview1.Items.AddObject(nil, 'Suchmachinen', Nil); new(data); data.url := 'http://www.google.de'; treeview1.Items.AddChildObject( oNewNode, 'google', data ); new(data); data.url := 'http://www.yahoo.de'; treeview1.Items.AddChildObject( oNewNode, 'yahoo', data ); end; procedure TForm1.TreeView1DblClick(Sender: TObject); var oNewNode : TTreeNode; data: PMyData; begin webbrowser1.Navigate(data); end; end. |
Re: Data zu Treeview hinzufügen ?
Und woher soll er in TreeView1DblClick wissen, was du mit Data meinst? :gruebel:
|
Re: Data zu Treeview hinzufügen ?
Delphi-Quellcode:
procedure TForm1.TreeView1DblClick(Sender: TObject);
var oNewNode : TTreeNode; data: PMyData; begin data := (Sender as TTreeView).Selected.Data; webbrowser1.Navigate(data.Url); end; |
Re: Data zu Treeview hinzufügen ?
Zitat:
Man muss wahrscheinlich ein Schleifer einbauen |
Re: Data zu Treeview hinzufügen ?
Springt der Debugger rein?
|
Re: Data zu Treeview hinzufügen ?
Lass dir mal den Inhalt von data.Url anzeigen:
Delphi-Quellcode:
procedure TForm1.TreeView1DblClick(Sender: TObject);
var oNewNode : TTreeNode; data: PMyData; begin data := (Sender as TTreeView).Selected.Data; if data <> Nil Caption := data.url else caption := ''; end; |
Re: Data zu Treeview hinzufügen ?
Zitat:
|
Re: Data zu Treeview hinzufügen ?
Type-casting?
Delphi-Quellcode:
procedure TForm1.TreeView1DblClick(Sender: TObject);
var data: PMyData; begin data := PMyData ((Sender as TTreeView).Selected.Data); webbrowser1.Navigate(data^.Url); end; Zitat:
|
Re: Data zu Treeview hinzufügen ?
Bist du dir sicher das du die Methode auch mit dem Event verbunden hast?
|
Re: Data zu Treeview hinzufügen ?
Danke sehr
es funktioniert endlich mit dem Code :
Delphi-Quellcode:
procedure TForm1.TreeView1DblClick(Sender: TObject);
var oNewNode : TTreeNode; data: PMyData; begin data := (Sender as TTreeView).Selected.Data; if data <> Nil then //Caption := data.url else caption := ''; Webbrowser1.Navigate(data.url); end; |
Re: Data zu Treeview hinzufügen ?
Ist auch nichts anderes als der Ursprungscode vom Markus? :gruebel:
|
Re: Data zu Treeview hinzufügen ?
Zitat:
Es hat aber mit dem Code oben funktioniert |
Re: Data zu Treeview hinzufügen ?
Aber wie können wir nun einen Link für Childern, die in Treeview1 bereits vorhanden sind zuweisen?
Was wir gemacht haben, wir haben alles mit einem Button erzeugt (Childern und Parents) und auch einen Link für jedes Child (sehe den Code ganz am Anfang) |
Re: Data zu Treeview hinzufügen ?
Zitat:
Delphi-Quellcode:
node.Data := data;
|
Re: Data zu Treeview hinzufügen ?
Zitat:
|
Re: Data zu Treeview hinzufügen ?
Node auslesen, in Variable speichern und per Node.Data := Data; die Daten einfügen.
|
Re: Data zu Treeview hinzufügen ?
Zitat:
Noch einmal meine Frage, Ich möchte keine Childern oder Parents erzeugen sondern nur Linke für vorhandene Children Wen es nicht möglich ist, dann kann ich die vorhandene alle löschen und in Form1 Oncraete alle erstellen. d.h. genau was wir vorher gemacht haben |
Re: Data zu Treeview hinzufügen ?
Delphi-Quellcode:
So in der Art ;)
var
Node: TTreeNode; begin Node := TreeView.Nodes[0]; Node.Data := Data; end; |
Re: Data zu Treeview hinzufügen ?
:!: :!: :!:
|
Re: Data zu Treeview hinzufügen ?
Delphi-Quellcode:
node := Treeview.Items.item[i];
|
Re: Data zu Treeview hinzufügen ?
Zitat:
sonst bin ich mit der 1. Lösung zufrieden :wink: |
Re: Data zu Treeview hinzufügen ?
Na du musst durch die vorhandenen Nodes iterieren und .Data setzen
|
Re: Data zu Treeview hinzufügen ?
Du willst kein Beispiel, sondern den fertigen Code...
Das Beispiel was Markus Dir gegeben hat, sollte reichen, um Dein Vorhaben zu realisieren. Zu "iterieren" werfe ich Dir noch die For-Schleife an den Kopf ;) |
Re: Data zu Treeview hinzufügen ?
den Werb "iterieren" habe ich nie gehört !
wie lautet das in englisch? Vielleicht kann google weiterhelfen |
Re: Data zu Treeview hinzufügen ?
Iteration <> Rekursion
|
Re: Data zu Treeview hinzufügen ?
Zitat:
Delphi-Quellcode:
var
Node : TTreenode; begin Node := Treeview1.items[0]; // erster Node while Node <> nil do // solange ein Node vorhanden begin Node.Data := ... // Dem Node Daten zuweisen Node := Node.getNext; // nächsten Node ermitteln end; end; |
Re: Data zu Treeview hinzufügen ?
Ich habe alle Linke für Childern in ListBox1 sortiert gespeichert
ich habe in Treewiew 4 Childern Yahoo MSN GMX dann habe ich in ListBox1 die Linke gespeichert : ![]() ![]() ![]() ![]() Ich habe den Code so geschrieben :
Delphi-Quellcode:
Dann soll es mit dem Code funktionen :
procedure TForm1.FormCreate(Sender: TObject);
var node: TTreeNode; Begin node:=TreeView1.Items.GetFirstNode; while node <> nil do begin if node.level = 1 then // nur Childern Node.Data := // ich möchte nun den 1. Link vom ListBox1 holen. Und hier bitte ich euch um Hilfe node := node.GetNext end; End;
Delphi-Quellcode:
procedure TForm1.TreeView1DblClick(Sender: TObject);
var oNewNode : TTreeNode; data: PMyData; begin data := (Sender as TTreeView).Selected.Data; if data <> Nil then Webbrowser1.Navigate(data.url); end; end. |
Re: Data zu Treeview hinzufügen ?
Delphi-Quellcode:
Wie wäre es mal mit der Anwendung der Delphi-Hilfe?
Node.Data := ListBox.Items[0]; // ich möchte nun den 1. Link vom ListBox1 holen. Und hier bitte ich euch um Hilfe
|
Re: Data zu Treeview hinzufügen ?
Zitat:
Man muss eine i-schleife in Spiel setzen
Delphi-Quellcode:
var node: TTreeNode;
i : Integer; Begin node:=TreeView1.Items.GetFirstNode; while node <> nil do begin if node.level = 1 then // Showmessage(node.Text); for i:= 0 to 3 do Showmessage(ListBox1.Items[i]); //Node.Data := ListBox1.Items[i] node := node.GetNext end; End; |
Re: Data zu Treeview hinzufügen ?
Zitat:
|
Re: Data zu Treeview hinzufügen ?
Wenn ich dem Node Daten vom ListBox1 zuweisen will, ewrscheint
eine Fehlermeldung in diese Zeile
Delphi-Quellcode:
...
Node.Data := ListBox1.Items[i]; // Incompatibletypes string and Pointer node := node.GetNext; |
Re: Data zu Treeview hinzufügen ?
Delphi-Quellcode:
new( node);
node.Url := ListBox1.Items[i]; Node.Data := node; |
Re: Data zu Treeview hinzufügen ?
Zitat:
Delphi-Quellcode:
new( data);
data.Url := ListBox1.Items[i]; Node.Data := data; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:01 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 by Thomas Breitkreuz