AGB  ·  Datenschutz  ·  Impressum  







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

Zeitliche Abfolge erstellen

Ein Thema von Delphi-Coder · begonnen am 16. Dez 2006 · letzter Beitrag vom 16. Dez 2006
Antwort Antwort
Delphi-Coder

Registriert seit: 8. Jan 2003
Ort: Greifswald / Stralsund
151 Beiträge
 
Delphi 7 Enterprise
 
#1

Zeitliche Abfolge erstellen

  Alt 16. Dez 2006, 22:17
Hallo,

ich habe mal eine prinzipielle Frage: Ich hab 5 (oder mehr) Elemente mit den Namen A,B,C,D und E. Jedes Element soll entweder alle 5, 10, 15, 20, 30 oder 60 Minuten angezeigt werden. Dies ist für jedes Element unterschiedlich und frei vom benutzer wählbar.

Außerdem kann der Benutzer auch entscheiden, wie lange jedes Element eingeblendet werden soll. Zum Beispiel: Element A soll alle 15 Minuten für 30 Sek eingeblendet werden; Element B soll alle 10 Minuten für 60 Sekunden eingeblendet werden.

Um dabei auftretende zeitliche Leerräume aufzufüllen gibt es noch eine Reihe von Elementen bei denen es egal ist wie oft sie eingeblendet werden.

Es gibt also kurz gesagt 3 Dinge zu beachten:

a) Wie oft soll ein Element pro Stunde eingeblendet werden?
b) Wie lange soll jedes einzelne Element eingeblendet werden?
c) Wie sind Lücken zu füllen?

Nun meine Frage: Wie kann man einen solchen zeitlichen Ablauf programmieren? Der Plan sollte vor dem Start der Einblendungen feststehen und dann nur noch abgearbeitet werden.

Ich hoffe, ihr könnt mir helfen!

Vielen Dank und schonmal schönen 3. Advent!
Delphi-Coder
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#2

Re: Zeitliche Abfolge erstellen

  Alt 16. Dez 2006, 22:44
Für mich klingt das so, als ob sinnvollerweise für jedes Element ein eigener Timer genutzt werden sollte: Er prüft den bisherigen Status des Elements (ein- oder ausgeblendet), bestimmt die Dauer der nächsten Ein- bzw. Ausblendung und verändert entsprechend sein Intervall und setzt danach den neuen Status des Elements.

Wenn Du immer mit einem Vielfachen von (z.B.) 1 min arbeitest, kannst Du auch mit einem einzelnen Timer arbeiten:
  1. Erzeuge ein Record o.ä. für jedes Element, bei dem das Element (Control?) selbst sowie die beiden Zeit-Variablen gespeichert sind.
  2. Außerdem soll für jedes Element in diesem Record die Restzeit für den aktuellen Status gespeichert werden.
  3. Erzeuge ein Array für alle diese Elemente.
  4. Der Timer wird auf Interval=60000 eingestellt und bearbeitet in einer Schleife alle Elemente: Restzeit um 1 min verringern, bei 0 Status umschalten und Restzeit neu festlegen.
Ich hoffe, eines dieser Verfahren ist nützlich. Gruß Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
Delphi-Coder

Registriert seit: 8. Jan 2003
Ort: Greifswald / Stralsund
151 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Zeitliche Abfolge erstellen

  Alt 16. Dez 2006, 22:54
Danke für die Antwort!

Das wären natürlich 2 Möglichkeiten! Jedoch wird da bisher nur die Anzeigedauer der Elemente beachtet. Wie kann ich aber dann realisieren, dass bestimmte Elemente wiederholt angezeigt werden?
Dort sind dann ja auch Überschneidungen zum vermeiden!

Zum Beispiel:
Element A soll alle 5 Minuten angezeigt werden und Element B alle 10 Minuten. Dann würde es ja bei 10,20,30 usw. zu Überlagerungen kommen.
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#4

Re: Zeitliche Abfolge erstellen

  Alt 16. Dez 2006, 23:26
Zitat von Delphi-Coder:
Dort sind dann ja auch Überschneidungen zum vermeiden!

Zum Beispiel:
Element A soll alle 5 Minuten angezeigt werden und Element B alle 10 Minuten. Dann würde es ja bei 10,20,30 usw. zu Überlagerungen kommen.
Ich weiß nicht, welche Elemente wo und wie angezeigt werden sollen. Die Bedingungen, welches Element den "Vorzug" bekommen soll, kannst auch nur Du bzw. Dein Anwender bestimmen.

Zur Prüfung dieser Bedingungen wäre die Variante "ein Timer mit Array" praktischer. Das müsstest Du dann dort einbauen.

Gruß Jürgen

PS. So, jetzt gehe ich aber erstmal schlafen.
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:33 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