Wir haben in den letzten Wochen das Projekt "MiniPaint" bearbeitet und den Arbeitsfortschritt in einem LOGBuch festgehalten. Im Anhang befinden sich 4 LOGBücher und die jeweiligen Lösungen dazu.
LOGBuch von AlexanderM und ThimoR
26.10.2007 - Planung/Design
Wir fangen mit dem Projekt MiniPaint an.
Als erstes haben wir uns überlegt, welche Funktionen wir in unser MiniPaint einbauen. Als nächstes haben wir dann ein Layout entworfen und alles weitere (Buttons etc.) zum Programmieren vorbereitet.
Das Layout wird ungefähr so aussehen:
30.10.2007 - Code wird geschrieben
Wir haben mit dem Programmieren begonnen.
Verfügbare Eigenschaften:
- Freihand zeichnen
- Linien zeichnen
- Ellipse zeichnen
- Stiftdicke einstellen
- Stiftfarbe einstellen
- Werkzeugleiste öffnen, schließen und verschieben
- Programm beenden
- Zeichnung löschen
09.11.2007 - Code für Ellipse...leider Probleme
Wir haben die Transparenz von der Ellipse Auswahlfähig gemacht. Durch Container können wir die zugehörigen SpeedButtons Ein- bzw. Ausblenden.
Leider haben wir Probleme die Transparenz richtig anzuzeigen bzw. zu zeichnen.
Die Farben werden nicht richtig wie erwünscht gezeichnet.
13.11.2007 - Paint wurde erweitert
Wir haben die Möglichkeit Kreise und Rechtecke zu zeichnen, Problem mit der Transperenz wurde gelöst.
16.11.2007 - Paint bekommt ein Menü
Wir haben nun angefangen (Betonung auf "angefangen") ein Menü für unser Paint.
Zur Zeit funktioniert:
- Neu (das Bild wird gelöscht, also wie der Lösche-Button es auch macht)
- Beenden (das Programm wird beendet, also wie der Beenden-Button)
In Zukunft kommt rein:
- Speichern
- Speicher als...
- Laden
20.11.2007 - mit Speichern und Farbwahl erweitert
Nun wurden versucht das Speichern des Bildes zu integrieren.
Dies ist auch mit einer speziellen Methode möglich, aber diese ist nur für ein TImage-Objekt verfügbar Deshalb wurde, statt der Form, ein Bild eingeführt, das als Leinwand (Canvas) dient.
Das Speichern funktionierte auch, aber man muss den Dateinamen und die Dateierweiterung im Quelltext angeben. Das kam nicht in Frage!
MiniPaint ist interaktiv. Es soll mit dem Benutzer kommunizieren. Also haben wir ein SaveDialog implementiert mit dem es allerdings noch etwas Probleme gibt.
Außerdem wurde noch die Farbwahl verbessert. Es ist nun möglich durch eine Farbtabelle eine benutzerdefinierte farbe zu benutzen.
Das Programm kommt langsam ans Finale ran.
Was noch rein kommen soll sind:
- Radiergummi (Wieso haben wir's noch nicht drin?)
- optische Verschönerungen (wie z.B. die Vorschau der ausgewählten Farbe, Grafiken einbetten, usw.)