Avatar billede nih Novice
20. april 2002 - 15:44 Der er 1 kommentar og
1 løsning

treeview / datastruktur

I forlængelse af sp. http://www.eksperten.dk/spm/199291
Har jeg fået mit 'træ' til at loade fra databasetabelen:
tblNode: Nodeid, pNode, Navn, artId, Sortering, level.
SQL = SELECT FROM tblNode ORDER BY niveau, sortering;

Som det ses har jeg været nødt til at vedligeholde et felt: 'niveau' for at få alle nodeId'er repræsenteret :o(

Jeg smider gerne yderligere pts i puljen for kommentarer til koden.

Niels
Avatar billede nih Novice
20. april 2002 - 15:45 #1
type
  TNData = class
    datanode : Integer;
    dataPnode : integer;
  end;
procedure TfrmMain.FormCreate(Sender: TObject);
var
  ndata : tndata;
  nyNode,PNode : ttreenode;
  nyNodeNavn : string;
  NyNodeId: integer;
  NyPnodeId : integer;
  imgId : integer;
  i: integer;

begin
  dsnode.First;
  while not dsnode.Eof  do
  begin
    NyPnodeId := dsnode.FieldByName('pnode').AsInteger;
    nyNodeNavn :=  dsnode.FieldByName('navn').asstring;
    NyNodeId :=  dsnode.FieldByName('nodeid').AsInteger;
    imgId :=  dsnode.FieldByName('artId').AsInteger;

    ndata := TNData.Create;
    TNData(nData).datanode:= NyNodeId;
    TNData(nData).dataPnode := NypNodeId;

    if NyPnodeId = -1 then begin
      // 'ROOT'
      nynode := tv.Items.Add(nil,nyNodeNavn);
      nynode.Data := ndata;
      end
    else begin;
      for i := 0 to tv.Items.Count -1 do begin
        pnode := tv.Items.item[i];
        if tndata(pnode.Data).datanode = nyPnodeId then begin
          nynode := tv.Items.AddChild(Pnode,nyNodeNavn);
          nynode.Data := ndata;
        end;//if
      end;  //for
    end;    //if
    nynode.ImageIndex := imgId;
    nynode.Data := ndata;
    dsNode.Next;
  end;
end;
Avatar billede nih Novice
05. maj 2002 - 22:46 #2
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester