hallo delphi freunde,
ich habe ein großes problem! ich soll für die schule eine simulation programmieren, in der per zufall neue kunden generiert werden und die dann zu einem schalter gehen sollen. nun habe ich mir 2 timer eingerichtet, einer der für die kunden erstellung und einen der für die kunden bewegung zuständig ist. beide timer sind anfangs synchron, auf 100ms gestellt. trotzdem kommt es vor, dass einige objekte, die ich später erstellt habe, also zum beispiel label von kunde5 das label von kunde4 überholt obwohl kunde 5 nach dem Code da unten ja erst später abgearbeitet wird, da er später in der liste drin ist.
Quelltext
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:
| procedure TForm1.Timer2Timer(Sender: TObject); var index:Integer; begin al_reset(in_post); For index:=0 TO besucher1 DO BEGIN al_show(in_post,inhalt); IF inhalt.label_name<>'' THEN BEGIN variable2:=FindComponent(inhalt.label_name); IF (TLabel(variable2).Left=300) AND (TLabel(variable2).Top=104) THEN BEGIN y:=y+10; al_delete(in_post); al_append(schalter[0].liste,inhalt); END; IF (TLabel(variable2).Left=300) AND (TLabel(variable2).Top>104+y) THEN TLabel(variable2).Top:=TLabel(variable2).Top-20; IF (TLabel(variable2).Top=344) AND (TLabel(variable2).Left<300) THEN TLabel(variable2).Left:=TLabel(variable2).Left+20; IF (TLabel(variable2).Left=100) AND (TLabel(variable2).Top>360) THEN TLabel(variable2).Top:=TLabel(variable2).Top-20; TLabel(variable2).Caption:=variable2.name; END; al_next(in_post); END; end; end. |
al_*** meine prozeduren, die sich mit Linearen listen beschäftigen
in_post kundenliste der kunden in der post
Quelltext
1: 2: 3: 4: 5: 6:
| inhalt ist vom al_inhalttyp al_inhalttyp = Record label_name:String; destination:String; wuensche:Array[0..2] OF wunschtyp; end; |
y ist dazu da, dass ein abstand in der warteschlange entsteht, was aber auch nicht so ganz klappt!
für eure hilfe währe ich sehr seeeeeeeeeeeeeeeeeeeeeeeeeeeeehr dankbar!
komodor