Avatar billede zerohero Nybegynder
16. oktober 2001 - 11:18 Der er 10 kommentarer og
1 løsning

Array vs. TTreeView

Hvordan kan jeg lave et dynamisk array som indeholder et hiearki ligesom en TTreeView.
- Hvis jeg nu vil have definet følgende:

type
TMyArray = packed record
1,2,3 : single;
name  : string;
end;
Avatar billede martinlind Nybegynder
16. oktober 2001 - 12:06 #1
evt sådan :

type

  PMyRec = ^TMyRec;

  TMyRec = Record
    Text : String;
    Subs : array of PMyRec;
  end;

var
  MyArr : array of TMyRec;
Avatar billede zerohero Nybegynder
16. oktober 2001 - 13:07 #2
Gider du at lave et eksempel, hvis hiearki se således ud...

A┐
│
├B─┐
│  ├B1
│  ├B2
│  └B3
└C─┐
    ├C1
    ├C2┐
    │  └D
    └C3

Tak... :-P

ZeroHero
Avatar billede zerohero Nybegynder
16. oktober 2001 - 13:08 #3
Hvad.... det ser jo helt mærkligt ud...
Avatar billede zerohero Nybegynder
16. oktober 2001 - 13:10 #4
A
.
.B...B1
.  .B2
.
.C...C1
    .C2
    .C3
Avatar billede martinlind Nybegynder
16. oktober 2001 - 13:41 #5
Du skal vel gøre noget i denne stil :

SetLength(MyArr,10);
SetLength(MyArr[0].Subs,10);
MyArr[0].Text := \'A\';
MyArr[0].Subs^[0].Text := \'A1\';

Jeg har ikke lige tid til at forsøge


Avatar billede zerohero Nybegynder
16. oktober 2001 - 15:04 #6
ok... jeg prøver - tak :-P
Avatar billede zerohero Nybegynder
16. oktober 2001 - 15:25 #7
Delphi brokker sig og skriver følgende:

[Error] Unit1.pas(38): Pointer type required

ZeroHero
Avatar billede martinlind Nybegynder
16. oktober 2001 - 17:22 #8
Hmm, skal det være et array du skal bruge, hvad med en StringList istedet for, så kan du lægge en sub StringList i Objects, det funker fint, det har jeg tit lavet
Avatar billede zerohero Nybegynder
16. oktober 2001 - 17:28 #9
ok... jeg prøver
Avatar billede zerohero Nybegynder
16. oktober 2001 - 17:46 #10
Hvordan?
Avatar billede martinlind Nybegynder
16. oktober 2001 - 21:04 #11
VAR
  MyList : TStringList;
  Cnt : Integer;
begin
  MyList := TStringList.Create;
  MyList.AddObject(\'A\',TStringList.Create);
  Cnt := MyList.AddObject(\'B\',TStringList.Create);
  TStringList(MyList.Objects[Cnt]).AddObject(\'B1\',TStringList.Create);
  TStringList(MyList.Objects[Cnt]).AddObject(\'B2\',TStringList.Create);
....
....
  MyList.AddObject(\'C\',TStringList.Create);
 
end;

Også vidre, det er ret enkelt.

/MArtin
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