PDA

Vollständige Version anzeigen : Timer mit verschiedenen Intervallen - per Optionsschaltflächen steuern ???


AWSW
31.07.2001, 18:49
Hallo,
ich habe ein kleines Tool erstellt, bei dem ein Disponent in vorgegebenen Zeitabständen regelmäßig eine Hinweismeldung erhalten soll, damit er seine Mailbox abfragt. Dabei erscheint dann eine MsgBox mit dem entsprechenden Text...
So weit so gut.

Ich möchte dem User über eine Optionsschaltfläche mit 6 Optionsfeldern eine Möglichkeit bieten, den Benachrichtigungsintervall einzustellen.

Entweder:
Ausgeschaltet, 15 Min., 30 Min., 45 Min., 60 Min. oder 120 Min.

Mein Problem ist, dass ich es nicht hinbekomme, den Timer mit den entsprechenden eingestellten Zeiten variabel zu bestücken.

Ich habe zwar schon eine Funktion mit mehreren IF THEN ELSE Abfragen hinbekommen, aber das ist halt bei 6 Optionen schon recht aufwendig, geht das auch simpler ???

Das Tool wird beim Rechnerstart, durch den AutoStartOrdner aktiviert,


Vielen Dank im Vorraus :D

AWSW
31.07.2001, 21:10
Hallo noch mal,
ich bin bisher wohl doch nicht all zu weit gekommen... :(

Hier mein Formular:

ErinnereMich.jpg

<font size="1" face="Century Gothic">Moderatorenanmerkung: Überarbeitung, durch den Wechsel der Forensoftware zum 01.01.2003 verursacht: in diesem Beitrag Link(s) korrigiert.
jinx – 10.07.2003</font>

Ich bekomme nur halt nicht raus, wie ich die Timerzeit abhängig von den Optionsfeldern setze ??? Das Timerereignis gib nur die schon beschriebene MSGBOX aus...

Zusätzlich noch wird der Hinweistext bei: Bitte geben Sie hier den gewünschten Erinnerungstext ein bei jedem Schließen der .exe wieder verworfen. Kann ich das auch speichern ??? Der Text wird einfach in der bei Ablauf der Zeit einfach mit 'MSGBOX "Erinnerung" & chr(13) & Text1, Erinnerung' angezeigt, aber leider halt nicht für spätere Starts der exe gespeichert... :(


Ich hoffe Ihr könnt einem kleinen VB begeisterten VB-Anfänger helfen BITTE :D

Stefan Kulpa
31.07.2001, 22:09
<font face="Verdana" size="2">Hallo,

vielleicht geht's so:</font>

<PRE><FONT SIZE=1 FACE=Courier New><FONT COLOR=#000080>Option</FONT> <FONT COLOR=#000080>Explicit</FONT>

<FONT COLOR=#000080>Dim</FONT> m_lMinutes <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>
<FONT COLOR=#808080><HR></FONT>

<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Sub</FONT> Form_Load()

optHints(0).Caption = "Ausgeschaltet"
optHints(0).Tag = 0
optHints(1).Caption = "15 Min."
optHints(1).Tag = 15
optHints(2).Caption = "30 Min."
optHints(2).Tag = 30
optHints(3).Caption = "45 Min."
optHints(3).Tag = 40
optHints(4).Caption = "60 Min."
optHints(4).Tag = 60
optHints(5).Caption = "120 Min."
optHints(5).Tag = 120

optHints(0).Value = <FONT COLOR=#000080>True</FONT> <FONT COLOR=#008000>'** Voreinstellung</FONT>
Timer1.Interval = 65535 <FONT COLOR=#008000>'** ca. 1 Minute</FONT>

<FONT COLOR=#000080>End</FONT> <FONT COLOR=#000080>Sub</FONT>
<FONT COLOR=#808080><HR></FONT>

<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Sub</FONT> optHints_Click(Index <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Integer</FONT>)

m_lMinutes = <FONT COLOR=#000080>CLng</FONT>(optHints(Index).Tag)

<FONT COLOR=#000080>End</FONT> <FONT COLOR=#000080>Sub</FONT>
<FONT COLOR=#808080><HR></FONT>

<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Sub</FONT> Timer1_Timer()

<FONT COLOR=#000080>Static</FONT> lMinutes <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>
<FONT COLOR=#000080>If</FONT> m_lMinutes = 0 <FONT COLOR=#000080>Then</FONT> lMinutes = 0: <FONT COLOR=#000080>Exit Sub</FONT>

DoEvents
lMinutes = lMinutes + 1 <FONT COLOR=#008000>'** 1 Minute vergangen</FONT>
<FONT COLOR=#008000>'** Testausgabe</FONT>
<FONT COLOR=#000080>Debug.Print</FONT> lMinutes; "Minuten vorbei ..."
<FONT COLOR=#000080>If</FONT> lMinutes >= m_lMinutes <FONT COLOR=#000080>Then</FONT>
<FONT COLOR=#008000>'** Hinweis anzeigen</FONT>
MsgBox "Zeit ist vorüber!"
<FONT COLOR=#008000>'** Zähler zurücksetzen</FONT>
lMinutes = 0
<FONT COLOR=#000080>End</FONT> <FONT COLOR=#000080>If</FONT>

<FONT COLOR=#000080>End</FONT> <FONT COLOR=#000080>Sub</FONT>
<FONT COLOR=#808080></FONT>

</FONT></PRE>

<font face="Verdana" size="2">
Vielleicht ist das ja ein Weg, eine passable Lösung zu finden...

HTH</font>

AWSW
31.07.2001, 22:58
Hallo Stefan,
erst mal VIELEN DANK für Deine Mühe :D

Ist Dank Deiner Hinweiszeilen auch sogar für mich fast ganz nachvollziehbar ;)

Ich erhalte nur die folgende Fehlermeldung, bei der ich derzeit keine Lösung gefunden habe. Ich habe zwar unter den Komponenten die optHints gefunden, erhalte aber trotzdem die Fehlermeldung beim Kompilieren...

ErinnereMich1.jpg

ErinnereMich.zip

<font size="1" face="Century Gothic">Moderatorenanmerkung: Überarbeitung, durch den Wechsel der Forensoftware zum 01.01.2003 verursacht: in diesem Beitrag Link(s) korrigiert.
jinx – 10.07.2003</font>

Ich habe schon geschaut, ob es nicht an der Benennung der Schaltflächen liegt - aber leider nichts gefunden :confused:

Wäre SUPER wenn Du mich noch ein wenig unterstützen könntest :D

Stefan Kulpa
01.08.2001, 05:23
<font face="Verdana" size="2">Hallo,

mit optHints(0) bis optHints(5) ist ein Control-Array von Options-Buttons gemeint.
Dazu nimmt man einen Option-Button, nennt diesen optHints und kopiert ihn dann noch 5 mal mit Kopieren/Einfügen.
Beim ersten Einfügen wird noch mal nachgefragt, ob ein Control-Array erzeugt werden soll. Sobald es eine oder mehrere Kopien eines Controls gibt, werden die einzelnen Controls (in diesem 'Array') über den Index (0 bis 5) angesprochen. OK?

Gruß</font>

AWSW
01.08.2001, 17:52
Hallo Stefan,
Da hat sich der AWSW wieder mal was gelernt :D

Jedoch habe ich noch 3 Fragen an Dich:

1 Wie im Bild gezeigt bleibt jeweils nach einmaliger Aktivierung des "Ausgeschaltet"-Optionsbuttons dieser aktiviert (Auch wenn ich die Voreinstellung auf einen anderen Optionswert festlege, bleibt immer nach einmaligem Anklicken der "opthints(0)" aktiviert):

ErinnereMich2.jpg

<font size="1" face="Century Gothic">Moderatorenanmerkung: Überarbeitung, durch den Wechsel der Forensoftware zum 01.01.2003 verursacht: in diesem Beitrag Link(s) korrigiert.
jinx – 10.07.2003</font>

2 Wie speichere ich diese Einstellungen inkl dem Meldungstext in "Text1" ab. Will sagen, wie bekomme ich es hin, dass man die Einstellung festlegen kann und diese auch nach dem Verlassen des Tools für weitere Starts erhalten bleibt. Ich habe dazu leider nichts in der Hilfe gefunden... :(

3 Kann ich die Taskanzeige auch so einstellen, das das Tool nur im Tray auftaucht und nicht in der Startleiste. Ich habe zwar den Schalter "ShowInTaskbar = False" gefunden, der bringt mich aber da ja nicht viel weiter...

Vielen lieben Dank für Deine Mühe :D

Stefan Kulpa
02.08.2001, 08:45
<font face="Verdana" size="2">
Hallo,

Zu Frage 1:
Wie hast Du das denn geschafft?
Wenn alle Options-Buttons den gleichen Namen haben und lediglich über den Index gesteuert werden, ist das nicht möglich. Du musst darauf achten, allen Options-Buttons den im Beispiel genannten Namen zu geben und die Index-Werte jeweils zu setzen.

Zu Frage 2:
Solche Informationen können in einer Datenbank oder einer Textdatei (hier: besser INI-Datei) gespeichert werden.
Nähere Infos dazu erhälst Du <a href="http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=61080" target="_blank">hier</a>.

Zu Frage 3:
Das ist schon etwas komplizierter. In Eigenschaft ShowInTaskBar sagt nur aus, dass das Programm (wenn Eigenschaft = True ist), in der TaskBar anzeigt wird.
Um das Programm als Icon im "SysTray" anzuzeigen, muss schon etwas mehr getan werden; hier findest Du ein paar <a href="http://www.planet-source-code.com/vb/scripts/BrowseCategoryOrSearchResults.asp?txtCriteria=systray&blnWorldDropDownUsed=TRUE&txtMaxNumberOfEntriesPerPage=10&blnResetAllVariab les=TRUE&lngWId=1&optSort=Alphabetical" target="_blank">Beispiele</a> ...

Gruß</font>

<font size="1" face="Century Gothic">Moderatorenanmerkung: Überarbeitung, durch den Wechsel der Forensoftware zum 01.01.2003 verursacht: in diesem Beitrag Link(s) korrigiert.
jinx – 10.07.2003</font>

AWSW
02.08.2001, 16:30
Hallo Stefan,
erst mal recht Vielen Dank für Deine tolle Unterstützung.

Zu 1.:
Ich habe das ganau nach Deiner guten Anleitung mit: 1 neuen Optionsfeld einfügen >>> umbenannt in opthints >>> dann 5 kopiert und eingefügt.
Kann das an dem Frame1 liegen ??? Ich habe den Frame ja als Rahmen eingefügt.

Zu 2. & 3.: :D DANKE :D

Ich lade das Teil wohl am besten gleich mal hoch, damit Du das auch mal vor Augen hast - oder ???

Viele Grüße aus dem sonnigen Siegen - Axel

Stefan Kulpa
02.08.2001, 17:51
<font face="Verdana" size="2">Hallo,

wenn Du das Download-Forum meinst - besser nicht, da dort ja eigentlich nur "fertige" Lösungen für die Allgemeinheit stehen und es nicht als "Arbeitsforum" missbraucht werden sollte. Du kannst mir aber, falls es nicht klappt, die Geschichte als Zip <a href="mailto:Stefan@Kulpa.com" target="_blank">zumailen</a>, ich schau dann mal rein.

Gruß</font>

AWSW
02.08.2001, 18:14
Hallo Stefan,
es klappt nun. Es war wirklich der Frame. Nachdem ich diesen entfernt hatte, klappten die Wechsel der opthints von 0 bis 5

Vielen Dank dazu :D

So nun muss ich mir nur noch 2. & 3. zu gemüte führen.


PS: Neee ich meinte nicht das DL-Forum. Ich habe selbst einen WebServer hier laufen, da brauche ich nur einen Link drauf setzen und habe so mehrere GBs zur Verfügung. Geht über einen kostenlosen Dienst namens HeimServer.de (http://www.HeimServer.de)

Soll ich das fertige Tool dann noch mal zur Verfügung stellen ??? Ist ja recht allgemein zu gebrauchen...

Stefan Kulpa
02.08.2001, 18:22
<font face="Verdana" size="2">Hallo,

ja klar, warum nicht ...

Gruß</font>

AWSW
05.08.2001, 13:21
Hallo noch mal,
anbei der Link zu der versprochenen fertigen Version. Ich habe noch schnell ein Setup dazu erstellt und die VB6.0 - Arbeitsdateien in eine ErinnereMich.zip angefügt. Durch das Setup werden automatisch Verknüpfungen im AutoStartOrdner, StartMenü und auf dem Desktop angelegt. Bei Nichtgefallen kann das Tool auch über die Softwareverwaltung in der Systemsteuerung wieder deinstalliert werden:

Hier nun die Datei: ErinnereMichV100-Setup.exe (1,49 MB)

<font size="1" face="Century Gothic">Moderatorenanmerkung: Überarbeitung, durch den Wechsel der Forensoftware zum 01.01.2003 verursacht: in diesem Beitrag Link(s) korrigiert.
jinx – 10.07.2003</font>

In dieser Version habe ich aus zeitlichen Gründen noch nicht die im Beitrag auch angesprochene alleinige Anzeige des Tools im Tray eingebaut. Im Moment habe ich einfach nur die Option "ShowInTaskBar" auf "False" gesetzt. Das reicht mir im Moment auch aus. Falls dies noch jemand nachrüstet, wäre ich auch sehr interessiert daran. ;)


Noch mal möchte ich besonders Stefan Kulpa danken, der mich kleinen VB-DAU hier großartig unterstützt hat.

Vielen Dank noch mal !!! :D