| Autor |
Beitrag |
minipliman
      
Beiträge: 17
|
Verfasst: So 04.12.05 15:49
hallo!
weiß nich genau obs das richtige unter forum is, egal.
suchfunktion hab ich auch benutzt aber da hab ich nur ampeln mit timer gefunden
ich muss ne ampel in delphi programmieren mit gettickount. mit timer hab ichs jetzt schon n bsp gefunden und auch verstanden aber mit gettickcount bekomm ichs einfach nich hin, vtl hat einer dat ja schon programmiert und kann mir den quelltext mal hochladen oder zumindest den programmieransatz geben.
|
|
Amateur
      
Beiträge: 777
(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
|
Verfasst: So 04.12.05 15:56
wenn du weisst was gettickcount macht dann sollte es doch nicht so schwer sein denn einen fertigen quelltext wird dir hier niemand geben... oder poste deinen versuch und wir sagen dir was falsch ist...
_________________ "Kein dummes Gerede. Kein Rumrätseln. Denkt an nichts anderes mehr, nur noch an das, was vor euch liegt. Das ist die wahre Herausforderung. Ihr müßt euch vor euch selbst schützen, Leute." (Rennes in "Cube")
Beiträge: >700
|
|
minipliman 
      
Beiträge: 17
|
Verfasst: So 04.12.05 16:11
dat bringt nich viel wenn ich meins jetzt hier poste weil mir komplett der ansatz fehlt.
also ich bin jetzt soweit das ich wenn ich den knopf drücke immer die nächste ampelphase angeschaltet wird. wie muss ich dat jetzt ändern so das ich wenn ich den knopf einmal drücke automatisch alle ampelphasen nacheinenander ablaufen?
|
|
Amateur
      
Beiträge: 777
(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
|
Verfasst: So 04.12.05 16:18
ne schleife und dabei nen delay mit hilfe von gettickcount. dazu geistern viele quellcodes hier im forum rum. ist eigentlich sowas wie sleep nur eben mit gettickcount. ob dabei das programm steuerbar bleibt weiss ich nicht weshalb ich für sowas nen timer oder nen eigenen thread bevorzugen würde...
_________________ "Kein dummes Gerede. Kein Rumrätseln. Denkt an nichts anderes mehr, nur noch an das, was vor euch liegt. Das ist die wahre Herausforderung. Ihr müßt euch vor euch selbst schützen, Leute." (Rennes in "Cube")
Beiträge: >700
|
|
GTA-Place
      

Beiträge: 5248
Erhaltene Danke: 2
WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
|
Verfasst: So 04.12.05 16:36
Delphi-Quelltext 1: 2: 3: 4: 5:
| AktTime := GetTickCount; while GetTickCount - AktTime < 2000 do Application.ProcessMessages;
|
So reagiert das Programm auch weiterhin.
_________________ "Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
|
|
minipliman 
      
Beiträge: 17
|
Verfasst: So 04.12.05 18:20
also ich habs jetzt soweit fertich (schleife hab ich noch nich gemacht aber das sollte ja hinuzubekommen sein.
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:
| procedure TForm1.Button1Click(Sender: TObject); begin AktTime := GetTickCount; while GetTickCount - AktTime < 2000 do Application.ProcessMessages; begin Shape4.Brush.Color := clred; Shape5.Brush.Color := clblack; Shape6.Brush.Color := clblack; end;
AktTime := GetTickCount; while GetTickCount - AktTime < 2000 do Application.ProcessMessages; begin Shape4.Brush.Color := clred; Shape5.Brush.Color := clyellow; Shape6.Brush.Color := clblack; end; AktTime := GetTickCount; while GetTickCount - AktTime < 2000 do Application.ProcessMessages; begin Shape4.Brush.Color := clblack; Shape5.Brush.Color := clblack; Shape6.Brush.Color := clgreen; end; AktTime := GetTickCount; while GetTickCount - AktTime < 2000 do Application.ProcessMessages; begin Shape4.Brush.Color := clblack; Shape5.Brush.Color := clyellow; Shape6.Brush.Color := clblack; end; end; |
eine frage jetzt noch wie bekomm ich das jetzt hin das ich auch wärend der ampelphase das programm beenden kann?
Moderiert von Gausi: Delphi-Tags hinzugefügt.
|
|
GTA-Place
      

Beiträge: 5248
Erhaltene Danke: 2
WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
|
Verfasst: So 04.12.05 18:36
Copy und Paste -_-
Normal müsstest du das Programm normal beenden können.
_________________ "Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
|
|
Amateur
      
Beiträge: 777
(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
|
Verfasst: So 04.12.05 18:45
pack das ganze in unterschiedliche prozeduren und funktionen.
mach zum beispiel eine prozedure zum ändern der farben. den status kann man so definieren:
tstatus=(gruen,gelb,rot,gelbrot);
den status übergibst du als parameter und in der procedure machst du ne case anweisung.
dann machste den gettickcount kram in ne eigene procedure und übergibst die zeit als parameter.
den parameter kannste auch weglassen oder machst es als konstante irgendwo anders im programm.
am besten schreibste das ganze als eigene klasse in ne extra unit dann kann mans immmer wieder in verschiedenen programmen nutzen ohne immer 10 millionen variablen etc zu deklarieren... hab ich auch gemacht und wenn man sich ein wenig mit oop beschäftigt und hier im forum das ein oder andere nachfragt bekommt man eine sehr schöne klasse tampel die man in späteren programmen wie irgendwelchen spielchen oder so verwenden kann...
das mit dem oop ist nur nen vorschlag aber deine procedure solltest du wirklich splitten und ein wenig optimieren...
_________________ "Kein dummes Gerede. Kein Rumrätseln. Denkt an nichts anderes mehr, nur noch an das, was vor euch liegt. Das ist die wahre Herausforderung. Ihr müßt euch vor euch selbst schützen, Leute." (Rennes in "Cube")
Beiträge: >700
|
|
minipliman 
      
Beiträge: 17
|
Verfasst: So 04.12.05 19:02
hatt ich schon erwähnt das ich nich viel ahnung von delphi hab und ne möglichst EINFACHE lösung brauche?
|
|
Amateur
      
Beiträge: 777
(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
|
Verfasst: So 04.12.05 19:12
dann solltest du dir wohl besser diese links anschauen:
Crashkurs Delphi
und
Delphi Source
und
Delphi Basics für diverse Befehle
denn so wie du das gepostet hast sieht es für nen anfänger einfach aus. alles schön in die procedure geklatscht und gut ist. aber ich unterstell dir mal dass du delphi lernen willst. daraus folgt auch, dass du mit der zeit komplexere programme schreiben wirst. und dann wirst du um oop und klassen und eigene proceduren nicht mehr rum kommen.
deshalb bietet es sich an sowas schon an einfachen beispielen zu üben. deswegen guck dir zunächst den crashkurs delphi oben an. da lernst du die grundlagen. und das solltest du dann auch anwenden.
denn es wird sich als nützlich erweisen wenn man weiss wie das geht. denn mit oop findet man später auch fehler schneller. wenn ich einfach mal alles in ne procedure packe und teste kommen nachhher tausende von fehlern und man weiss nicht wo man anfangen soll und man postet schluss endlich wieder hier wo die erfahrenen user den quelltext entweder nicht angucken weil er nicht strukturiert ist oder sehr viel zeit investieren müssen um durchzusehen.
lernst du aber gleich wie man alles richtig strukturiert und wenig oder gar keine globale variablen verwendet wird das nicht nur uns die arbeit erleichtern.
wenn du dann ein programm erstellst, testest du procedure für procedure. du kannst jede procedure einem eigenen button zuweisen und dann besser testen bei welcher procedure ein fehler auftaucht und was für einer etc pp.
glaub mir es ist besser sich sowas anzueignen und nicht einfach versucht das programm fertig zu bekommen (habe ich am anfang auch immer so gemacht bis alles komplexer wurde).
also mein ratschlag: guck dir den crash kurs an und versuch es auf triviale programme wie deine ampel anzuwenden.
_________________ "Kein dummes Gerede. Kein Rumrätseln. Denkt an nichts anderes mehr, nur noch an das, was vor euch liegt. Das ist die wahre Herausforderung. Ihr müßt euch vor euch selbst schützen, Leute." (Rennes in "Cube")
Beiträge: >700
|
|
minipliman 
      
Beiträge: 17
|
Verfasst: So 04.12.05 19:30
dazu muss ich vieleicht auch noch sagen das ichs morgen abgeben muss.
|
|
Amateur
      
Beiträge: 777
(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
|
Verfasst: So 04.12.05 19:41
ja dann gibs so ab aber es geht ja auch um den lerneffekt....
kannst es ja morgen oder so immernoch verbessern um es zu lernen ... heißt ja net dass du es mit oop abgeben sollst
_________________ "Kein dummes Gerede. Kein Rumrätseln. Denkt an nichts anderes mehr, nur noch an das, was vor euch liegt. Das ist die wahre Herausforderung. Ihr müßt euch vor euch selbst schützen, Leute." (Rennes in "Cube")
Beiträge: >700
|
|