Avatar billede hmm_t Nybegynder
24. februar 2002 - 21:57 Der er 10 kommentarer

Hmm...

Jeg kan ikke få det her til at virke:

  For T := 0 to Theroom.Brugere.Items.Count - 1 Do
    Begin
      If Theroom.Brugere.Items[T] = Logon.Brugernavn.Text Then
        Begin
          Theroom.Brugere.Items.Delete(T);
        End;
    End;
  Theroom.Brugere.Items.SaveToFile('c:\brugere.txt');

Den efterlader bar en tom plads istedet for at slette item'en!

Håber i forstår!
Avatar billede sblar Nybegynder
24. februar 2002 - 22:49 #1
Jeg er ikke helt sikker, men jeg tror at Theroom.Brugere.Items.Count - 1 bliver evalueret for hvert gennemløb og så er det er *meget* dårlig idé at have noget kode inde i løkken som ændrer på tællerværdien. Prøv istedet at gemme ...Count i en variabel inden du starter løkken, og så bruge denne som tæller.
Avatar billede dkn Nybegynder
24. februar 2002 - 23:40 #2
måske hvis du tæller fra "toppen" af, det vil virke:
for T := Theroom.Brugere.Items.Count - 1 downto 0 do
...
Avatar billede 1003 Nybegynder
25. februar 2002 - 09:35 #3
Du bør nok lukke det ene spm.
http://www.eksperten.dk/spm/177197
Avatar billede hmm_t Nybegynder
25. februar 2002 - 23:11 #4
sblar >> Den gør det stadig!

dkn >> Har jeg prøvet!
Avatar billede sblar Nybegynder
26. februar 2002 - 08:08 #5
Hvad er "Brugere" egentlig for en størrelse? Er det en StringList (eller lign.) er der altså en overhængende fare for at du får slettet noget forkert idet index skifter hver gang du sletter et element.
Avatar billede hmm_t Nybegynder
26. februar 2002 - 19:38 #6
Brugere er en TListBox!
Avatar billede doc404 Novice
28. februar 2002 - 21:51 #7
Hvis du laver ovenstående med en flad listbox med f.eks. 10 items i får du en 'List index out of bounds' - i hvert tilfælde på Delphi 5. Grunden er, som tidligere kommenteret, at Delphi kun evaluerer Items.Count een gang og derfor får du et overløb. Hvorfor det bare efterlader en blank må guder vide... Du burde få en 'list index...'

Men hvis ideen er at slette en bruger (går udfra at der ikke eksisterer to ens) kan du bruge

with Theroom.Brugere.Items do
  Delete(IndexOf(Logon.Brugernavn.Text));
Avatar billede hmm_t Nybegynder
04. marts 2002 - 00:01 #8
Den efterlader oså bare en blank!
Sakl i have mere kode eller noget?
Avatar billede doc404 Novice
04. marts 2002 - 09:28 #9
Det ville være en god ide med noget mere kode...
Avatar billede hmm_t Nybegynder
06. marts 2002 - 15:31 #10
Skal jeg uploade det hele?
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