Autor Beitrag
mircojaeger
Hält's aus hier
Beiträge: 13

WIN XP,WIN Vista
Delphi 7 Enterprise
BeitragVerfasst: Di 07.04.09 08:51 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Di 07.04.09 09:15 
Random, Randomize, Case of, Array of String
mircojaeger Threadstarter
Hält's aus hier
Beiträge: 13

WIN XP,WIN Vista
Delphi 7 Enterprise
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 380


D3 Prof, D4 Prof
BeitragVerfasst: 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
ausblenden 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

_________________
Zier dich nich so, ich krieg dich schon....
Bergmann89
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1742
Erhaltene Danke: 72

Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
BeitragVerfasst: Di 07.04.09 09:32 
HI,

ausblenden 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.

_________________
Ich weiß nicht viel, lern aber dafür umso schneller^^