Du kan IKKE slette et Index i det array, så jeg vil anbefale dig at lave din kode om så du bruger en TObjectList i stedet for et OpenArray den er mere flexibel og nemere at vedligeholde ( slette / tilføje osv )
/Martin
Synes godt om
Slettet bruger
14. maj 2002 - 16:03#2
hvordan bruger man TObjectList ? kunne du vise et eksempel på at se det igennem for et given ting og så tilføje og slette
Først skal jeg lige sige at der er et par fine functioner til dynamiske arrays: High(DArray) returnerer det sidste index (-1 hvis den er tom) Low(DArray) returnere det første index (Altid 0 for dynamiske arrays) Length(DArray) returnere antal elementer (Altid High(DArray)+1 for dynamiske arrays) SetLength(DArray, x) Sætter længden til x.
Det er måske nemmera at bruge en TStringList, den kan også bruge objecter. Så kan du bruge StringList.AddObject(Copy(msg, Lastdelimiter(':', msg), length(msg)), User). Nu kan du bruge stringlist.indexof(streng) for at find kanalen igen. (ps. stringlist.find() virker kun hvis stringlisten er sorteret)
Hvis du vil slette element nr. n i en dynamisk array må du bruge: Channels[n] := Channels[high(Channels)]; SetLength(Channels, Length(Channels)-1); dvs. flytte det sidst element til position n og fjerne det sidste.
Hvis du vil tilføje må du også sætte array'ens længde op, således: SetLength(Channels, Length(Channels)+1): Channels[high(Channels)] := TChannel.Create; osv.
Synes godt om
Slettet bruger
14. maj 2002 - 18:06#5
hm tak for svarene jeg skal lige teste jeres svar så ser jeg lige om det er svar nok.
Bemærk at det er en type som senere skal have flere oplysninger end bare channel name og derfor kan det vel ikke bruges Tstringlist
Jo du kan meget vel bruge TStringList, og gøre som Tormork foreslår, så har du en nem måde at søge efter dine objecter, nemli' via "Navnet", "resten" af obj. lægger du i Objects property'en.
/Martin
Synes godt om
Ny brugerNybegynder
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.