AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Benjis kleines Zeichenprogramm

Benjis kleines Zeichenprogramm

Ein Thema von benji316 · begonnen am 2. Jul 2013 · letzter Beitrag vom 13. Mär 2014
Antwort Antwort
Seite 2 von 4     12 34   
benji316
Registriert seit: 2. Jul 2013
Mein kleines Zeichenprogramm, ähnlich wie Paint, und es beherrscht auch die meisten Funktionen von Paint.
Enstanden ist es als Übungsprojekt für meine Informatik-Matura, für die ich mich mit einfachen 2D-Grafiken in Delphi beschäftigt habe, und dann kam irgendwann mal die Idee, einfach mal ein simples Zeichenprogramm wie Paint zu erstellen, und mit der Zeit wurde es immer umfangreicher (inzwischen besteht es aus 502 Zeilen Code, mein größtes Projekt bis jetzt )

Features (Auswahl):
Mit gedrückter Mastaste zeichnen, Stiftfarbe und Breite verändern, Rechtecke und Polygone aufziehen, Bilder als Bitmap speichern und öffnen, usw.



Bugs bitte melden!

Die aktuelle Version des Programms und den Sourcecode kann man separat von meinem Mediafire-Ordner downloaden (im Anhang befindet sich nur der Quellcode):
http://www.mediafire.com/folder/gsyh...eichenprogramm

Crossposts in anderen Foren:
http://www.entwickler-ecke.de/viewto...er=asc&start=0
http://forum.delphi-treff.de/index.p...58947&e94e96ae
Miniaturansicht angehängter Grafiken
screenshot2_7_13-copy-.png  
Angehängte Dateien
Dateityp: 7z Benjis_kleines_Zeichenprogramm_2.1.7z (10,6 KB, 50x aufgerufen)

Geändert von benji316 (10. Mär 2014 um 13:21 Uhr)
 
benji316

 
Delphi XE5 Architect
 
#11
  Alt 2. Jul 2013, 18:28
So, neue Version, mit exakter Erfassung der Mausposition, ein paar Benennungen und vielen Einrückungen beim Code zwecks besserer Lesbarkeit. Downloadlink ist im ersten Post.
Als nächstes werd ich mich dann mal um die Paintbox-Image-Geschichte kümmern
  Mit Zitat antworten Zitat
benji316

 
Delphi XE5 Architect
 
#12
  Alt 2. Jul 2013, 21:15
Wieder neue Version, bin jetzt von der Paintbox auf ein TImage umgestiegen, ohne Probleme
Ein Bug exisitiert leider noch: Im Polygon ist IMMER der Punkt (0,0) enthalten, aber warum, ich versteh´s nicht...
  Mit Zitat antworten Zitat
Benutzerbild von MrMooed
MrMooed

 
Delphi 7 Enterprise
 
#13
  Alt 2. Jul 2013, 21:30
Wieder neue Version, bin jetzt von der Paintbox auf ein TImage umgestiegen, ohne Probleme
Ein Bug exisitiert leider noch: Im Polygon ist IMMER der Punkt (0,0) enthalten, aber warum, ich versteh´s nicht...
Das liegt dadran, dass du ein statisches Array verwendest. Bei der Initialisierung bekommt jedes deiner 100 Element in dem Array den Wert (0|0) zugewiesen. Zeichnest du nun ein Polygon und hast z.B. nur 5 Punkte ausgewählt, ändern sich deine ersten 5 Koordinaten - doch die restlich 95 haben immer noch die Koordinaten (0|0).

Hoffentlich habe ich mich nicht unklar ausgedrückt vielleicht verwendest du besser eine dynamische Datenstruktur (Liste, Queue, Stack, dyn. Array, ..) Damit müsstest du dein Polygon auch nicht auf "nur" 100 Punkte begrenzen
  Mit Zitat antworten Zitat
benji316

 
Delphi XE5 Architect
 
#14
  Alt 3. Jul 2013, 13:37
Update:
Das Programm sollte nun komplett Bug-frei sein (alles funktioniert wie es soll, aber es ist leider immer noch möglich, es an einigen Stellen gezielt abstürzen zu lassen, werd mich heute noch darum kümmern ) hat ab sofort eine Versionsnummer (1.0) sowie eine Dateibeschreibung (sieht man unter den Eigenschaften oder wenn man mit dem Cursor drauf bleibt).
Weiters verwende ich nun den OpenPicture- bzw. SavePicture-Dialog, man kann Dateien nun als JPG, BMP, ICO, EMF und WMF speichern und auch solche Dateitypen öffnen (hätte ich gleich von Anfang an machen sollen, aber besser spät als nie )


Wenn ihr dennoch Bugs findet, bitte hier reinschreiben!
Falls jemand Vorschläge für neue Features hat, teilt sie mir mit!

Aktuelle ToDo-List:
Durch User hervorgerufene Abstürze verhindern
Die Computergeneriertes-Bild-Funktion leicht verändern
Funktion hinzufügen, um ein Bild in Graustufen umzuwandeln
Namen verändern
(evtl Toolbar statt MainMenu verwenden)

@MrMooed: Danke für den Tipp, du hast dich ganz klar ausgedrückt, Bug ist behoben
  Mit Zitat antworten Zitat
Benutzerbild von MrMooed
MrMooed

 
Delphi 7 Enterprise
 
#15
  Alt 3. Jul 2013, 14:05
  • Minimiert man das Fenster und wählt das Computer generierte Bild, zeichnet er nur auf dem Ausschnitt, den man auch betrachten kann.
  • Speichert man das aktuelle Bild und möchte dann die Anwendung schließen, wird trotzdem nachgefragt ob man das Bild speichern möchte

It's not a bug - it's a feature

Geändert von MrMooed ( 3. Jul 2013 um 14:06 Uhr) Grund: [/list] vergessen
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

 
Delphi 11 Alexandria
 
#16
  Alt 3. Jul 2013, 14:57
Das Programm sollte nun komplett Bug-frei sein
Diesen Satz habe ich von erfahrenen Programmierern noch nie gehört, die werden schon wissen, wieso
Detlef
  Mit Zitat antworten Zitat
benji316

 
Delphi XE5 Architect
 
#17
  Alt 3. Jul 2013, 20:08
Für das computergenerierte Bild werden mit moveto hnd lineto Striche gezeichnet, und zwar zu einer Position im Bereich des Images, und da das Image die Ausrichtung "alclient" hat, ist es immer so groß wie das Fenster, ich könnte auch einfach einen festen Wert für die Zufallsberechung nehmen, aber je nach Bildschirmauflösung werden dann unnötige Striche gezeichnet...
Und der Speicher-Dialog kommt immer, sobald man irgendetwas gezeichnet hat, da werd ich mir was besseres einfallen lassen

EDIT: Hab grade gesehen, dass man ganz einfach die aktuelle Bildschirmauflösung auslesen kann, also ist die jetzt die obere Grenze des Zufallsbereichs

Geändert von benji316 ( 3. Jul 2013 um 20:25 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von MrMooed
MrMooed

 
Delphi 7 Enterprise
 
#18
  Alt 3. Jul 2013, 20:41
Für das computergenerierte Bild werden mit moveto hnd lineto Striche gezeichnet, und zwar zu einer Position im Bereich des Images, und da das Image die Ausrichtung "alclient" hat, ist es immer so groß wie das Fenster, ich könnte auch einfach einen festen Wert für die Zufallsberechung nehmen, aber je nach Bildschirmauflösung werden dann unnötige Striche gezeichnet...
Warum so kompliziert ?
Was du noch verbessern/ einbringen könntest:
  • verschiedene Auflösungen. Öffnest du z.B. ein Icon (256x256) und möchtest es überarbeitet wieder abspeichern, nimmt er die Höhe und Breite deiner Form
  • es ist "unschön" sich durch das TMainMenu durchzuwursteln, bis man die Option gefunden hat. Gerade dazu predestiniert finde ich eine TToolBar. Wie man sie nutzen kann guckstu hier bzw. hier
Wenn du eine bestimmte Größe für dein Bild eingeben lässt, hättest du genauso deine Grenzen - und eine Benutzer definierte Größe seines "Kunstwerkes"
  Mit Zitat antworten Zitat
benji316

 
Delphi XE5 Architect
 
#19
  Alt 3. Jul 2013, 22:01
Danke für den Tipp, habs derweil mit der Bildschirmauflösung berechnet. Aber wenn ich das so mache, dann mache ich gleich eine eigene Konfiguraions-Form für die Computer-generiertes-BIld-Funktion

Neue Version (1.1.2 Beta), hier der Changelog:

Die Funktion "Computergeneriertes Bild erstellen" wurde überarbeitet, damit die Rechtecke nicht immer im Vordergrund sind
JPEG öffnen wird unterstützt, man kann sie aber nicht bearbeiten (geht nur für Bitmaps) ich werde versuchen, eine Funktion zur Umwandlung einzubauen
Stiftbreite wird nun über eine Scrollbar festgelegt, in einer Paintbox daneben sieht man, wie dick eine Linie dann ist
Wenn man ein Bild einmal gespeichert hat, wird man beim Beenden des Programms nicht mehr gefragt, ob man es speichern möchte

Geändert von benji316 ( 3. Jul 2013 um 22:18 Uhr)
  Mit Zitat antworten Zitat
benji316

 
Delphi XE5 Architect
 
#20
  Alt 3. Jul 2013, 23:30
Neue Version (1.2 Beta)
Text-Ausgabe wurde komplett überarbeitet.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf