Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TreeView (https://www.delphipraxis.net/72305-treeview.html)

Steven12 28. Jun 2006 12:57


TreeView
 
Hallo, ich habe ein paar fragen zum TreeView unswar:

Wie kann man per Button1 ein neuer Knoten und per Button2 untereinträge erstellen:

http://ruschy.de/test.jpg

---------------
Für jeden untereintrag soll in einem RichEdit ein Text eingetragen werden den man dann auch abspeichern kann...

Ich hoffe ihr wisst wie ich es meine & könnt mir helfen

fLaSh11 28. Jun 2006 13:53

Re: TreeView
 
Untereintrag? geht das nicht mit AddChild?

//Edit: und speichern so am besten mit ini:
[3432452]
Egal=Text
...=...
[...]
...=...

P.S.: Davon gibts auch ne Anleitung! Und im die Suche findet sicher auch einiges!

Angel4585 28. Jun 2006 13:58

Re: TreeView
 
Guggs du :zwinker:
Delphi-Quellcode:
var
 t : TTreeNode;
begin
with TreeView.Items do
  begin
  AddChild(nil,'Knoten1');
  t:=AddChild(nil,'Knoten2');
  AddChild(t,'Unterpunkt1');
  AddChild(nil,'Knoten3');
  end;
end;

Steven12 28. Jun 2006 13:59

Re: TreeView
 
Zitat:

Zitat von fLaSh11
Untereintrag? geht das nicht mit AddChild?

Ich weiß gar nicht was bzw wie du das meinst...?
// Edit: Schon ok
----
Angel4585 ich verstehe das nicht so wirklich brauche ich dafür nicht noch ein paar variablen?

Die Muhkuh 28. Jun 2006 14:03

Re: TreeView
 
Zitat:

Zitat von Angel4585
Guggs du :zwinker:
Delphi-Quellcode:
with TreeView.Items do
  begin
  AddChild(nil,'Knoten1');
  t:=AddChild(nil,'Knoten2);
  AddChild(t,'Unterpunkt1');
  AddChild(nil,'Knoten3');
  end;

*klugscheiß* :mrgreen:

Geht nicht, da fehlt ein '

Delphi-Quellcode:
with TreeView.Items do
  begin
  AddChild(nil,'Knoten1');
  t:=AddChild(nil,'Knoten2'); // Hier fehlte ein ' zum schluss :P
  AddChild(t,'Unterpunkt1');
  AddChild(nil,'Knoten3');
  end;

Steven12 28. Jun 2006 14:15

Re: TreeView
 
Danke für die hilfen schon einmal!
Delphi-Quellcode:
  t:=AddChild(nil,'Knoten2);
  AddChild(t,'Unterpunkt1');
In den 2 Zeilen wird mein einfehler amgezeigt unswar beim t ich denke das ich dafür noch eine variable benötige... Aber welche?

Angel4585 28. Jun 2006 14:20

Re: TreeView
 
@Klugscheisser: habs oben korrigiert :zwinker:

@Steven: Variable hab ich oben auch dazugemacht ;)

Erklärung:

Addchild gibt das Treenode das man gerade erstellt hat zurück,
wenn du einen Unterpunkt erstellen willst, übergibts du einfach den Knoten wo du den Punkt anheften willst(in meinem Beispiel ist das das "t")
wenn du einen komplett neuen Knoten erstellen willst übergibst du eben "nil"

Steven12 28. Jun 2006 14:29

Re: TreeView
 
Ok dankeschön das ist klasse!
Aber ich möchte auch noch gerne für jedes
Delphi-Quellcode:
AddChild(t,'Unterpunkt1');
Also Unterpunkt möchte ich in ein RichEditwas eintragen und wenn möglich diesen eintrag auch unter diesem Unterpunkt speichern wenn ihr mir da auch nocheinmal helfenkönntet wäre supi?

Angel4585 28. Jun 2006 14:35

Re: TreeView
 
Zitat:

Zitat von Steven12
Ok dankeschön das ist klasse!
Aber ich möchte auch noch gerne für jedes
Delphi-Quellcode:
AddChild(t,'Unterpunkt1');
Also Unterpunkt möchte ich in ein RichEditwas eintragen und wenn möglich diesen eintrag auch unter diesem Unterpunkt speichern wenn ihr mir da auch nocheinmal helfenkönntet wäre supi?

guggs du weidahahaa
Delphi-Quellcode:
procedure TForm1.TreeViewChange(Sender: TObject; Node: TTreeNode);
begin
with TreeView do
  begin
  if Selected.Text = 'Unterpunkt1' then
    begin
    ...
    //Wie man unter dem Punkt jetzt am besten was speichert weis ich leider nicht
    end;
  end;
end;

Steven12 28. Jun 2006 14:46

Re: TreeView
 
Mh... Also eigentlich wollte ich wenn ich jetzte ein 'Unterpunkt1' & noch einen 'Unterpunkt2' und wenn ich zb 'Unterpunkt1' anklicke kann ich was dafür ins RichEdit schreiben und wenn ich 'Unterpunkt2' anklicke kann ich dafür auch was reinschreiben...? :mrgreen:

Angel4585 28. Jun 2006 15:22

Re: TreeView
 
hmm..

Punkt1 -> Text

Punkt2 -> noch ein Text

sowas meinst du?

Das könntest du mit Listen machen, ist aber bissi kompliziert:

Also du bracuhst ein Objekt das ca. so aussieht:

Delphi-Quellcode:

TPunkt = class;

TPunktliste = array of TPunkt;

TPunkt = class(TObject)
  public
    Unterpunkte : TPunktListe;
    Name : string;
    Text : string;
    constructor Create(AOwnerPunkt : TPunkt);
  end;
Also das soll jetzt nur ein Ansatz sein, ich hab leider grad keine Zeit das weiter zu vertiefen, aber schau dir das doch einfach mal an ;)

Steven12 28. Jun 2006 15:51

Re: TreeView
 
mh mist aber egal danke für die hilfe ich habe des jetzt :hello:

Angel4585 28. Jun 2006 15:54

Re: TreeView
 
und wie hast du es jetzt gemacht? :gruebel:

Steven12 28. Jun 2006 18:32

Re: TreeView
 
Ne habe mich vertan da klappp nix :P... Da muss ich eine datenbank für machen und damit kenn ich mich überhaubt nicht aus :(.. Weil wenn man ja ein unterverzeichnes hat soll wenn man dort draufklick was in ein RichEdit reingeschriben werden das soll aber auch für jedes unter verzeichnes. Man soll dann den text der im RichEdit ist mit den Unterveizeichnis zusammen gespeichert werden! Und wenn man dann auf eins der vorhandenen unterverzeichnissen klickt öffnet sich im RichEdit der dazugehörige Text...

Aber leider kann mir keiner helfen ich bin da auch schon über 13 Tage dran^^ Aber ich habe nix im Internet gefunden wie man des macht naja hier war meine letzte hoffung :wall:

winnionkel 28. Jun 2006 19:24

Re: TreeView
 
Hallo,

Wo speicherst du denn die RTF Texte?
Wenn du keine Datenbank verwenden möchtest, dann benutze eine INI-Datei in der du die Pfade zu den RTF-Texten einträgst.

z.B.:
[RTF-Text]
1=C:\Test\Text1.rtf
2=C:\Test\Text1.rtf

Dann kannst du dem neuen Knoten den du hinzufügst einen Pointer geben mit der entsprechenden Nr.
Wenn du das so machen möchtest, melde dich noch mal.
Ich helfe dir dann...

Gruß Winni


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:55 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