07. juni 2006 - 23:23Der 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;
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
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.
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.