Timer (Eieruhr/Wecker)

Vorstellungen von Programmen, welche mit Lazarus erstellt wurden.
Antworten
chris4win
Beiträge: 14
Registriert: Mi 10. Feb 2010, 22:02

Timer (Eieruhr/Wecker)

Beitrag von chris4win »

Hallo liebe Lazarusgemeinde,

ich stell euch heute mal mein kleines Freizeitprojekt vor, auch mit der Hoffnung, dass ihr mir bei ein paar Fragen behilflich sein könntet.

Worum geht's?
Es ist ein Programm welches nach einer bestimmten Zeit oder zu einer bestimmten Zeit ein Ereignis auslöst (derzeit nur ein Alarmton, oder das automatische Herunterfahren des Rechners). Meine Anwendungsfälle: Eier kochen, Pizza backen, Rechner herunterfahren für den Fall dass ich einschlafen sollte.

Betriebssystem:

Ich verwende windowsspezifische Befehle. Getestet wurde das Programm unter XP und Windows 7 und funktioniert unter beiden Systemen im gleichen Umfang. Unter Linux wird es wohl nicht funktionieren.

Features:
- Abspielen eines Soundfiles
- Transparenzeffekt (einfach das Mausrad drehen, wenn der Mauspfeil über dem Fenster ist)
- Rechner herunterfahren
- Auswahl zwischen einem Countdown und einer Fixzeit zum Eintritt des Ereignisses
- Anzeige der Zeit in der Taskbar
- Steuerung nur mit Tastatur / nur mit Maus möglich

Geplantes:
- Ausführen beliebiger Konsolenbefehle als Ereignis
- Konfigurationsmenü und Konfigurationsdatei (abzuspielender Sound dann einstellbar, Einstellungen werden gespeichert)
- Schleifen (z.B. alle 5 Minuten tritt das Ereignis ein)
- Presets
- Eigenes Icon

Probleme:
Derzeit ärgern mich zwei Dinge:
1. Die Tabreihenfolge funktioniert nicht - die Radiobuttons werden nicht beachtet.
2. Das Fenster blinkt nicht nach Ablauf des Ereignisses. Siehe Zeile 261 ff im Code - hab ich auch schon unter viewtopic.php?f=15&t=3498 gepostet.
Für Tipps dazu wäre ich dankbar, denn ich hab schon lang rumprobiert und es ist mir noch nicht gelungen das zum laufen zu bringen.

Screenshot:
Bild
Download (Sourcecode und .exe):
http://www.filefront.com/16096501/wecker.zip

So viel Spaß beim ausprobieren, vielleicht findet ihr es ja sogar sinnvoll und benutzt es :) Ich brauch es ständig (Zeit bis der Tee gezogen ist, ...)

Gruß
Chris

felix96
Beiträge: 287
Registriert: So 29. Nov 2009, 17:44
CPU-Target: 32BitWin+64bitUbunt

Re: Timer (Eieruhr/Wecker)

Beitrag von felix96 »

Hallo,
zum warten kannst du sleep(zeit in ms) benutzen.

Das Icon kannst du unter
Project >> Project Options... >> Anwendungen, ändern
Hier auf "Symbol laden".
Ich hoffe ich konnte dir helfen :P
Danke schonmal für eure Antworten
it´s not a bug, it´s a feature!

chris4win
Beiträge: 14
Registriert: Mi 10. Feb 2010, 22:02

Re: Timer (Eieruhr/Wecker)

Beitrag von chris4win »

Hallo Felix,

danke für das Feedback. Beim Icon ist eher das Problem eine schöne Grafik zu machen, die mir gefällt ;)

Für die Weckerfunktion hast du mich aber auf eine gute Idee gebracht, es macht ja keinen Sinn jede Sekunde zu überprüfen, ob die Weckerzeit schon erreicht wurde. Also werde ich das Intervall des Timerobjekts entsprechend anpassen. Ansonsten finde ich nicht, dass sich sleep für mich rechnet, denn das Timerobjekt ist doch wesentlich komfortabler.

Wäre toll, wenn du mir bei der Tabreihenfolge helfen könntest - da verstehe ich noch nicht wo mein Fehler ist (die Radiobuttons werden einfach nicht angesprungen).

Jochen
Beiträge: 35
Registriert: So 30. Nov 2008, 23:35

Re: Timer (Eieruhr/Wecker)

Beitrag von Jochen »

Hey,

tolles Programm! Hab vor Jahren sowas auch mal gemacht. Ich finde das mit der Transpanz echt super! Hab mein Mausrad schon zum rauchen gebracht ... ;-)

Mit der Tab-Reihenfolge kann ich dir weiterhelfen:

Code: Alles auswählen

procedure TForm1.FormCreate(Sender: TObject);
begin
  // ...
  rbtnCountdown.TabStop := True;
  rbtnWecker.TabStop := True;
end;

Oder einfach zur Designtime im Objektinspektor :-)

Ein paar Gedanken:
  • beim Start aktuelle Uhrzeit eintragen? Ok, ist für Wecker doof, für Timer gut
  • Soundfile einstellbar, verschiedene Formate
  • ins Tray minimieren
  • besserer optischer Hinweis, Balloonhint, Popup, Animation (hab hier kein Sound)
  • ist es notwendig für den Shutdown cmd.exe aufzurufen, geht nicht auch shutdown direkt?
  • "Hilfe"-datei, Transparenz mit Mausrad findet sonst keiner
  • nur Eingabe von Ziffern ermöglichen:

    Code: Alles auswählen

    if not (key in ['0'..'9', etc])
  • wenn Uhrzeit, nur Eingabe von 2 Ziffern ermöglichen
  • Timer mit mehr als 23 Stunden ermöglichen

Was ich in meinem Programm damals gemacht habe, ist zwei Zeitfelder zu haben: eins für die Uhrzeit, das andere für den Timer. Bei Eingabe in eines wurde das andere entsprechend angepasst.

Jochen

chris4win
Beiträge: 14
Registriert: Mi 10. Feb 2010, 22:02

Re: Timer (Eieruhr/Wecker)

Beitrag von chris4win »

Hallo Jochen,

schönes Feedback. Danke für das Lösen des Tabproblems :)

Ich hab den Wecker jetzt schon viermal implementiert - ist ein schnell gebasteltes Programm um sich in verschiedenen IDEs zurecht zu finden (einmal Delphi, Visual C#, Netbeans (Java)) - meine Lazarus Version gefällt mir bisher am besten und da steckt auch mal mehr Zeit drin als 2-3 Stunden am Abend.
besserer optischer Hinweis, Balloonhint, Popup, Animation (hab hier kein Sound)

Das hab ich in der Delphiversion mit dem Befehl Flashwindow schön gelöst gehabt. Das springt sofort ins Auge, weil auch wenn das Fenster minimiert ist, blinkt es super in der Taskleiste. Leider will mir das mit Lazarus nicht gelingen.
ins Tray minimieren

Werde ich mir als zusätzliche Option überlegen. Meistens nutze ich nur den Countdown und da ist es schön, wenn ich unten in der Taskleiste auch die Zeit ticken sehe (unter Windows 7 leider nicht so zu sehen, aber da fällt mir noch was ein).

Bisher hagere ich noch, wie ich weitere Optionen einbaue, denn ich möchte die GUI so einfach wie möglich halten und nicht so ein Optionsmonster schaffen. Gleichzeitig sollen die Optionen auch nicht zu versteckt sein, dass man sie nicht findet. Bin da noch ein bisschen am knobeln.

Ansonsten viele gute Punkte angesprochen. Shutdown spreche ich nicht direkt an, weil ich es später austauschen möchte mit anderen Befehlen (selbst definierbar). Etwa um regelmäßig Screenshots zu machen, Pings zu schicken usw. Theoretisch kannst du mehr als 23 eintippen, aber ich glaub bei mehr als 47 Stunden kommt ein Bug und die Zeit wird falsch berechnet.

Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Re: Timer (Eieruhr/Wecker)

Beitrag von Bauer321 »

leider dl server down
www.mcpatcher.net | www.hoeper.me

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6209
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Timer (Eieruhr/Wecker)

Beitrag von af0815 »

Bauer321 hat geschrieben:leider dl server down

Source bei monta hosten :-)
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

chris4win
Beiträge: 14
Registriert: Mi 10. Feb 2010, 22:02

Re: Timer (Eieruhr/Wecker)

Beitrag von chris4win »

Mit der Forge Seite komm ich noch nicht so zurecht. Ich hab jetzt ein Support Ticket angelegt, weil ich das der Hauptseite so entnommen habe. Das Programm hab ich mittlerweile auch weiterentwickelt und jetzt kann man die GUI erweitern und dann noch einen Text zum Timer eintippen (damit man dessen Zweck nicht vergisst) und man kann auch intervallweise einen Ton ausgeben.

Die Sounddateien sind noch etwas "gewöhnungsbedürftig" und dürfen gerne durch eigene ausgetauscht werden - nur bei diesen bin ich mir sicher, dass ich keine Schelte wegen irgendwelcher Urheberrechtsgeschichten bekomm - sind selbstgemacht.

http://forge.lazarusforum.de/issues/show/93

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: Timer (Eieruhr/Wecker)

Beitrag von Euklid »

chris4win hat geschrieben:Mit der Forge Seite komm ich noch nicht so zurecht. Ich hab jetzt ein Support Ticket angelegt, weil ich das der Hauptseite so entnommen habe. Das Programm hab ich mittlerweile auch weiterentwickelt und jetzt kann man die GUI erweitern und dann noch einen Text zum Timer eintippen (damit man dessen Zweck nicht vergisst) und man kann auch intervallweise einen Ton ausgeben.


Deine Projektseite wurde inzwischen von Monta freigegeben und befindet sich hier: http://forge.lazarusforum.de/projects/show/timer
Jetzt kannst Du DIch einfach bei LazFOrge einloggen, Dateien hochladen, ein Forum oder ein Wiki auf machen, u.s.w.

Die Sounddateien sind noch etwas "gewöhnungsbedürftig" und dürfen gerne durch eigene ausgetauscht werden - nur bei diesen bin ich mir sicher, dass ich keine Schelte wegen irgendwelcher Urheberrechtsgeschichten bekomm - sind selbstgemacht.


:lol:
Die Sounds sind hervorragend für diese Anwendung geeignet, wie ich finde! :D

Viele Grüße, Euklid

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: Timer (Eieruhr/Wecker)

Beitrag von MAC »

Bei den Sound tut man auf jedenfall reagieren und das ding abstellen :mrgreen:

Code: Alles auswählen

Signatur := nil;

chris4win
Beiträge: 14
Registriert: Mi 10. Feb 2010, 22:02

Re: Timer (Eieruhr/Wecker)

Beitrag von chris4win »

Danke für die Infos, wird meinem Kumpel gefallen, der mir die Sounds gebastelt hat.

Wo soll ich denn weiter über den Verlauf meines Projekts berichten? Hier oder lieber auf der Projektseite (LazForge)?

Ich denke, dass hier mehr Leute drüber lesen als auf der LazForge Seite.

Hab hier noch ein Bild gemacht. Man kann das Programm jetzt erweitern und dann auch noch zwischendurch in Intervallen einen Sound abspielen. Das kann z.B. bei Sportübungen sinnvoll sein, die man nur kurz macht und dann zur nächsten Übung wechselt.
timer_expand.png

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Timer (Eieruhr/Wecker)

Beitrag von Maik81ftl »

Mal eine Frage.

Wollte mir gerade dieses kleine Feine Tool laden und bei meiner süßen auf den Leppi schieben, aber bekommen die Meldung "file not Found"

weiß jemand, was da grade los ist?

gruß Maik
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: Timer (Eieruhr/Wecker)

Beitrag von MAC »

Ich hab's gerade getestet,
es geht auch bei mir nicht.
Warscheinlich lag es an dem externen Anbieter der das File hochgeladen hat.
Manche löschen diese nach einer Bestimmten Zeit oder wenn diese zu wenige Downloads bekommen um ihre Server nicht voll zu müllen

Code: Alles auswählen

Signatur := nil;

Antworten