Zeitgesteuerte (durch Anwender) Ausführung einer Aktion

  • VB.NET

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von JackCimberly.

    Zeitgesteuerte (durch Anwender) Ausführung einer Aktion

    Moinsen VB-Gemeinde.

    Habe schon viel von VB gelernt, aber hiermit betrete ich Neuland. ^^

    Würde gerne für den Anwender die Möglichkeit bieten, dass er via ComboBox oder CheckBox die vordefinierte Zeit auswählen kann, dass eine bestimmte Funktion/Aktion ausgeführt wird. Zum Beispiel: 3 Minuten ... alle 3 Minuten diese Aktion. Mit dem Button Beenden diese Zeitsteuerung ausschalten.

    Das ich da wohl mindestens einen Timer brauch, ok. Aber wie weiter?
    Wie setze ich das am Dümmsten um? ?( ?(
    Grüße JackCimberly

    Deine Anfrage erledigt?
    Als erledigt markieren
    Hey,

    der Timer hat eine Eigenschaft namens Interval, mit der Legst du die "Zeit" in Millisekunden fest. In das Clickereginiss vom "Beenden"-Button machst du dann ein Timer.Stop() und in das Clickereigniss vom "Start"-Button ein Timer.Start().

    Ich hoffe ich konnte dir helfen.

    lg.

    LucaWelker
    lg.

    LucaWelker
    Hi LucaWelker,

    ja, so in etwa habe ich es mir gedacht - zumindest den Gedankengang.
    Zum Beispiel mit dem Button "Start". Wie verbinde ich das mit dem Timer-Intervall?
    Grüße JackCimberly

    Deine Anfrage erledigt?
    Als erledigt markieren
    Hey,

    funktionieren sollte es so wie fichz es schon gesagt hat.
    Der Timer ist ein ganz normales Steuerelemnt, wie eine TextBox auch, also kann man Sie auch verwenden.

    Bsp.:

    VB.NET-Quellcode

    1. timer1.Interval = 1000
    2. timer2.Interval = 5000
    3. timer1.start()
    4. timer2.start()


    Der Interval von Timer1 ist nun gleich eine Sekude, der von Timer2 ist 5 Sekunden. Danach werden beide gestartet.

    lg.

    LucaWelker
    lg.

    LucaWelker
    ahhhhhhh ...

    ok .... werde mal ein wenig probieren ....
    Danke Euch beiden ... hat mir schon weitergeholfen ....
    Aber zwei Timer brauche ich bestimmt nicht .)

    Edit #1: Lasse das mal als 'unerledigt', falls ich noch Fragen habe.
    Grüße JackCimberly

    Deine Anfrage erledigt?
    Als erledigt markieren
    Muss noch mal nachfragen ...

    Über eine ComboBoy soll bestimmt werden, nach wie viele Minuten eine Aktion durchgeführt werden soll.

    Was habe ich?
    1x Timer (Enabled = True)
    1x ComboBox
    2x Buttons (btn_start und btn_end)

    Hm ... bekomme das einfach nicht hin.
    Tick_Event?

    Außerdem, bei der ComboBox habe ich das Problem, dass der erste Eintrag nicht angezeigt wird (5, 10, 15, .. 60). Hier muss ich eine CASE-Abfrage einsetzen, damit geprüft wird, ob was gewählt wurde.
    Grüße JackCimberly

    Deine Anfrage erledigt?
    Als erledigt markieren
    Du kannst deine Zeit mit Aktuellen Zeit addieren.
    In Multithreading vergleichst du Addierte mit Aktuelle Zeit.
    Z.b in 15 min soll eine aktion ausgeführt, aktuelle Uhrzeit 17.00, dieser zwei Zeiten addieren und ergibt 17.15.
    In Multithreading prüfen ob 17.15 gleich mit Aktuelle Zeit, wenn "ja" dann führe gewünschte aktion aus.
    Die Zeiten addierst und vergleichst solange bis Button "Ende" geklickt hast.

    Mit DateAdd kannst du deine Zeiten addieren: msdn.microsoft.com/en-us/library/hcxe65wz%28v=vs.80%29.aspx
    Mit Format Funktion kannst du deine Uhrzeit Formatieren:msdn.microsoft.com/de-de/library/59bz1f0h%28v=vs.80%29.aspx
    z.b 17:15 oder 17:15:25

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „SystemUnknow“ ()

    einfach beim event "Combobox.selectedIndexChanged" den intervall ändern.

    also zb so:

    if cint(Combobox.selectedItem) <> Timer1.interval then
    Timer1.Stop()
    Timer1.interval = cint(Combobox.selectedItem)
    Timer1.Start()
    end if

    Start() und Stop() kannst du auch weglassen, aber dann ändert sich der intervall erst nach dem nächsten Ticken
    Danke Jungs, aber ich meinte den ganzen Ablauf mit dem Timer (Start und End).

    VB.NET-Quellcode

    1. #Region "Button: Sicherung starten"
    2. Private Sub btn_Start_Click(sender As System.Object, e As System.EventArgs) Handles btn_Start.Click
    3. 'Button: Sicherung beenden einblenden
    4. btn_End.Visible = True
    5. 'Button: Sicherung beenden ausblenden
    6. btn_Start.Visible = False
    7. Timer1.Start()
    8. Dim select_time As String = ComboBox1.SelectedItem
    9. Select Case select_time
    10. Case ""
    11. MessageBox.Show("1Nix gewählt!" & vbNewLine & vbNewLine & "Was soll ich sichern? " & vbNewLine & "Du darfst noch mal.")
    12. End Select
    13. Timer1.Interval = 10000 '10 Sekunden zum Test
    14. auto_saving()
    15. End Sub
    16. #End Region


    VB.NET-Quellcode

    1. #Region "Button: Sicherung beenden"
    2. Private Sub btn_End_Click(sender As System.Object, e As System.EventArgs) Handles btn_End.Click
    3. Timer1.Stop()
    4. 'Button: Sicherung beenden ausblenden
    5. btn_End.Visible = False
    6. 'Button: Sicherung beenden einblenden
    7. btn_Start.Visible = True
    8. End Sub
    9. #End Region


    VB.NET-Quellcode

    1. Private Sub auto_saving()
    2. 'die Aktion
    3. End Sub


    Sobald ich auf Starten klicke, dann wird auch das gemacht, was ich möchte, aber nach 10 Sekunden passiert nichts mehr.
    Wieso? ?(
    Grüße JackCimberly

    Deine Anfrage erledigt?
    Als erledigt markieren
    SystemUnkown ...

    Hm, dann verstehe ich das mit dem Interval nicht. Wozu schreibe ich den rein, wenn der nix macht?
    Aber wo soll da noch Timer1.Start() rein, damit der alle 10 Sekunden die Aktion ausführt (zumindest so lange, bis BTN End geklickt wurde.

    zu Multithtreading: Scheint mir kompliziert zu sein. Sorry.
    Grüße JackCimberly

    Deine Anfrage erledigt?
    Als erledigt markieren
    setz zuerst das value und starte dann den timer.
    macht zwar eigentlich keinen unterschied, aber wenn du ihn zuerst startest und er da einen intervall von mehreren Minuten hat, dann wird der interval erst nach dem nächsten ticken "geändert", sprich nach mehreren minuten

    aber nen Timer is echt nen Grundliegendes Steuerelement.... les dir doch mal das open book durch, denn so wie's aussieht hakts bei dir schon bei Grundlagen ;)

    EDIT: Moment.... du willst jetzt aber nicht ernsthaft den Sub "AutoSaving" Triggern, oder?
    alles was beim Ticken des Timers ausgeführt werden soll kommt ins "Tick" Ereigniss des Timers und nicht einfach drunter^^

    und wieso machst du da nen select - case? da tuts ne simple if abfrage.... wie gesagt, schau dir mal das galileo open bookan

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Fritz-albert“ ()

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    3. 'hier kommt alles rein
    4. End Sub
    5. End Class


    so, hier haste was zum kopieren...... nur lernen tust du desshalb durch copy & paste nichts.
    ist das standart event vom timer, erhählst du also auch wenn du aufn timer doppelklickst

    EDIT: Das Open Book hätte dir serwohl helfen können, hättest du nur richtig gesucht ;) naja hier hastes nochmal: Klick