AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Benjis kleines Zeichenprogramm
Thema durchsuchen
Ansicht
Themen-Optionen

Benjis kleines Zeichenprogramm

Ein Thema von benji316 · begonnen am 2. Jul 2013 · letzter Beitrag vom 13. Mär 2014
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
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, 51x aufgerufen)

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

 
Delphi 2007 Professional
 
#2
  Alt 2. Jul 2013, 16:22
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.
  Mit Zitat antworten Zitat
Der schöne Günther

 
Delphi 10 Seattle Enterprise
 
#3
  Alt 2. Jul 2013, 16:24
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?
  Mit Zitat antworten Zitat
Benutzerbild von MrMooed
MrMooed

 
Delphi 7 Enterprise
 
#4
  Alt 2. Jul 2013, 16:59
Hey,

cooles Programm

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
  • 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
  Mit Zitat antworten Zitat
benji316

 
Delphi XE5 Architect
 
#5
  Alt 2. Jul 2013, 17:09
@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
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

 
Delphi 10.2 Tokyo Professional
 
#6
  Alt 2. Jul 2013, 17:23
Hallo,

mouse.cursorpos gibt dir die globalen Mauskoordinaten.
Du solltest die entweder umrechnen oder die lokalen Koordinaten aus einem MouseMove Event o.ä. benutzen.
Michael
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

 
Delphi 2007 Professional
 
#7
  Alt 2. Jul 2013, 17:28
... 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);
  Mit Zitat antworten Zitat
benji316

 
Delphi XE5 Architect
 
#8
  Alt 2. Jul 2013, 17:39
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
  Mit Zitat antworten Zitat
Benutzerbild von MrMooed
MrMooed

 
Delphi 7 Enterprise
 
#9
  Alt 2. Jul 2013, 17:56
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 ) könntest du dein TImage auch einfach 'PaintBox1' nennen .. ist bestimmt nicht die schönste Variante, aber schnell
Andernfalls kopiere dir den Quelltext in eine Textverarbeitung und benutze die Funktion "Suchen / Ersetzen" (Strg. + [F])
  Mit Zitat antworten Zitat
benji316

 
Delphi XE5 Architect
 
#10
  Alt 2. Jul 2013, 18:21
Da hätt ich glatt selber draufkommen können, danke für den Hinweis
So, gleich gibts ne neue Verison, mit exakter Erfassung der Mausposition über screentoclient
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 05:43 Uhr.
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