Autor Beitrag
mrmiagi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 31


Delphi 7 pro
BeitragVerfasst: Di 12.08.03 08:55 
Ich habe einen Treeview der sich seine Nodes aus einer Datenbank durch ein query holt. Nun soll durch klick auf einen Node mir ein Feld aus dem selbem Datensatz angezeigt werden, ausdem der Node stammt.
Muss wohl irgendwie mit Pointern funktionieren oder so!
kann mir da jemand weitehelfen?

Moderiert von user profile iconTino: Titel geändert.
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Di 12.08.03 11:27 
Hallo!

du kannst bei jeder Node einen Pointer angeben (Eigenschaft Data). Dort könntest du zum Beispiel die Datensatznummer speichern. Wenn du dann auf so einer Node klickst ließt du die Datensatznummer wieder aus und hast dann die Möglichkeit das entsprechende Feld aus der Datenbank zu lesen.

Gruß
Tino
mrmiagi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 31


Delphi 7 pro
BeitragVerfasst: Di 12.08.03 11:42 
Hört sich ja gut an, das habe ich auch schon in etwa so probiert. Funktionierte aber nie, könntest du mir vielleicht mal etwas Beispiel Code geben?
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Di 12.08.03 13:12 
mrmiagi hat folgendes geschrieben:
Hört sich ja gut an, das habe ich auch schon in etwa so probiert.
Funktionierte aber nie, könntest du mir vielleicht mal etwas Beispiel
Code geben?

da steht doch eins in der Hilfe drin: ttreenode.data. gugg mal dort.

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Di 12.08.03 14:37 
Hallo!

mrmiagi hat folgendes geschrieben:
könntest du mir vielleicht mal etwas Beispiel Code geben?

Zeig doch mal deinen Versuch. Dann können wir dir zeigen was du falsch gemacht hast.

Gruß
Tino
mrmiagi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 31


Delphi 7 pro
BeitragVerfasst: Di 12.08.03 15:15 
ja in der Hilfe habe ich schon geschaut, ich habe auch schon was rausgeholt:
Zuerst füge ich die Childs mit Daten hinzu:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
UKind := Treeview1.items.AddChildObject (
    Kind, 
    query3.fieldbyname ('struktur').AsString,
    query3.FieldByName ('Bild_key_nr')
  );
  Query3.Next;

Steht dann hinter jedem Child dir dazugehörige 'Bild_Key_Nr' aus meinem Query3, oder kann ich das nicht so machen. Weil dann möchte ich durch einen neuen Query auf eine Tabelle zugreifen und mit dem Paramter :key die passenden Sätze selektieren und in ein memo einfügen.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.Button4Click(Sender: TObject);
begin
query4.Active := true;
query4.ParamByName('key').AsInteger := integer(treeview1.Selected.Data);
query4.ExecSQL;
memo1.lines.add  (query4.ParamByName('Daten').AsString);

end;

Das neue Query sieht so aus:
ausblenden Quelltext
1:
select * from stat1dat where 'Bild_Key_Nr' =  :key					

Aber er bringt nur die Meldung Typ für Feld 'key' ist unbekannt? Was heißt das? Wenn ich die treeview1.Selected.Data Abfrage steht nur totaler schwachsinn drin : Ø?G . Was ist denn das, auf jeden Fall nicht das was ich selektiert habe in meinem treeview! Aúßerdem scheint sich das nie zu verändern wenn ich einen neuen node in meinem Tree auswähle!
Muss ich noch mit indexen oder so arbeiten?

Moderiert von user profile iconTino: Code-Tags hinzugefügt.