Avatar billede jgthb Nybegynder
07. juni 2006 - 23:23 Der er 3 kommentarer og
1 løsning

random linje memo

Hej

Jeg har en memo, hvori der står noget på et vist antal linjer. Jeg vil så have byttet rundt på disse linjer ved tilfældighed. Jeg har prøvet at løse det ved at lave en ny memo og så tage en tilfældig linje fra første memo og putte ind i den nye memo og så slette linjen fra første memo. derefter tage en ny linje fra første memo og putte ind i anden memo og så slette linjen fra første memo. og så videre. Men det virker ikke. Så kan en eller anden finde fejlen i min procedure og/eller komme med en anden løsningsmodel.

tak

------

procedure slut;
var
c,antalnu,tilfaeldig,antalstart:integer;
begin
Antalstart:=form1.alle.lines.count;
for c:=0 to antalstart-1 do
begin
antalnu:=form1.alle.lines.count;
tilfaeldig:=random(antalnu)-1;
form1.Memo1.Lines[c]:=form1.alle.lines[tilfaeldig];
form1.alle.Lines.delete(tilfaeldig);
end;
end;
Avatar billede kroning Nybegynder
07. juni 2006 - 23:39 #1
var
    i : integer;
begin
    Randomize;
    for i:=0 to Memo1.Lines.Count-1 do
      Memo1.Lines.Move(Random(Memo1.Lines.Count),0);
end;
Avatar billede jgthb Nybegynder
08. juni 2006 - 00:00 #2
hmm. jeg forstår egentlig ikke, hvorfor
"Memo1.Lines.Move(Random(Memo1.Lines.Count),0);"
ikke skal være
"Memo1.Lines.Move(Random(Memo1.Lines.Count)-1,0);"
men det virker jo :) så du får point. Ved du hvorfor mit ovenover ikke virker? I så fald, hvis du gider, må du da gerne sige det. Men tak
Avatar billede kroning Nybegynder
08. juni 2006 - 00:15 #3
Sådan her virker det:

var
    c,antalnu,tilfaeldig,antalstart:integer;
begin
    Randomize;
    Antalstart:=form1.alle.lines.count;
    for c:=0 to antalstart-1 do
    begin
        antalnu:=form1.alle.lines.count;
        tilfaeldig:=random(antalnu);
        form1.Memo1.Lines.Add(form1.alle.lines[tilfaeldig]);
        form1.alle.Lines.delete(tilfaeldig);
    end;
end;


Mht. Random så vil f.eks. Random(10) give et tal mellem 0 og 9 så derfor skal det ikke være Memo1.Lines.Count-1.
Avatar billede jgthb Nybegynder
10. juni 2006 - 00:08 #4
smart. jeg forstår. tak for hjælpen endnu engang
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