Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - TTimer und Shape!!!
strossus - Di 13.01.04 22:07
Titel: TTimer und Shape!!!
Hallo!
Erstmal möchte ich sagen, dass ich neu bin!!! :D
Mein Problem ist folgendes: Seit einiger Zeit arbeiten wir in der Schule mit Delphi 4. Leider habe ich keine Ahnung davon und ich bitte euch mir bei einer Aufgabe zu helfen. Wir haben den Befehl TTimer neu in den unterricht eingeführt und nun habe ich folgende Aufgabe:
"Ein Shape namens Shape1 soll von ganz links bis 6oo nach rechts laufen, dann wieder nach links und so weiter."
Ich muss zugeben, dass ich mit dieser Aufgabe überfordert bin :cry: und deshalb bräuchte ich Hilfe von erfahrenen wie euch. Es wäre nett wenn ihr mir einen Lösungsvorschlag unterbreiten könntet.
Danke schonmal im Voraus
Gruß Xerox
Moderiert von
Peter Lustig: Topic Verschoben
bug0815 - Di 13.01.04 22:36
Hallo,
ich will Dir hier ja nicht gleich Deine Hausaufgaben machen.
TTimer löst alle in Interval festgelegten Millisekunden das Ereignis OnTimer aus. In diesem Ereignis kannst Du dann...
- den Wert eine Variable manipulieren (Inc oder Dec)
- diese Variable zur Positionierung des Shapes verwenden
- die Position des Shapes verändern
Das sollte Dir für's Erste helfen!!
strossus - Di 13.01.04 22:41
Hallo!
@ bug: Das mit dem Interval weiß ich auch aber ich weiß nicht wie ich die shapefigur richtig positioniere.
Das muuss irgendwas mit "moveto" und "lineto" sein. Dann muss man noch die Koordinaten angeben. Ich habe aber leider keine Ahnung wie.
Bitte helft mir!
Ich shcreibe am Freitag ne Klausur über dieses thema und ich will das endlich verstehen. :evil:
Gruß Xerox
Seniman - Di 13.01.04 22:48
Hallo Strossus,
die Prozeduren "moveto" und "lineto" braucht man nicht, wenn man Shapes verwendet. "moveto" und "lineto" sind dafür da, um Linien auf die Form oder ein Bild oder sonstetwas zu zeichen, aber das brauchst du ja nicht.
Probier mal folgendes:
deklariere eine globale Variable vom Typ boolean
In die Prozedur vom Timer setzt du folgendes:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| if rechts then Shape1.Left:=Shape1.Left+1 else Shape1.Left:=Shape1.Left-1;
if Shape1.Left=0 then rechts:=true; if Shape1.Left=600 then rechts:=false; |
Der Timer überprüft, ob er das Shape nach rechts oder links bewegen soll und tut das dann. Danach überprüft er noch ob das Shape am Rand ist, wenn ja, dann dreht er die Bewegungsrichtung um.
strossus - Di 13.01.04 23:11
Hallo!
@Seniman: Danke für die Hilfe. Ich hoffe, dass ich euch mal helfen kann!!!
Bleib auf jeden Fall hier in diesem Forum!
Schnelle hilfe. So etwas sieht man gerne. :D
Danke
Gruß Xerox
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!