Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Benjis kleines Zeichenprogramm (https://www.delphipraxis.net/175584-benjis-kleines-zeichenprogramm.html)

benji316 2. Jul 2013 14:41


Benjis kleines Zeichenprogramm
 
Liste der Anhänge anzeigen (Anzahl: 2)
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

sx2008 2. Jul 2013 15:22

AW: Benji´s kleines Zeichenprogramm
 
Zwei Dinge:
* gib den ganzen Units, Formularen und Komponenten mal vernünftige Namen. Unit1,Unit2,...Unit7 - das geht ja mal gar nicht.
* Rücke den Sourcecode sauber ein und verwende diese Einrückung durchgängig überall.
Die VCL verwendet 2 Leerzeichen pro Einrücktiefe.

Der schöne Günther 2. Jul 2013 15:24

AW: Benji´s kleines Zeichenprogramm
 
Ich habe auf die Schnelle vorhin versucht, es über diesen komischen Host herunterzuladen, bin aber gescheitert. Jetzt immerhin mit Bild, Danke dafür :-)

Kannst du es nicht auch hier als Anhang hochladen?

MrMooed 2. Jul 2013 15:59

AW: Benji´s kleines Zeichenprogramm
 
Hey,

cooles Programm :thumb:

Was mir so spontan an Fehlverhalten aufgefallen ist:
  • Zeichnest du eine Linie, oder möchtest sonst etwas gestalten, scheint er nicht am Mauszeigers anzufangen, sondern etwa 10px unterhalb der Spitze :?:
  • Minimert man das Fenster, ist der Versatz zwischen Mauszeiger und gezeichneter Linie noch größer (Edit: der Abstand ist zufällig genauso groß, wie dein TMainMenu hoch ist + der Abstand von deiner Form zum oberen Bildschirmrand)
  • Minimiert man aus "versehen" das Fenster, hat man keine Chance es wieder zu Maximieren
  • Verschiebt man das Fenster (bzw. lässt es von einem anderen Fenster überdecken) "verschwindet" das gezeichnete (nur bei minimiertem Fenster)

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 :wink:
  • 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

benji316 2. Jul 2013 16:09

AW: Benji´s kleines Zeichenprogramm
 
@Günther:Ich hab es auf mehreren Foren hochgeladen, und da bei jeder neuen Version überall zu aktualisieren ist etwas umständlich, deshalb über Mediafire, aber es müsste normalerweise gehen, dass wenn man auf den Dateinamen klickt, zu einer Seite weitergeleitet wird, wo mans dann downloaden kann.
Und aufs Einrücken und Benennen wurde ich auch schon woanders hingewiesen, bin grade dabei ;)

@MrMooed:
Ich verwende ja moveto und lineto, und wenn ich zur mit Delphi ermittelten Mausposition (mouse.cursorpos) hinzeichne, ist es um ca. 25 Pixel daneben, deshalb hab ich von der y-Koordinate einfach 25 abgezogen, dann passts bei mir.
Und das mit dem Minimieren ist mir bekannt, darum ist auch das entsprechende Bordericon nicht vorhanden ;).
Und das mit dem Überdecken ist, weil ich eine Paintbox verwende, ich hätte von Anfang ein ein TImage verwenden sollen, das werd ich wahrscheinlich demnächst mal umändern, wird ein Haufen Schreibarbeit bedeuten :|

Und das mit der Toolbar werd ich mir mal ansehn ;)

Neutral General 2. Jul 2013 16:23

AW: Benji´s kleines Zeichenprogramm
 
Hallo,

mouse.cursorpos gibt dir die globalen Mauskoordinaten.
Du solltest die entweder umrechnen oder die lokalen Koordinaten aus einem MouseMove Event o.ä. benutzen.

sx2008 2. Jul 2013 16:28

AW: Benji´s kleines Zeichenprogramm
 
Zitat:

Zitat von benji316 (Beitrag 1220444)
... weil ich eine Paintbox verwende, ich hätte von Anfang ein ein TImage verwenden sollen, das werd ich wahrscheinlich demnächst mal umändern, wird ein Haufen Schreibarbeit bedeuten :|

Aber nur weil du die guten Tricks noch nicht kennst.
Wenn du der Procedure die das Zeug zeichnet ein Canvas-Objekt übergeben würdest, dann könntest du an einer einzigen Stelle von Paintbox auf Image umschalten:
Delphi-Quellcode:
Procedure TForm1.ZeichneAlles(ACanvas:TCanvas);
begin
  // hier auf "ACanvas" zeichnen
end;

// und an anderer Stelle
ZeichneAlles(PaintBox1.Canvas);
// lässt sich leicht ersetzen durch
ZeichneAlles(Image1.Bitmap.Canvas);

benji316 2. Jul 2013 16:39

AW: Benji´s kleines Zeichenprogramm
 
Da ich aber von Anfang an auf die Paintbox gezeichnet habe, muss ich 100te Male "paintbox1" durch irgendeinen anderen Namen ersetzen.
Und um die Mausposition werd ich mich dann gleich mal kümmern ;)

MrMooed 2. Jul 2013 16:56

AW: Benji´s kleines Zeichenprogramm
 
Zitat:

Zitat von benji316 (Beitrag 1220450)
Da ich aber von Anfang an auf die Paintbox gezeichnet habe, muss ich 100te Male "paintbox1" durch irgendeinen anderen Namen ersetzen.
Und um die Mausposition werd ich mich dann gleich mal kümmern ;)

Für Tippfaule (wie mich :oops:) könntest du dein TImage auch einfach 'PaintBox1' nennen .. ist bestimmt nicht die schönste Variante, aber schnell :lol:
Andernfalls kopiere dir den Quelltext in eine Textverarbeitung und benutze die Funktion "Suchen / Ersetzen" (Strg. + [F])

benji316 2. Jul 2013 17:21

AW: Benji´s kleines Zeichenprogramm
 
Da hätt ich glatt selber draufkommen können, danke für den Hinweis :D
So, gleich gibts ne neue Verison, mit exakter Erfassung der Mausposition über screentoclient ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:58 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz