Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Und noch was: Arrayausgabe in ein TV (https://www.delphipraxis.net/41924-und-noch-arrayausgabe-ein-tv.html)

Airblader 10. Mär 2005 19:35


Und noch was: Arrayausgabe in ein TV
 
Hi,
hab schon wieder ein problem...

Ich habe ein Array und in dem Array ist ein weiteres array.
nun will ich das array als parent nodes in ein TV ausgeben und das array in dem array soll pro index als child des parent angelegt werden.

momentan ist die funktion folgende:

Delphi-Quellcode:
procedure TForm1.UpdateDetailAuswahl;
var
        i,j: integer;
begin
        Form1.DetailAuswahl.Items.Clear;

        for i := 0 to high( TProduktion ) do
        begin
                with Form1.DetailAuswahl.Items do
                begin
                        Add(nil, TProduktion[i].Name);

                        for j := 0 to high( TProduktion[i].Maschinen ) do
                        begin
                                AddChild( Form1.DetailAuswahl.Items.Item[i], TProduktion[i].Maschinen[j].Name);
                        end;

                end;
        end;
end;
Problem:
Er kommt mit den items durcheinander und würfelt die childs irgendwo anders rein wo er nicht soll (wird ein child hinzugefügt stimmt das item[i] nichtmehr, da dies dann in ein child verweist)

Ich habe schon versucht:
  • Eine Variable, die mitzählt wieviele Childs hinzugefügt wurden und dann item[i+step].
    Problem: Wird die Funktion nochmal aufgerufen (update halt) gibts chaos
  • 2 Schleifen in denen getrennt parents und childs angelegt werden.
    Problem: Auch hier kommt er nach dem einfügen des childs durcheinander

ist diesmal n dummes logisches problem, hab allein schon lange gebraucht bis ich den fehler gefunden hatte...über tipps wie ich das array + unter-array ausgeben kann wäre ich sehr dankbar

air

ibp 10. Mär 2005 20:01

Re: Und noch was: Arrayausgabe in ein TV
 
Delphi-Quellcode:
procedure TForm1.UpdateDetailAuswahl;
var
  i,j: integer;
  node:ttreenode;
begin
  Form1.DetailAuswahl.Items.Clear;

  for i := 0 to high( TProduktion ) do
  begin
    node:=Form1.DetailAuswahl.Items.Add(nil, TProduktion[i].Name);
   
    for j := 0 to high( TProduktion[i].Maschinen ) do
      Form1.DetailAuswahl.Items.AddChild(node, TProduktion[i].Maschinen[j].Name);
  end;
end;
versuch es mal so!

Airblader 10. Mär 2005 20:05

Re: Und noch was: Arrayausgabe in ein TV
 
Ach, manchmal könnte man den Kopf gegen die Wand schmeißen :mrgreen:

Bis auf ein end zu viel am Ende funktioniert alles hervorragen...Danke (das sag ich heut zum 3. Mal)

jedesmal werde ich hier dran erinnert warum die DP für mich das beste Hilfeforum is :dp:

air
(edit: wobei ich nie wie hier fertige codes verlange ;) )


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