salut
je cherchais à très bien mélanger un Tlistbox ou un array (ils contiendront des nombres de 1 à 60)
j'ai cherché sur le forum, et les morceaux de code trouvés ne fonctionnent pas correctement ou alors le mélange n'est pas efficace
sur delphi about ou je trouve toujours tout, j'ai trouvé un code qui me semblait intéressant :
http://delphi.about.com/cs/adptips20...ltip1003_4.htm
mais ça ne fonctionne pas !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 Place a TButton (Button1) and a TListBox (ListBox1) and try: ~~~~~~~~~~~~~~~~~~~~~~~~~ procedure Shuffle( var aArray; aItemCount: Integer; aItemSize: Integer) ; var Inx: Integer; RandInx: Integer; SwapItem: PByteArray; A: TByteArray absolute aArray; begin if (aItemCount > 1) then begin GetMem(SwapItem, aItemSize) ; try for Inx := 0 to (aItemCount - 2) do begin RandInx := Random(aItemCount - Inx) ; Move(A[Inx * aItemSize], SwapItem^, aItemSize) ; Move(A[RandInx * aItemSize], A[Inx * aItemSize], aItemSize) ; Move(SwapItem^, A[RandInx * aItemSize], aItemSize) ; end; finally FreeMem(SwapItem, aItemSize) ; end; end; end; procedure TForm1.Button1Click(Sender: TObject) ; var a: array[1..54] of Integer; i: Shortint; begin Randomize; for i := Low(a) to High(a) do a := i; Shuffle(a, High(a), SizeOf(Integer)) ; ListBox1.Clear; for i := 1 to High(a) - 1 do ListBox1.Items.Add(IntToStr(a)) ; end; ~~~~~~~~~~~~~~~~~~~~~~~~~
j'ai les messages d'erreur :
[Erreur] Unit1.pas(66): Types incompatibles : 'Array' et 'Shortint'
[Erreur] Unit1.pas(70): Aucune version surchargée de 'IntToStr' ne peut être appelée avec ces arguments
donc voilà j'aimerais votre aide pou faire fonctionner ce code ou alors si vous avez une autre solution? il me faut quelque chose qui mélange bien ^^
merci
Partager