AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Lazarus-Timer-Fahrstuhl

Ein Thema von Furby123 · begonnen am 12. Jun 2018 · letzter Beitrag vom 14. Jun 2018
Antwort Antwort
Furby123

Registriert seit: 12. Jun 2018
5 Beiträge
 
#1

Lazarus-Timer-Fahrstuhl

  Alt 12. Jun 2018, 12:52
Hallo, ich bin gerade dabei mit Lazarus ein Fahrstuhl zu programmieren.
Nun folgendes Problem, ich kann den Fahrstuhl nur von Etage zu Etage springen lassen (indem ich ihm die Pixel sage). Ich würde aber genre dass der fährt. Aber wenn er fährt krieg ich ihn nicht mehr angehalten.

Weiß jemand wie das funktioniert?

Geändert von Furby123 (12. Jun 2018 um 18:22 Uhr)
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#2

AW: Lazarus-Timer-Fahrstuhl

  Alt 12. Jun 2018, 13:20
Du kannst den Code etwas lesbarer machen, indem du ihn hier in [ delphi][/ delphi] Tags einschließt (ohne das Leerzeichen).

Zum Problem: Du must in der Timer-Funktion eine Abfrage einbauen, ob das Ziel erreicht wurde.
Ralph
  Mit Zitat antworten Zitat
Furby123

Registriert seit: 12. Jun 2018
5 Beiträge
 
#3

AW: Lazarus-Timer-Fahrstuhl

  Alt 12. Jun 2018, 13:26
Du kannst den Code etwas lesbarer machen, indem du ihn hier in [ delphi][/ delphi] Tags einschließt (ohne das Leerzeichen).

Zum Problem: Du must in der Timer-Funktion eine Abfrage einbauen, ob das Ziel erreicht wurde.
Ja das weiß ich auch, aber ich weiß nicht wie...
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.753 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Lazarus-Timer-Fahrstuhl

  Alt 12. Jun 2018, 13:42
Hinfällig, kann weg. Sorry für den Bitmüll

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann

Geändert von Sherlock (12. Jun 2018 um 13:44 Uhr)
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#5

AW: Lazarus-Timer-Fahrstuhl

  Alt 12. Jun 2018, 14:01
Am besten machst du dir erstmal eine Fahrstuhl-Klasse mit ein paar mehr Variablen, z.B. über den Zustand des Fahrstuhls (also steht der gerade oder fährt der und was ist momentan die Richtung und momentane Position. Dann eine Liste, wenn man so will einen Speicher, der gewünschten Etagen, Bsp.:

Fahrstuhl steht in Etage E. 3. Stock wird gedrückt. Es wird gesetzt:
3. Stock in Zielliste eintragen.
Da 3>E: Richtung: 1 = aufwärts
Timer starten, da sich aufzug in Bewegung setzt.

Timer löst aus:
Position um X erhöhen, da Richtung 1
Prüfen, ob mit der Position nächste Zieletage erreicht wurde, wenn ja Timer stoppen, Aufzugtür öffnen usw.

Während der Aufzug fährt wird auf einmal 2. Etage-Knopf gedrückt. Folge:
Neue Etage in Zielliste eintragen, da Richtung nach oben und Aufzuge derzeit z.B. noch zwischen E und 1 wird das Ziel 2. Etage vor dem Ziel 3. Etage eingetragen.

Timer löst wieder aus:
Position um X erhöhen, da Richtung 1
Prüfen, ob mit der Position nächste Zieletage (jetzt 2) erreicht wurde, wenn ja Timer stoppen, Aufzugtür öffnen usw. Wenn Aufzugstür schließt prüfen, ob noch ein Ziel vorliegt, dann dahin weiter fahren. usw.
Ralph
  Mit Zitat antworten Zitat
Furby123

Registriert seit: 12. Jun 2018
5 Beiträge
 
#6

AW: Lazarus-Timer-Fahrstuhl

  Alt 12. Jun 2018, 15:49
ich versuch nochmal was, hab gerade ne idee

Geändert von Furby123 (12. Jun 2018 um 15:56 Uhr)
  Mit Zitat antworten Zitat
Furby123

Registriert seit: 12. Jun 2018
5 Beiträge
 
#7

AW: Lazarus-Timer-Fahrstuhl

  Alt 12. Jun 2018, 16:12
Ich muss zugeben, ich bin neu in dem Gebiet und versteh manchmal noch nicht so ganz was ihr meint mit den Fachbegriffen.

Hab jetzt folgendes probiert, da die timer irgenwie immer nicht wollten wie ich, hab ich jetzt drei timer erstellt:

Timer1 ist für die Fahrt vom Erdgeschoss in die 1. Etage und vom Erdgeschoss in die 2. etage zuständig
Timer 2 für Etage 1 in den EG und Etage 1 in die 2.Etage
Timer 3 für Etage2 in den EG und Etage2 in Etage1

an sich funktioniert es auch, problem ist jetzt nur, wenn er vom Erdgeschoss in die 1.Etage fährt. Kann ich nicht sagen dass er noch z.B. weiter fahren soll oder wieder zurück fahren soll.

Wenn ich die Timer per hand an und aus mache, also wenn er in Etage 1 schon ist, mach ich nur Timer 2 an, dann geht das.
Ich weiß auch dass man mit Timerxy.Enabled:=true oder false den an und aus macht, aber irgenwie will das nicht oder ich weiß nicht wo man was hinschreiben soll.

Ich hoffe man kann verstehen was ich meine :7
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#8

AW: Lazarus-Timer-Fahrstuhl

  Alt 12. Jun 2018, 16:16
Mit mehreren Timern machst du es nur unnötig kompliziert. Schau noch mal, was ich oben geschrieben habe. Da geht es nicht um Fachbegriffe sondern um eine Logik, wie so ein Fahrstuhl funktionieren könnte. Welche Variablen braucht man, usw.
Dabei geht es mir noch gar nicht um das Bewegen/Zeichnen des Fahrstuhles, sondern eine reine Logik "auf dem Papier", wenn du so willst.
Ralph
  Mit Zitat antworten Zitat
Furby123

Registriert seit: 12. Jun 2018
5 Beiträge
 
#9

AW: Lazarus-Timer-Fahrstuhl

  Alt 12. Jun 2018, 16:21
Ich hab es jetzt mit einem Timer hinbekommen, hatte scheinbar für mehrere Fahrten die gleiche Variable verwendert und das mag Lazarus nicht

Geändert von Furby123 (12. Jun 2018 um 16:55 Uhr)
  Mit Zitat antworten Zitat
14. Jun 2018, 08:23
Dieses Thema wurde am "14. Jun 2018, 08:23 Uhr" von "MrSpock" aus dem Forum "Lazarus (IDE)" in das Forum "FreePascal" verschoben.
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 20:05 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