EClock Version 1.00 vom 22.05.94 Upgrade zu Clock V2.2 (vollkommen neu geschrieben) Copyright (C) 1992-1994 by Bernd Grunwald Zugspitzstr.78 82223 Eichenau Deutschland (Germany) Die Weitergabe ist nur erlaubt wenn der Name des Autors und der Copyright-Vermerk nicht entfernt wurden, die Weitergabe kostenlos ist, oder NUR die Kopiergebühren (<= DM 5,-) erhoben werden und diese Anleitung dem Paket beiliegt. Die Weitergabe des Key-Files ist VERBOTEN! DER AUTOR HAFTET FÜR KEINE SCHÄDEN, DIE DURCH DAS PROGRAMM ENTSTEHEN! Was ist EClock? *************** Mit EClock habe ich ein Uhrenprogramm geschrieben, das sich sowohl von dem CLI aus starten läßt, als auch von der Workbench. Als besondere Features sind aufzuführen: Uhr erscheint immer auf dem vordersten Screen; unendlich viele Alarmzeiten speicherbar, bei denen dann ein Programm gestartet werden kann und vieles mehr ... Warum wurde Clock v2.2 in EClock umbenannt? Also Clock war ursprünglich in Assembler geschrieben worden und begann mit einer Sourcecode Länge von etwa 4KB. Da an mich viele Verbesserungsvorschläge herangetragen wurden baute ich diese fleißig ein. Da aber irgendwann der Punkt erreicht war, daß ich länger suchen mußte, wo ich denn nun was einfügen konnte, als das eigentliche Ändern dauerte (1), habe ich mich dazu entschlossen Clock neu zu schreiben. Und da es ein komplett neues Programm ist, habe ich auch den Namen geändert. Da ich in der Uni sowieso Modula II lernen mußte habe ich mir auch einen Compiler für den Amiga gekauft und war davon sehr angetan. Was lag da näher, als EClock in einer Hochsprache zu programmieren, um so die Wartung einfacher zu halten? Das Keyfile ist natürlich das gleiche, wie das für Clock. Das heißt, alle registrierten (Siehe Registrierung) Clock User können EClock mit Ihrem Keyfile ohne Nervfenster benutzen. ---------- Fußnote ---------- (1) Unter Kennern als Spaghetti Code bekannt :-) Unterschiede Clock/EClock ************************* * Es gibt jetzt 2 Modi von EClock: - UsePublicScreens only (Siehe Hauptfenster Gadgets) (benutzt nur PublicScreens um auf selbigen zu erscheinen) und ist deshalb weitgehend systemkonform. - UseEveryScreen (benutzt jeden Screen und behandelt PublicScreens auch als solche) ist unkonformer, aber vielleicht will man ja auch machmal seine Uhr auf dem DPaint, PPaint ... Screen aufmachen. * EClock besteht nun aus mehreren Programmen. - EClock, dem Hauptprogramm (Siehe EClock), daß immer läuft. - EClockPrefs, dem Konfigurations Programm (Siehe EClockPrefs). - Und ERequester (Siehe ERequester), daß den Aufruf der Alarm-Requester, falls gewünscht übernimmt. Diese Unterteilung wurde deshalb getroffen, weil man den Konfigurator relativ selten braucht und er sonst nur unnötigen Speicher verbrauchen würde. * EClock hat keine Beschränkung der nutzbaren Alarmzeiten (Siehe EClockPrefs Timerfenster). Sie hängen jetzt nur noch vom vorhandenen Speicher ab und von der Prozessorzeit, die Sie gewillt sind EClock für die Alarmzeitbehandlung zu überlassen. * EClock unterstützt Wildcards. D.h. Sie können z.B. "??:00:00" für einen stündlichen Alarm benutzen oder "(??:00:00|??:30:00)" für einen halbstündlichen. * EClock kann nun auch zu bestimmten Daten, oder an bestimmten Wochentagen zu einer bestimmten Uhrzeit einen Alarm auslösen. Dabei werden natürlich auch die Wildcards unterstützt, so daß Sie z.B. (Donner#?|Fr#?) für Donnerstag oder Freitag eingeben können. * EClock interpretiert folgende 3 Zeichen(folgen) im Requestertext: \ Dieses Zeichen wird im Requester Text als Return interpretiert, was im Requester einen Zeilenneuanfang bedeutet. EClock kann also nun schöner gestaltete mehrzeilige Requester anzeigen. %t Diese Zeichen werden im Requester Text vor dem Anzeigen des Requesters durch die aktuelle Uhrzeit ersetzt. %d Diese Zeichen werden im Requester Text vor dem Anzeigen des Requesters durch das aktuelle Datum ersetzt. * Es können jetzt auch beliebig viele Screens definiert werden, auf denen sich EClock bevorzugt öffnen soll (Siehe EClockPrefs Screenfenster). Dabei kann für jeden Screen die X- und Y-Position ... angegeben werden. Dabei wird EClock immer den Screen bevorzugen, der in der Liste weiter oben steht ... Installation ************ Als erstes müssen Sie das File ERequester irgendwo in den Suchpfad kopieren (am besten ins "c:" Verzeichnis). Dieser Befehl ist nötig, um Requester anzeigen zu können. Nun kopieren Sie am besten das Programm EClock in die "SYS:WBStartup" Schublade (oder sonstwohin und starten es dann von Hand über die "User-Startup" Sequence). Dieses Programm ist das Hauptprogramm von EClock. Danach kopieren Sie das File EClockPrefs in die "SYS:Prefs" Schublade, da es sonst nicht vom EClock Hauptprogramm aufgerufen werden kann. Falls Sie die Locale.library installiert haben (WB 2.1+) und das Programm EClockPrefs in Deutscher Sprache bedienen wollen, dann kopieren Sie das File "EClPrefs.catalog" nach "locale:Catalogs/Deutsch". Es ist jetzt umbedingt erforderlich, daß Sie EClockPrefs starten und eine Konfiguration mit dem "SAVE" Gadget abspeichern (es werden zwei Files erzeugt: "env:EClock.config" und "envarc:EClock.config"), da EClock sonst nicht startet. Jetzt kann man EClock starten. Oder benutzen Sie einfach das Installerskript. Programmbeschreibungen ********************** EClock ====== EClock Menu ----------- Das Menu des EClock Hauptprogrammes ist folgendermaßen aufgebaut: Change Prefs Startet das Programm "SYS:Prefs/EClockPrefs" Change Colors ruft den Reqtools Colorrequester auf dem Screen auf, auf dem sich EClock gerade befindet. (Dabei ist EClock aber dann so lange blockiert, bis der Requester wieder geschlossen ist.) About ruft das Programm ERequester auf und zeigt meine Adresse ... an Quit Na, was wird das wohl machen? :-) EClock Fenster -------------- In diesem Fenster gibt es 2 Möglichkeiten EClock zu beeinflussen: Das ZoomGagdet Wenn Sie diese Gadget anklicken wird EClock sofort von dem aktuellen Screen verschwinden und nie mehr auf ihn zurückkehren. Es wird aber immer nur ein Screen gespeichert, von dem EClock sich entfernen soll, so daß Sie, wenn Sie nochmal auf das Gadget klicken EClock wieder dazu bewegen können sich wieder auf den Screen zu bringen, den Sie zuerst durch klicken auf das ZoomGagdet sperrten. Dieses Gadget ist wichtig, um einen PublicScreen schließen zu können auf dem sich EClock gerade befindet. Close Gadget Na, was wird das wohl machen? :-) EClock Shell Startup -------------------- Um EClock auch mit einer anderen Konfiguration starten zu können wird ein Argument unterstützt, daß Sie einfach beim CLI Start übergeben. z.B. "EClock ENV:EClock.config" EClockPrefs =========== EClockPrefs Hauptfenster ------------------------ Hauptfenster Menues ................... Folgende Menüs hat das EClockPrefs Hauptfenster: Open... Mit diesem Menüpunkt können Sie eine andere Konfiguration einladen. Es wird ein ASL-Requester angezeigt, der Sie dazu auffordert ein File zu selektieren. Save As... Mit diesem Menüpunkt können Sie die Konfiguration unter einem anderen Namen abspeichern. Es wird ein ASL-Requester angezeigt, der Sie dazu auffordert ein File zu selektieren. About Es werden meine Adresse ... in einem Requester angezeigt. Quit Na, was wird das wohl machen? :-) Hauptfenster Gadgets .................... Die Gadgets im Hauptfenster sind in folgende 4 Gruppen eingeteilt: Global Settings German Time Aktiviert 24h Modus Long Day String... Aktiviert ausgeschriebenen Tagnamen (sonst 2 Buchstaben). Date with "." Aktiviert Datumstrennung mit "." sonst "-" Use Only PubScreens Aktiviert systemkonforme Art und Weise des Screen Handlings von EClock. Dann kann sich EClock allerdings nur auf PublicScreens öffnen. Priority Hier kann man die Priorität einstellen, mit der EClock laufen soll. Screen Prefs Listview Doppelklick auf ein Element der Liste aktiviert das EClockPrefs Screenfenster (Siehe EClockPrefs Screenfenster) mit den Daten des angeklickten Elements. Je weiter oben ein Element steht desto eher wird geprüft, ob es mit einem passenden Screennamen übereinstimmt. Also wenn der oberste Screennamen paßt, werden die anderen nicht mehr durchgesehen und dieser Screen wird benutzt. ADD Hinzufügen eines neuen Eintrags (immer am Ende der Liste). DEL Löschen eines aktivierten Eintrags. UP Der aktivierte Eintrag wandert um eins in der Liste nach oben. DOWN Der aktivierte Eintrag wandert um eins in der Liste nach unten. TimerPrefs Listview Doppelklick auf ein Element der Liste aktiviert das EClockPrefs Timerfenster (Siehe EClockPrefs Timerfenster) mit den Daten des angeklickten Elements. ADD Hinzufügen eines neuen Eintrags (immer am Ende der Liste). DEL Löschen eines aktivierten Eintrags. UP Der aktivierte Eintrag wandert um eins in der Liste nach oben. DOWN Der aktivierte Eintrag wandert um eins in der Liste nach unten. Aktionen SAVE Speichert in ENV: und ENVARC: das File EClock.config. Wenn eine Konfiguration als Argument übergeben wurde, oder wenn Sie mit dem Menüpunkt "Open..." eine andere Konfiguration geladen haben, wird nur unter diesem Namen gespeichert. USE Speichert in ENV: das File EClock.config. Wenn eine Konfiguration als Argument übergeben wurde, oder wenn Sie mit dem Menüpunkt "Open..." eine andere Konfiguration geladen haben, wird unter diesem Namen gespeichert. CANCEL Bricht ab, ohne zu speichern (wie CloseGadget). EClockPrefs Screenfenster ------------------------- Screen Pattern Hier kann man ein Pattern mit Wildcards (#? ...) (es wird nicht zwischen Groß- und Kleinschreibung unterschieden) angeben. Wenn das Pattern mit dem aktuellen Screennamen übereinstimmt, dann geht EClock auf diesem Screen auf. Hierbei wird die Liste aller Einträge durchgegangen und der 1. passende herangezogen. XPOS X-Position, an der EClock sein Fenster auf dem, oder den "Screen Pattern" Screen(s) aufgehen soll. YPOS Y-Position, an der EClock sein Fenster auf dem, oder den "Screen Pattern" Screen(s) aufmachen soll. Show Date Aktiviert die Anzeige des Datums im EClock Fenster. Show memory Aktiviert die Anzeige des Speichers im EClock Fenster. OK Änderungen übernehmen. CANCEL Änderungen verwerfen (=CloseGadget) EClockPrefs Timerfenster ------------------------ Weekly Ist dieses Gadget aktiviert, dann wird nicht mit dem Datumsstring verglichen, sondern mit dem Tagstring. Es ist dann also möglich z.B. "(Do#?|Fr#?)" (hängt von der Lokalisierung ab beim englischen also "(Th#?|Fr#?)") anzugeben um auch an bestimmten Wochentagen eine Aktion auszulösen und nicht nur an bestimmten Daten wie bei nicht aktiviertem Gadget. Date Pattern Hier kann man ein Pattern mit Wildcards (#? ...) angeben. Wenn das Pattern mit dem aktuellen Datumsstring übereinstimmt, und mit der Zeit dann wird ein Alarm ausgelöst. z.B. "Do#?" +aktiviertes Weekly => Nur an Donnerstagen passiert was. Time Pattern Hier kann man ein Pattern mit Wildcards (#? ...) angeben. Wenn das Pattern mit der aktuellen Zeit übereinstimmt, und mit dem Datumsstring dann wird ein Alarm ausgelöst. Deutsch z.B. "#?:00:00" => jede volle Stunde wird ein Alarm ausgelöst. Englisch z.B. "(#?:30:00#?|#?:00:00#?)" => jede halbe Stunde wird ein Alarm ausgelöst. Das "#?" nach #?:30:00 und nach #?:00:00 steht hier für das bei nicht deutscher Zeitanzeige angefügte "PM" bzw. "AM". Req Aktiviert einen Requester, der beim Alarm aufgerufen wird. Dieser Requester wird von dem Programm ERequester erzeugt, der dann beim Alarm mit den Parametern von "Req. Text" gestartet wird. Req. Text Hier steht der Inhalt, den der Requester haben soll. Das Zeichen mit dem ASCII Code 254 ist nicht erlaubt und wird rausgefiltert (in allen Stringgadgets). Das Zeichen "\" heißt, daß ein Zeilenumbruch im Requester stattfindet. So kann man auch einen schöneren Requester erzeugen, als mit Clock 2.2. Der Requester erscheint übrigens immer auf dem gerade aktiven PublicScreen, oder falls keiner aktiviert ist auf der Workbench. File Aktiviert ein Programm, das beim Alarm aufgerufen wird. (wird mit "RUN NIL:" gestartet) Falls dieses Gadget also aktiviert ist wird das Programm mit dem unter "Filename" ausgewählten Namen gestartet. Filename Hier steht der Filename (ggf. mit Argumenten), der beim Alarm aufgerufen werden soll. G Öffnet einen ASL-Filerequester um den Filenamen in das "Filename" Gadget zu kopieren. DisplayBeep Aktiviert einen DisplayBeep, der dann beim Alarm ausgeführt wird. OK Änderungen übernehmen. CANCEL Änderungen verwerfen (=CloseGadget) EClockPrefs Shell Startup ------------------------- Es läßt sich eine Konfiguration als Argument übergeben (Wird von EClock benutzt um immer die gerade aktive Config aufzurufen). ERequester ========== ERequester ist ein kleines Programm, das einen Requester auf dem vordersten Publicscreen anzeigt, oder falls kein Publicscreen vorne ist, dann benutzt es dazu die Workbench. Der Text, der im Requester angezeigt wird übergibt man als CLI Argumente beim Start. Dabei wird das "\" Zeichen als Return interpretiert, so daß auch mehrzeilige Texte in einem Requester angezeigt werden können. z.B. `ERequester "Hello it is very late now\:-)"' Registrierung ************* Wenn Sie EClock länger als eine Woche benutzen, dann müssen Sie sich bei mir registrieren lassen. Dann erhalten Sie entweder ein Key-File von mir (über Fido, oder Z-Netz) oder eine Diskette mit der neuesten EClock Version, Key-File und ein paar kleinen extra Programmen als Zugabe. Außerdem werde ich für Interessierte den Source Code von Clock v2.3 beilegen, falls Sie sich mit dem neuen Uhrenprogramm nicht anfreunden können und vieleicht noch etwas neues in Clock einbauen wollen. Bedingung ist aber, daß Sie mir dann diese geänderte Version und sämtliche Updates kostenlos schicken müssen, wenn Sie sie weiter verbreiten. Außerdem ist in dem Programm immer mein Name als Urheber von Clock zu belassen. Sie können natürlich Ihren Namen auch mit einbauen ... Außerdem liegen der Diskette für registrierte EClock User Turbo Versionen (010, 020, 030, 030FPU, 040FPU) von EClock und EClockPrefs bei. Wenn Sie das Key-File haben erscheint das nervige Info-Fenster beim Start von EClock nicht mehr. Das Key-File wird voraussichtlich auch bei Updates von EClock zu verwenden sein, so daß Sie dann die neue EClock Version auch von PD Disketten oder aus File Netzen ohne Nervfenster verwenden können. Im Key-File sind Ihre persönlichen Daten gespeichert, so daß ich, falls ich Ihr File irgendwie in die Hand bekommen sollte, feststellen kann, ob es von Ihnen war. => Geben Sie das Key-File nicht weiter, da das strafbar ist! Den Preis der Registrierung entnehmen Sie dem beigelegten Registrierungs-Formular, daß Sie bitte auch zur Registrierung verwenden. Die neueste EClock Version läßt sich auch aus der "Avalon Magic" saugen. Einfach als Username "SAUGER" eingeben und die neueste EClock Version aus dem Brett "/SAUGER/AMIGA" downloaden, mit "CD /SAUGER/AMIGA", dann "INH *" und mit "LE xx" (xx = Nummer) EClock downloaden. Die Telefonnummer der AMC: 1200 - 14400 Bps HST V32 V32bis V42 V42bis Tel: +49-(0)89-3130290 24h Online Außerdem können Sie als registrierter EClock User natürlich jederzeit eine neue Version bekommen, wenn Sie mir eine Diskette mit ausreichend frankiertem und an sich adressierten Briefumschlag schicken. Anmerkungen *********** Bei Fragen oder Verbesserungsvorschlägen ... bin ich auch über das Zerberus-Netz zu erreichen unter: EMBO@AMC.zer.sub.org oder über das Fidonet unter: Bernd Grunwald of 2:2480/3508.100 zur Not (1) auch über InterNet unter: embo@eikon.e-technik.tu-muenchen.de Viel Spaß mit diesem Programm! Flames => NIL: Konstruktive Kritiken sind aber immer willkommen! Wenn das Programm bei Ihnen nicht läuft, dann schreiben Sie mir doch bitte den genauen Fehler und Ihre Workbench und Kickstart-Version ... Danke an: Toni Günzel Peltner (WEGAR@AMC.zer.sub.org) für das Betatesten und natürlich für das SUPER Progamm TheAnswer III !! Holgi (H_LEVSEN@BINGO.zer.sub.org) Peter Fröhlich (P.FROEHLICH@AMC.zer.sub.org) Thomas Strauß (THOMAS_STRAUSS@SAARAG.zer.sub.org) Stefan Brandes und alle, die mir geholfen haben! ---------- Fußnote ---------- (1) das kann sehr lange dauern, da ich sehr selten an der Uni bin um Mails zu lesen ... Neuerungen ********** Noch keine :-) Tips & Tricks ************* Stichwortverzeichnis ******************** Anmerkungen Anmerkungen EClock EClock EClock Fenster EClock Fenster EClock Menu EClock Menu EClock Shell Startup EClock Shell Startup EClockPrefs EClockPrefs EClockPrefs Hauptfenster EClockPrefs Hauptfenster EClockPrefs Screenfenster EClockPrefs Screenfenster EClockPrefs Shell Startup EClockPrefs Shell Startup EClockPrefs Timerfenster EClockPrefs Timerfenster ERequester ERequester Hauptfenster Gadgets Hauptfenster Gadgets Hauptfenster Menues Hauptfenster Menues Installation Installation Neuerungen Neuerungen Programmbeschreibungen Programmbeschreibungen Registrierung Registrierung Tips & Tricks Tips & Tricks Unterschiede Clock/EClock Unterschiede Clock-EClock Was ist EClock? Was ist EClock?