AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ampelkreuzung

Ein Thema von Danül · begonnen am 7. Apr 2008 · letzter Beitrag vom 26. Nov 2008
Antwort Antwort
Seite 1 von 3  1 23      
Danül

Registriert seit: 29. Mär 2008
14 Beiträge
 
#1

Ampelkreuzung

  Alt 7. Apr 2008, 16:12
Schönen guten Tag,
ich als Delphi-Neuling hätte eine Frage, die wahrscheinlich zu simpel ist, aber iwie bekomm ich sie nicht hin

Und zwar soll mein Auto bei dem Anhaltestreifen halten, sofern die Ampel rot ist. Allerdings achtet er dort nur auf die Bedinung des
image1.left = X , soll heißen wenn er von der anderen Seite kommt hält er ebenfalls dort bei dem streifen, allerdings hat er dann schon die Ampel überfahren. Hoffe ihr versteht es so

Mein Problem ist If (radioButton1.color = clred) and (Image1.left = 311) <<<dass
Wie man unschwer erkennt hab ich dort 2 Bedinungen rot und 311, allerdings möchte ich Image1.Top ebenfalls als Bedingung hinzufügen
also sollte es eigtl so aussehen: If (radioButton1.color = clred) and (Image1.left = 311) and (Image1.top = 24 )then begin....

Allerdings meckert er damit rum und ich komm zu keiner Aufzählung.
Wie umgeht man das Problem? Ich habe es bereits mit Komma probiert aber auch keinen Erfolg erzielt

Hoffe ihr helft einen Neuling im Forum

Edit: Da fällt mir direkt noch eine Frage ein. Wir arbeiten in Informatik mit dem Tradiobutton, kann man irgendwie einstellen dass z.B. das Rote Leuchten nicht allzulange geht? Soll heißen dass mein Timer zwar von Grün auf Rot schaltet und umgekehrt allerdings bei Rot eher wieder auf grün schaltet (würde auch zum hinzufügen von orange helfen )

vielen Dank
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Ampelkreuzung

  Alt 7. Apr 2008, 16:17
Zitat von Danül:
Allerdings meckert er damit rum und ich komm zu keiner Aufzählung.
Also mein Compiler meckert nie, sondern gibt (verständliche) Fehlermeldungen aus.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von divBy0
divBy0

Registriert seit: 4. Mär 2007
Ort: Sponheim
1.021 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Ampelkreuzung

  Alt 7. Apr 2008, 16:30
Was genau meckert er denn?

Die if-Anweisung sollte eigentlich so laufen.

Poste doch mal den Teil von dem Code hier.
Marc
  Mit Zitat antworten Zitat
Danül

Registriert seit: 29. Mär 2008
14 Beiträge
 
#4

Re: Ampelkreuzung

  Alt 7. Apr 2008, 16:31
komisch, ich könnte schwören dass der gestern abend ne fehlermeldung ausspuckte

jetzt gerade geht If (a ) and (b ) and (c ) then begin...

danke euch dennoch
  Mit Zitat antworten Zitat
Danül

Registriert seit: 29. Mär 2008
14 Beiträge
 
#5

Re: Ampelkreuzung

  Alt 7. Apr 2008, 17:09
dann hätte ich trotzdem noch eine weitere Frage

Ich möchte mein Auto im Viereck fahren lassen. Allerdings bekomm ich nur 2 Richtungen hin.

procedure TForm1.Timer1Timer(Sender: TObject);
begin
If Button1.left > 400
then begin
Button1.Top := Button1.top+1
end
else Button1.Left := Button1.left +1 ;

wie bau ich dies nun noch um damit er ebenso in den Button1.left -1 sowie Button1.Top -1 gelangt sodass er bei dem Startwert wieder von vorne beginnen kann?
  Mit Zitat antworten Zitat
Danül

Registriert seit: 29. Mär 2008
14 Beiträge
 
#6

Re: Ampelkreuzung

  Alt 9. Apr 2008, 14:05
Sooo, nachdem ich wieder bissl rumgebastelt habe komme ich nurn auf satte 30 Timer...
deswegen wollt ich mal nen bisschen umformen und hätte diesbezüglich einige Fragen.

Zum einen: Meine Fußgänger sollen relativ langsam laufen, meine Autos unterschiedlich schnell....
Wie realisier ich dass in einem Timer?
Ich habe jetzt für jedes Auto nen seperaten Timer, allerdings ist dies stark unübersichtlich und man kommt durcheinander.

Ich hab von dem Timer1.Interval = X gehört, kann man dies einfach so in die Gleichung einbauen?

Dann meine zweite Frage: Ebenfalls vom Timer her, ich habe ne Ampel die zwischen Grün/Orange/Rot schalten soll, allerdings sollen auch dort unterschiedliche Abstände gelten.

Sagen wir Grün soll 30sek dauern, orange dann 5 und rot 15. Wie realisier ich dass dort mit dem Timer?

Bisher habe ich nur 2 Farben: Rot und Grün
Mein Timer sieht momentan so aus:
If RadioButton1.color =clred
then RadioButton1.color :=cllime
else RadioButton1.color :=clred;

Allerdings greift er deswegen nur auf den Intervall des Timers logischerweise zu.

HOffe ihr könnt mir einige Tipps bezüglich der Probleme geben
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#7

Re: Ampelkreuzung

  Alt 9. Apr 2008, 19:02
HI,

1. würd ich meinen, dass man dazu einen neuen Thread aufmachen sollte,
2. 30 Timer sind vllt. ein bissel viel, währnd 30 TThread auch nicht grade weniger sind. Versuch doch mal ein Verhältniss zwischen den Geschwindigkeiten deiner Figuren zu machen. z.B. wäre es vorteilhaft, wenn die 1ne doppelt so schnell läuft, wie die andere. Dann kann man die Bewegung von 2 Figuren in eine Prozedur stecken.
3. Anderer Vorschlag: Du willst doch jede Figur anders schnell laufen lassen. Schreib alle Bewegungen in eine Prozedur, wobei jede Bewegung nicht in einer Ganzzahl, sondern in einer Fließkommazahl ausgedrückt wird. Dann noch ein bissel mit Sleep arbeiten und alles müsste in einen Timer passen. (Vllt. ein bissel rumrechnen)

rollstuhlfahrer


###
Edit: Die Ampel würd ich in einen Thread stecken und dort mit Syncronisize arbeiten. So kannst du mit Sleep(20000), Sleep(15000) und Sleep(5000) die Ampel schalten lassen.
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Ampelkreuzung

  Alt 9. Apr 2008, 19:18
Zitat:
2. 30 Timer sind vllt. ein bissel viel, währnd 30 TThread auch nicht grade weniger sind.
Wobei 30 Timer auch 30 Threads sind.
Markus Kinzler
  Mit Zitat antworten Zitat
Danül

Registriert seit: 29. Mär 2008
14 Beiträge
 
#9

Re: Ampelkreuzung

  Alt 9. Apr 2008, 19:31
hm joa, ich wollte jetzt als Neuling nicht wegen jeder neuen Frage einen neuen Thread aufstellen daich täglich neu dazulerne und somit mehrere Fragen habe

Was meinst du mit Fließkommazahl anstatt Ganze Zahl?
Ich arbeite momentan immer mit Image.left := Image.left +1 , sicher meinst du damit die ganzen Zahlen, aber wie soll man dass dann in Fließkommazahlen umschreiben? Bzw was sind Fließkommazahlen?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Ampelkreuzung

  Alt 9. Apr 2008, 19:39
Fließkommazahlen sind Bruchzahlen
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz