Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - zufällige anzeige im edit-feld


mircojaeger - Di 07.04.09 08:51
Titel: zufällige anzeige im edit-feld
hi@all,

ich wieß nicht wie ich euch meine situation erklären soll, ich mache es mal als bsp für einen aufgaben-programm:

zumbesipsiel wähle ich mit hilfe von radiobuttons einen raum in meinem haus aus und drücke dann auf den button aufgaben anzeigen und das programm zeigt mir dann eine aufgabe auf, danach eine andere danach wieder eine andere. aber immer nur eine(soll in dem edt-feld angezeigt werden) welche aufgabe zu erst und welche zuletzt soll zufällig sein.
wie mache ich das?

mfg
mircojaeger


Blackheart666 - Di 07.04.09 09:15

Random, Randomize, Case of, Array of String


mircojaeger - Di 07.04.09 09:22

würdest du mir bitte einwinig mehr helfen als ein paar wörter bzw befehle dahin zu klatschen?


oldmax - Di 07.04.09 09:27

Hi
Sicherlich hast du die Aufgaben schon formuliert. Also schreibe diese in eine Stringlist. Du könntest für jeden Raum eine Liste einsetzen, je nachdem, wie du dein Programm aufbaust. Nun kommen wir zu der zufälligen Ausgabe der Aufgaben.Deine einträge stehen der Reihe nach in den Listen, beginnend mit dem Index 0. Wenn du also 10 Einträge hast, ist der größte Index 9. Nun schaust du unter der Hilfe nach Random und Randomize. Mit Randomize initialisierst du den Zufallsgenerator und mit Random(10) erhälst du eine "zufällige" Zahl im Bereich von 1- 10. Davon mußt du dann 1 abziehen, damit du diese Zahl als Index für deine Liste benutzen kannst
etwa so

Delphi-Quelltext
1:
2:
Index:=Random(Cb_JobListe.Items.Count)-1;
  Ed_MyJob.Text:= Cb_JobListe.Items[Index];


und damit du den Job nicht zweimal machen mußt, löscht du diesen aus der Liste. Damit wird Cb_Jobliste.Items.Count entsprechend kleiner und der nächste Zugriff kann kein zweites mal den selben Job erteilen.
Mit Ed_MyJob ist ein Editfeld und mit Cb_Jobliste eine Combobox benannt.
Gruß oldmax


Bergmann89 - Di 07.04.09 09:32

HI,


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
var i, n: Intger;
var aufghabe: array of String//hier stehen die ganzen aufgaben drin

randomize; //nur einma in FormCreate oder so aufrufen
SetLength(aufgabe, n+1); //länge von aufgaben festlegen
aufgabe[0] = 'aufgabe 1';//aufgaben aufschreiben (evtl. auch aus datei laden)
aufgabe[1] = 'aufgabe 2';
.
.
.
aufgabe[n] = 'aufgabe n';

//befüllen des edits
i := random(length(aufgaben));
edit1.text := aufgabe[i];


MfG Bergmann.