Hi
Velleicht läßt sich so helfen..
Stell dir die ußgängerampel einmal vor, was passiert da ? Die Autofahrer haben grün bis ein Fußgänger kommt und auf eine Taste drückt. Das ist ein Ereignis !
Nun setzt du das in einer Schleife um
Also suchen wir eine geeignete Schleife
Es gibt die For anfang to ende diese ist starr und arbeitet immer von Anfang bis Ende.
Es gibt die Repeat until Abbruchbedingung. Das hört sich doch schon gut an
und eine While do ( Wenn wahr dann tu immer das selbe) Auch das ist brauchbar
Nun zur Ampel. Die Ampelsequenzen sollten dir bekannt sein. Ergo mußt du mit deinem Ereignis eben genau diese Sequenz nachbilden
Ereignis kommt Fahrzeugampel auf gelb ->Pause
-> Rot ->Pause
-> Fußgänger Grün
-> Pause ->Fußgänger Rot
-> Pause -> Gelb und Rot für Fahrzeug
-> Pause -> Grün führ Fahrzeug
bis zum nächsten Ereignis.
Das sind immer die gleichen 6 Schritte, also bietet sich hierfür eine For-Schleife an
Die Zeit, die dein Ampelzyklus laufen soll, ist unbekannt, also nimmst du hierfür eine Repeat
Delphi-Quellcode:
Repeat
..... // Hier kommt deine Ampelsteuerung hinein
until MyButtonStop.Click; // dies ist die Abbruchbedingung, sonst hast du eine Endlosschleife
Damit legst du den äußeren Rahmen fest.
Um die Ampel auszulösen benötigst du ein Button und einen globalen Merker, um den Ampelzyklus zu starten
Also wird die Variable
Ampelzyklus : Boolean;
global deklarieert.
In der Ereignisprocedure der Ampalanforerung (MyAmpelButton) setzt du diese Variable auf true;
Nun gehst du in die Repeat Schleife und fügst den Ampelzyklus mit der Bedingung Ampelzyklus eine For Schleife ein.
Delphi-Quellcode:
If Ampelzyklus then
Begin
For i:=1 to 6 do
Begin
.... // hier legst du deine 6 Schritte fest
.... // benutze [b]Case[/b] oder wenn du noch nicht soweit bist dann halt [b]if[/b]
end;
Ampelzyklus:=False; // Ampelzyklus zurücksetzen
end;
Mußt du nun Bewegungen einsetzen, schreibst du das in die entsprechenden Schritte, bzw. in die Schleife an die richtige Stelle.
Mach dir Gedanken, wie du die Bewegung eines Objektes durchführen kannst. Dafür gibt es die Eigenschaften Top und Left. Wenn du die Werte dieser Eigenschaften veränderst, wandert das Objekt an die Stelle. Es gibt die Eigenschaft Color, die du beeinflussen kannst. Delphi ist da sehr hilfsbereit und erklärt dir viel in der Hilfe. Die mußt du nutzen, um eigene Gedanken in ein Programm zu fassen. Dir alles vorzuschreiben, das ist, wie du schon richtig geäußert hast, auffällig ud hilft dir auch nicht, zu verstehen, was eigentlich Programme sind.
Nix anderes, wie Abarbeiten von Schleifen und ein unermüdliches Zusammentragen von Daten, Berechnungen, Vergleichen usw. sowie ein Reagieren auf Ereignisse, sei es Tastatur, Maus oder Sonstwas für Signale....
Wenn dir klar wird, wie du eine Aufgabe in Schitte zerlegst, hast du eigentlich schon das Ergebnis.
Und beachte: Auch bewegungen sind Schritte....
Gruß oldmax
Noch ist mein Rechner mir zu Diensten.... ansonsten habe ich die Macht ihn zu vernichten !