Hallo, ich habe mal wieder angefangen Pennergame zu spielen... nach einiger Zeit So und als ich dann gemütlich am skillen war, dachte ich mir, hey bastel doch ein Programm, das du an alle deine Freunde weitergibst, welches deinen Link alle 60 Minuten öffnet.
Also hab ich mich erkundigt mit welchem Programm man das anstellen kann und bin auf Microsoft Visual 2010 Express gestoßen. Hab ich mir dann auch runtergeladen. Hab dann ein Fenster mit nem Butten der meinen Spendenlink öffnet erstellt. So weit so gut, noch ein schönes Icon eingefügt, mir einen passenden Namen überlegt und gut wars.
Jetzt hab ich aber nur ein Programm welches meinen Link anzeigt. Ich will aber eine ProgressBar mit einem 60 Minuten Timer und wenn der Timer abgelaufen ist, soll eine MessageBox erscheinen, die den Leuten sagt, dass sie jetzt wieder spenden sollen. (Wenn ich dann noch Zeit und Lust habe würde ich dann ein RadioButton anlegen, für 1. nach 60 Minuten eine Meldung zeigen oder 2. automatisch Spenden...aber erstmal das wichtigste)
Ich brauche also einen Countdown, der auch in der ProgressBar angezeigt wird(und die verbleibende Zeit soll auch in einem Label erscheinen, welches ich dann über die ProgressBar lege)
Ich hoffe ihr könnt mir helfen
Danke schon mal im Vorraus
Es gibt 2 einfach Lösungen:
1. Ein Thread der einfach 60 mins schläft und dann die Funktion die du willst ausführt.
2. Der Timer der nach 60 mins einfach sein Event ausführt
P.S. intern macht der Timer nichts anderes als Nummer 1
Ja des is warscheinlich super einfach aber ich hab heute Nachmittag mit pragrammieren angefangem... ich bitte um eine etwas ausführlichere Erklärung
Aber trozdem Danke
Ich würde das Ganze mit einem Timer realisieren, das ist wesentlich sauberer und einfacher als das beschriebene Beispiel mit der while-Schleife.
Mit einem Thread würde ich nicht unbedingt arbeiten in dem Fall, da du dann noch Delegates und Invokes erstellen musst weil du sonst CrossThreadExceptions kriegst wenn du versuchst die ProgressBar aus dem Thread heraus zu aktualisieren.
Ich meine im Prinzip ist es mit dem Thread auch möglich, aber für einen Anfänger eher schwieriger.
Ich würde das Ganze mit einem Timer realisieren, das ist wesentlich sauberer und einfacher als das beschriebene Beispiel mit der while-Schleife.
Mit einem Thread würde ich nicht unbedingt arbeiten in dem Fall, da du dann noch Delegates und Invokes erstellen musst weil du sonst CrossThreadExceptions kriegst wenn du versuchst die ProgressBar aus dem Thread heraus zu aktualisieren.
Ich meine im Prinzip ist es mit dem Thread auch möglich, aber für einen Anfänger eher schwieriger.
Ja ich wollte aber trotzdem den Thread als erstes nehmen, der Timer feuert zwar sein Event aber dieses wird dannn wieder im den GUIThread ausgeführt, damit umgeht man zwar sehr sehr leicht das Problem zwei Threads auf ein Objekt zugreifen. Aber ich bin kein Fan von den Timerobjekten, weil wenn ich schon einen zweiten Thread brauche dann will ich meist nicht nur die Zeit abwarten.
@Madd Eye: man kann auch mit einem Thread oder einem Timer eine Progressbar füllen und Wartezeiten sollte man eigentlich nicht im GUIThread behandeln, da die Oberfläche nicht neu gezeichnet werden kann udn das Programm sozusagen "einfriert".
Woow, ich hab Sleep ausprobiert, den Befehl gibts bei mir aber nicht... den Rest versteh ich auch nicht... könntet ihr mir Code-Beispiele geben? Wär toll
Woow, ich hab Sleep ausprobiert, den Befehl gibts bei mir aber nicht
Erstens, das liegt auch daran das der Code von Madd Eye nicht so funktioniert wie er ihn gepostet hat.
Quote:
versteh ich auch nicht...
Ich verstehe nicht wie man überseine Unweissheit lachen sein kann.
Ich rede nicht von Dummheit oder sonstiges, sondern vom Wissen.
Als ich lache nicht wenn ich mich für einen Bereich intressiere aber da nichts weiss.
Quote:
könntet ihr mir Code-Beispiele geben?
Ich erkläre dir das mal mit dem Timer.
Zu erst brauchst du ein Timer Objekt.
Quote:
private Timer _TestTimer;
private Timer TestTimer
{
get
{
if (_TestTimer == null)
_TestTimer = new Timer();
return _TestTimer;
}
}
So finde ich das für den Zweck am geeignetsten, so kannst du das irgentwo in deiner Klasse Bunker und wenn du das erstmal draufzugreifst wird es erzeugt. Ob man extern noch zugriff auf das Objekt haben will muss man selbst entscheiden.
Nun musst du musst du von deinem Timer Objekt die Eigenschaft "Interval" so setzen wie du es gerne hättest, oben wolltest du ja 60 mins.
Quote:
{
...
TestTimer.Interval = 60000;
...
}
Jetzt brauchst du noch deine EventFuntion die aller 60 min ausführen willst.
Jetzt musst du die Eventfunktion nur noch bei dem "Tick" Event von deinem Timer Objekt anmelden, damit es weiss was es machen muss und das wars
Quote:
TestTimer.Tick += MeineSuperStundenFunktion;
@TE wenn du mich immer ncoh nicht verstanden hast, NIMM DIR EIN SCHEISS BUCH UND LERN ERSTMAL EIN BISSCHEN DIE SPRACHE.
Weil sonst wirst du blo solche TuDies oder TuDas-Antworten bekommen und nie etwas verstehen
@Alle die denke Visual Studio Timer rein ziehen etc...
Naja wären wir bei den TuDies oder TuDas Antworten, ich denke die die solche Anwroten geben wissen selbst nicht mal was die IDE jemand für Code hinzuaber oder was der richtig bewirkt.
siehe
Sry ich habs erst durchgelesen als ich es schon gepostet habe...
aber danke für deine Hilfe ich geb dir selbstverständlich ein Thank
Jetzt hab ich nur noch eine Frage:
Ich will meine ProgressBar mit der Zeit fütter. Mit tostring gehts nicht, gibt es da einen gleichwertigen Befehl?
Hmm ich habe jetzt eine Möglichkeit gefunden. Ich habe einen Timer der in jeder Sekunde der ProgressBar 1 zufügt. Das macht er aber nur einmal. Timer laufen doch eigentlich in einer Endlosschleife bis man sie auschaltet? Warum bei mir nicht?
Hmm ich habe jetzt eine Möglichkeit gefunden. Ich habe einen Timer der in jeder Sekunde der ProgressBar 1 zufügt. Das macht er aber nur einmal. Timer laufen doch eigentlich in einer Endlosschleife bis man sie auschaltet? Warum bei mir nicht?
kann es vieleicht sein dass u jedesmal den value der progessbar auf 1 setzt oder so ?
kann es vieleicht sein dass u jedesmal den value der progessbar auf 1 setzt oder so ?
ich denke mal auch das es so machst, man kann bei der Progressbar die Methode .PerformStep() aufrufen um die anzahl zu erhöhen
es geht auch immer das value neuzusetzen aber das ist nicht im sinne der Progressbar
die eigenschaft Step sag übrigens um wie viel bei PerformStep erhöht wird
achja bei den Standart Winformscontrols stehen wenigstens noch deutsche hilfe da
danke, das mit performstep hat funktionier das programm ist fertig ich wollte es dann nätürlich meinen freunden geben. eine davon hat es gestartet, aber es hat nicht funktioniert... sie hat XP, ich habe windows 7 woran liegt das? idee?
Countdown in GUI 01/09/2009 - GW Bots - 3 Replies Hi,
wie bekomm ich denn einen Countdown in ne GUI? Aber der countdown soll aber durch zb ne func restartet werden... also er zählt von 10sec nach 0 und sobald man ne func aufruft fängt er neu an...
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 526, 72, 199, 274)
Countdown ~ Down 2 10/05/2008 - Metin2 Private Server - 1 Replies 20:50
Serverdown...
o0
Countdown ~ Down 10/02/2008 - Metin2 Private Server - 54 Replies Gerade war ich in longju online und plötzlich schrieb ein Gamemaster (?) 10...9...8...7...6...5...4...3...2...1...
Danach wurden meine beiden longju Fenster geschlossen und nun komme ich nicht mehr rein.
War das einfach ein angekündigter Serverdown?