TERMIvention

Kommentare anzeigen Worklog abonnieren

Worklogs TERMIvention

Fortschritte beim GUI-Editor

Samstag, 6. Februar 2010 von schalli
Ich habe beim GUI-Editor wieder Fortschritte gemacht. So sieht das ganze jetzt aus:
user posted image
Man kann jetzt auch diese Menüeinträge nutzen:
Arrow Neu
Arrow Öffnen
Arrow Speichern
Arrow Speichern unter
Es fehlt nur noch:
Arrow Exportieren

Sobald ich das geschafft habe, kann man den Editor nutzen.

GUI-Editor

Donnerstag, 14. Januar 2010 von schalli
Ich habe Termivention eine Weile ruhen lassen, da ich auf die ganze GUI-Gestalterei keine Lust habe. Weil ich jetzt aber weiter machen will, habe ich gedacht, ich programmiere mir einen kleinen GUI-Editor. So etwas gibt es zwar schon, aber so einen Editor wollte ich schon immer mal machen.
user posted image
Da ich nur wenige Funktionen einbaue, wird er bald fertig sein und ich kann ihn für TERMIvention einsetzen.

==============EDIT==============

So, jetzt gibt es noch ein paar Ergänzungen, die ich oben aus Zeitgründen nicht schreiben konnte:

Das Fenster "Tools"
... sollte ich vielleicht mal in "Gadgets" umbenennen. Hier kann man eines der Gadgets auswählen, damit man es platzieren kann.

Das Fenster "Gadgetparameter"
... soll Eingabefelder enthalten, in denen man die Parameter und den Variablennamen bearbeiten kann. Es soll diese Eingabefelder geben (es gibt sie schon):
Arrow Variablenname (Variable, in die es im Quelltext gespeichert wird)
Arrow Text
Arrow X
Arrow Y
Arrow Breite
Arrow Höhe
Arrow Parent
Arrow Style

Das Fenster "Unbetitelt"
... ist die Fläche, wo man die Gadgets (als Rechteck mit Beschriftung) platzieren kann. Die Linien sind im Abstand von 5 Pixeln platziert und man kann die Gadgets nicht abweichend vom Raster platzieren. Das rote Kreuz im Bild ist die Stelle, wo die Maus eingerastet ist. Beim grünen Rechteck wird gerade ein neues Gadget erstellt.

Warum muss unbedingt so ein Editor her? Das dauert doch, bis der fertig ist?
Der Editor muss (muss nicht, ist aber praktisch) aus den ganz oben genannten Gründen her. Außerdem: Wenn ich gut vorankomme, sind die nötigen Funktionalitäten in wenigen Tagen fertig. Ein weiterer Grund ist, dass ich ihn natürlich auch bei anderen Projekten einsetzen kann, die mit einer GUI arbeiten.

Demo (Prealpha)

Freitag, 30. Oktober 2009 von schalli
Der Titel dürfte alles sagen:

Download
Größe: 406KB

Ich schaue mir das ganze gerade in "modernem" GUI-Style an und will gucken, ob es besser aussieht, als so wie auf den Bildern. Ich bin allerdings noch unentschlossen, wie ich es am Ende mache. Wer sich es in der "normalen" Version anschauen, der muss die TERMIvention.exe.manifest umbenennen. Wie ist egal, der Name muss halt anders werden.

Kommentare erwünscht, Probleme mit der GUI (--> Abgeschnittene Elemente, zu große Fenster usw.) oder anderes bitte melden.

Verbesserungen beim Bearbeiten von Terminen

Samstag, 24. Oktober 2009 von schalli
Was ist dazugekommen/wurde verbessert?

Arrow Ein Fehler beim Bearbeiten von Terminen wurde behoben:
Fehler: Immer wenn man auf OK geklickt hat, wurde der Termin nicht bearbeitet, sondern ein neuer erstellt.
Lösung: Neuer Termin und Bearbeiten sind ein und dasselbe Fenster. Es wird nur der Titel geändert und die Felder mit Angaben gefüllt. Folglich wurde, wenn man auf den OK-Button klickt, das gleiche gemacht wie beim Neuerstellen. Jetzt speichere ich in einer Variable ab, um was es gerade im Fenster geht und verfahre in der Speicherfunktion entsprechend.

Was muss verbessert werden?

Arrow Wenn es keine Termine gibt, sollte eigentlich die in der settings.ini aufgeschriebene Datei im Meldefenster angezeigt werden. Sollte der Fall eintreten, wird einfach der Inhalt von der Datei in die temp.html kopiert. Doch leider passiert das nicht.
Arrow Wenn man den Bearbeiten-Dialog aufruft, dann sind, wenn man einen neuen Termin erstellen will, immer noch die Daten vom Bearbeiten in den Eingabefeldern. Das sollte sich allerdings leicht korrigieren lassen.

/-----EDIT-----/
Die beiden Punkte oben wurden verbessert:
Idea Der erste Punkt hatte mit einem falschen Dateipfad zu tun.
Idea Der zweite Punkt ließ sich leicht durch das Hinzufügen einer neuen Funktion verbessern.
Daraus folgen diese Fortschritte:
Arrow Das Warnen vor Terminen klappt jetzt gut. Das Anzeigesystem ist auch schon stylefähig, nur die Auswahl mit Vorschaubildchen ist eben noch nicht programmiert.
Arrow Das Erstellen von Terminen ist abgeschlossen, am Bearbeiten muss vielleicht noch ein bisschen gefeilt werden.
/-----EDIT ENDE-----/

Wenn ich diese Sachen verbessert habe kann ich endlich die Demo veröffentlichen. Das wollte ich ursprünglich in diesem Eintrag tun, mir sind dann aber noch diese Kleinigkeiten aufgefallen.

Die nächsten Aufgaben

Arrow Die drei weiteren Neu-Dialogfelder erstellen
Arrow Das Style-System richtig aufbauen. Es existiert bisher nur in Ansätzen.
Arrow Formatierungsoptionen
Arrow Zyklen, RSS-Feeds und E-Mails umsetzen

Projekt nicht tot

Sonntag, 4. Oktober 2009 von schalli
TERMIvention ist nicht tot!

Ich habe nur gerade wegen diverser Umstände keine Zeit, an dem Projekt weiterzuarbeiten. (Schule usw.)

Kleine Fortschritte

Arrow Ein Anfang für das Styleauswahlsystem. Es gibt zwar nur ein Style und die Auswahlfunktion im Optionen- Fenster ist noch deaktiviert, aber immerhin kann der Styleordner jetzt in der Konfigurationsdatei eingestellt werden.
Arrow Die Buttons, deren Funktionen noch nicht zur Verfügung stehen, wurden deaktiviert.

Laughing Laughing Nach den letzten Korrekturen und Überprüfungen könnte demnächst die Demo kommen Laughing Laughing

Allerdings werde ich aus den oben genannten Gründen wahrscheinlich erst in den nahen Herbstferien weitermachen können.

EDIT:

Ich muss den vorletzten Beitrag über Styles noch um die neusten Entwicklungen vervollständigen.

4. settings.ini

Code: [AUSKLAPPEN]
[settings]
no_dates=no_dates.html
preview=preview.png
css_file=style.css


no_dates Arrow Es gibt keine Termine. (+)
preview Arrow Kleines Vorschaubildchen (-)
css_file Arrow Die CSS-Datei für den CSS-Bearbeitungsmodus (-)

(+) Bereits unterstützt
(-) Noch nicht unterstützt

5. 6. 7. Die Dateien die in der settings.ini vereinbart wurden

Urlaubspause + Terminfunktion

Donnerstag, 27. August 2009 von schalli
Urlaubspause

Weil ich im Urlaub war, konnte ich zwei Wochen nicht am Projekt weiterarbeiten.

Terminfunktion

Die Terminfunktion rechnet immer einen Tag dazu, bis das Anfangs- und das Enddatum übereinstimmen. Jetzt sollte eigentlich das Programm eigentlich in eine Endlosschleife geraten, wenn man ihm eine Aufgabe wie von 7.11.2009 bis 6.11.2009. Das tut es aber nicht sondern gibt 29 zurück. Warum weiß ich nicht und bevor ich das nicht weiß, komme ich nicht voran.

Terminabrechnung

Freitag, 31. Juli 2009 von schalli
... ist nicht nur der Titel dieses Worklogeintrags sondern auch eine wichtige Funktion in TERMIvention. Sie guckt ob ein Termin "im Anflug" ist und speichert ihn, wenn das der Fall ist, in die Datei temp.html. Diese Datei wird im Meldefenster dann im HtmlView angezeigt.

Hier ist ein Bild:

user posted image

"hallihallo" ist der Terminname. Rot und <h1>, also ist er Priorität 1. Die Beschreibung "blubber" steht darunter.

Was kommt noch?
Arrow Termine nach Ablaufen löschen

Bei der Gelegenheit will ich erklären, wie ein Style aufgebaut ist.

Ein Style setzt sich aus drei Dateien mit der Endung .html.txt zusammen. Diese benötigt das Programm zur Zusammensetzung der temp.html. Außerdem werden noch .css Dateien und eventuell Grafiken benötigt (je nach Style).

Die drei Dateien

1. part1.html.txt

Code: [AUSKLAPPEN]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Achtung!!! Termine!!!</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div>Es sind Termine im Anflug!!!</div>


2. termine.html.txt

Code: [AUSKLAPPEN]
<h1 id="plus" title="rplace3">rplace1</h1>rplace2
<h1 title="rplace3">rplace1</h1>rplace2
<h2 title="rplace3">rplace1</h2>rplace2
<h3 title="rplace3">rplace1</h3>rplace2
<h4 title="rplace3">rplace1</h4>rplace2


Arrow Aus dem Inhalt dieser Datei wird im Programm der eigentliche Terminteil generiert. Für jede Priorität gibt es eine Zeile. Wahrscheinlich mache ich für die einzelnen Arten nochmal eigene Zeilen. Das wären dann insgesamt 20 Zeilen.
Arrow rplace ist eine nicht grade kürzere Abkürzung für replace. rplace1 wird durch den Namen des Termins ersetzt, rplace2 durch die Informationen und rplace3 durch das Datum.

3. part2.html.txt

Code: [AUSKLAPPEN]
<br><br><br><a href="termin_edit.html">Termine anlegen/bearbeiten</a>
</body>
</html>

Ausklappen

Montag, 20. Juli 2009 von schalli
Updates entfernt.

Hierzu hatte ich mir ursprünglich folgendes gedacht:
Erst wird eine Updatedatei heruntergeladen. In dieser Datei sind alle Dateien reingeschrieben, die ersetzt oder neu geschrieben werden sollen. Aber ich will nicht so große Dateien haben, aber ich will auch keine eigene Skriptsprache für mein Programm schreiben. Also lass ich sie einfach weg.

Ausklappen

Es gibt ja vier verschiedene Sachen, die man neu machen kann: Termin, Zyklus, E-Mail, RSS. Jetzt hatte ich mir gedacht, wenn ich auf Neu klicke, öffnet sich ein Dialogfeld, in dem man diese vier Möglichkeiten hat. Das ist etwas umständlich für den Benutzer. Deswegen hatte ich eine sehr gute Idee. Hier sind ein paar Bilder, wie es jetzt aussieht:

Nicht ausgeklappt:

user posted image

Ausgeklappt:

user posted image

Wenn man auf Neu klickt, werden die vier Buttons im zweiten Bild ausgeklappt.

Neues im Bild
Arrow Natürlich die Ausklappfunktion
Arrow Neuer Termin wurde Neu
Arrow Termin bearbeiten wurde Bearbeiten
Arrow Termin löschen wurde Löschen
Arrow Man sieht eins von den neuen Icons.

Neuer Zyklus

user posted image

Das Dialogfeld ist fast der gleiche wie das Neuer Termin-Dialogfeld. Der Unterschied ist nur, dass noch 2 Comboboxen und das Label "Termin findet statt alle" hinzugekommen sind. Den Formatierungsoptionen-Button gibt es mittlerweile auch im Neuer Termin-Dialogfeld. Er soll eine Reihe von Buttons ausklappen, die in das Infofeld HTML/BBCode ähnliche Gebilde einfügen. Das habe ich bisher Ersetzungstags genannt. Welche ich genau mache weiß ich noch nicht.

Icons und Schönheitsfehler

Freitag, 17. Juli 2009 von schalli
Also, im letzten Eintrag hatte ich ja von Icons geredet. Hier sind sie:

user posted image

---EDIT---
Icons wurden verändert. Sie waren ja nicht so schön. Xeres hat mir eine neue Icongrafik angeboten. Diese ist jetzt oben zu sehen. Die alte wurde weggemacht. Auch der unten beschriebene Schönheitsfehler, der bei den letzten Icons auftrat, tritt bei den neuen Icons nicht mehr auf.
---EDIT ENDE---

Von links nach rechts:
Stecknadel Arrow Termin
Kreis mit Pfeil Arrow Zyklus
Briefumschlag Arrow E-Mail
RSS-Zeichen Arrow RSS-Feed

Ich habe sie auch schon eingebaut. Leider gibt es einen kleinen Schönheitsfehler:

user posted image

Ich hoffe, ich finde noch eine Lösung, wie ich ihn verhindern kann.
Was kommt als nächstes?
Arrow Neuer Termin durch Neu austauschen. Ein kleines Dialogfeld mit einer Auswahl, was man neu machen will.
Arrow Die Terminwarnung zusammensetzen.
Welche Bugs sind entdeckt worden?
Arrow Datumsstringauseinanderklamüserfunktionen Wink funktionieren nicht richtig
EDIT: Der Fehler wurde beseitigt. Es war nur ein kleiner Schusselfehler mit Variablen.

PS: Im letzten Eintrag habe ich vergessen zu erwähnen, dass ich mit BlitzPlus programmiere.

Erster Eintrag + Projektvorstellung

Donnerstag, 16. Juli 2009 von schalli
TERMIvention ist ein Programm, das Termine meldet und in dem man sie anlegen und bearbeiten kann.
Ich bin jemand, der Termine schnell vergisst. Und da ich ja programmieren kann, dachte ich mir, ich mache ein Programm, dass mich an die Termine erinnert. Jedes Mal, wenn ich den Computer hochfahre, soll sich das Meldefenster öffnen. In Bild 1 kann man den bisherigen Status dieses Fensters sehen. Die verschiedenen Farben und Schriftgrößen stehen für die verschieden Prioritäten der Termine. Wenn man einen neuen Termin anlegt, kann man auswählen, welche Priorität er haben soll (Bild 3). Was man vielleicht an dem Meldefenster noch verändern könnte, ist der Style. Man könnte im Optionen-Fenster (Bild 4) eine Auswahl von mehreren Styles machen. Es gibt bereits jetzt eine Möglichkeit, den Style zu ändern, indem man im CSS-Editor (Bild 5) einfach die CSS-Datei bearbeitet. Diese Möglichkeit soll bei auswählbaren Styles weiterhin bestehen.

Hier einige Bilder:

Bild 1: Das Terminmeldefenster (soll sich bei jedem Systemstart öffnen):

user posted image

Der Style ist noch nicht so toll, aber das kann ich ja noch verändern.
Arrow basiert auf HTML

Bild 2: Wenn man jetzt auf Termine anlegen/bearbeiten klickt öffnet sich folgendes Fenster:

user posted image

Man hat die vier Optionen, die auf den Buttons stehen. Dort, wo "sfag" steht ist die Terminliste. "sfag" ist ein Testtermin.

Bild 3: Neuer Termin

user posted image

Termin bearbeiten sieht so aus wie Neuer Termin, nur mit anderem Titel.

Bei Termin löschen kommt nur eine Meldung "Wollen sie den Termin wirklich löschen?"

Bild 4: Optionen sieht so aus:

user posted image

Bild 5: Wenn man auf CSS-Datei bearbeiten klickt, bekommt man das zu sehen:

user posted image

Hier kann man den Style des Meldefensters ändern.

Was kommt noch?

Arrow Die eigentliche Terminwarnfunktion steht noch nicht.
Arrow Der Updatemodus (siehe Meldefenster -> Link "Updates") wird wahrscheinlich wieder abgeschafft. Stattdessen will ich die Möglichkeit geben, zwischen verschiedenen Styles zu entscheiden. Wenn man nun über den CSS-Editor den Style bearbeitet, wird dieser nicht überschrieben. Der neue Style wird in eine neue Datei geschrieben und zählt nun als eigener Style, den man auch im Optionen-Dialogfeld auswählen kann. Sein Name ist dann "Benutzerdefiniert".
Arrow Zyklen: Sich regelmäßig wiederholender Termine.
Arrow Ersetzungstags: Im Terminbeschreibungsfeld wird z.B. "{termindate}" eingegeben und später durch das Datum des Termins ersetzt, bzw. am Tag des Termins durch "heute". Es soll noch "{b}...{/b}" und so weiter für verschiedene Formatierungsoptionen geben.
Arrow Je nach Lust und Möglichkeit: RSS-Feed-Meldungen und E-Mail-Meldungen
Arrow Sollte es noch diese ganzen anderen Möglichkeiten neben Terminen geben, mache ich im Bearbeitungsfenster in der Liste noch Icons.
Arrow Bisher geht aus dem Programm noch nicht so richtig hervor, dass es TERMIvention heißt. Das muss sich ändern.
Arrow Ein Erststartkonfigurationsdialogfeld, in dem man einstellen kann, z.B. wie viele Minuten nach Systemstart sich das Programm starten soll.

Fortschritt (Prozent)
40%

Wann kommt eine Demo?
Einen Zeitpunkt kann ich noch nicht sagen, aber möglichst, wenn die Warnfunktion fertig ist.

Namenserklärung:
TERMIvention besteht aus TERMI (steht für Termin) und vention (Bestandteil meiner Homepagedomain: theovention.de). Der Domainname baut sich aus theo (mein Vorname) und vention (Teil von invention) auf.