Bonjour à tous,
me revoilà pour une nouvelle question relative au comportement des TMemos. Je les utilise souvent pour debugger entre autres, mais il y a une subtilité qui me gène encore et dont je n'arrive pas à trouver l'origine.. ( Je suis pour le moment un amateur débutant...)
Le projet en cours est un quizz et je dois mélanger des questions, afin de les poser dans un nombre plus ou moins aléatoire. je dois donc mélanger les nombres de 1 à 10 pour commencer. pour cela, j’utilise la fonction Random pour des chiffres de 1 à 10, avec 100 tirages et je regarde le résultat dans un Tmemo, où les chiffres s'affichent sur les lignes qui correspondent. (C'est un peu bizarre, mais j'avais envie de voir le comportement de "random").
le code est :
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 var Form11: TForm11; z, max : integer; implementation {$R *.dfm} procedure TForm11.Button1Click(Sender: TObject); var i : integer; begin memo1.Clear; for i := 1 to 100 do begin z:= random(10); memo1.Lines[z] := memo1.Lines[z]+' '+ (z+1).ToString; end; end; procedure TForm11.FormActivate(Sender: TObject); var i : integer; begin max := 10; //randomize; for i := 1 to 100 do begin z:= random(10); memo1.Lines[z] := memo1.Lines[z]+' '+ (z+1).ToString; end; end; end.
Un premier tirage à lieu à l'activation de la fiche, et ensuite quand je clique sur le bouton_1.
Le comportement du TMemo qui me gène, c'est le fait de "réserver" au départ le nombre de ligne dans les propriétés, et de devoir y écrire quelque chose, juste pour ce ça fonctionne ensuite pour affiche mes valeurs :
(dans mon cas j'ai juste fais entrer pour valider des lignes )
Ca fonctionne bien et si je clique j'ajoute un tirage à chaque fois.
Cependant, si je veux voir un seul tirage à la fois, je mets le "Clear" qui est actuellement en commentaire et cela devient moins rigolo et donne :
Seule la ligne indexée "0" semble à présent s'afficher, même si moi, je mets des infos sur d'autres lignes, elles semblent carrément ignorées!
J'en arrive à mes questions :
Un Tmemo a-t-il uniquement la ligne 0 active par défaut? Si oui, comment "vérrouiller" un nombre minimum de lignes considérées?
Pourquoi un TMemo n'affiche pas toujours la ligne désirée alors qu'on y envoie une valeur?
Comment à la fois effacer le contenu des lignes actuellement affichées, tout en pouvant les remplir et les afficher à nouveau avec d'autres chaines en étant sur que l'affichage sera validé??
Question subsidiaire pour le "random" mais non indispensable. J'ai fais des tests en activant ou pas la fonction conseillée "Randomize", mais j'ai rein constaté de plus. Est-ce vraiment utile??
Voila pour le moment. Merci à tous ceux qui pourront m'éclairer sur ce comportement lunatique de mes Tmemos pour l'affichage!!![]()
Partager