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 3 von 4     123 4      
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 12:21 Uhr)
 
Medium

 
Delphi 2007 Enterprise
 
#21
  Alt 3. Jul 2013, 23:50
JPEG öffnen wird unterstützt, man kann sie aber nicht bearbeiten (geht nur für Bitmaps) ich werde versuchen, eine Funktion zur Umwandlung einzubauen
Delphi-Quellcode:
var
  aBMP: TBitmap;
  aJPG: TJPEGImage;
begin
  aJPG := TJPEGIMage.Create;
  aJPGImage.LoadFromFile(FilePath);
  aBMP := TBitmap.Create;
  aBMP.Assign(aJPG);
  DoWhatYouDoWithBitmaps(aBMP);
  ...
end;
  Mit Zitat antworten Zitat
benji316

 
Delphi XE5 Architect
 
#22
  Alt 4. Jul 2013, 15:32
Danke für das Beispiel, habs aber auch so herausgefunden

Nun gibts ein neues Update auf Version 1.3:
Changelog:
Man kann JPEGs öffnen, bearbeiten, und in verschiedenen Formaten speichern (GIF und PNG ausgeschlossen, da diese standardmäßig nicht unterstützt werden, wird aber noch kommen, ich muss nur eine passende Unit im Netz finden und in mein Projekt einbinden )
Einige Exceptions wurden hinzugefügt
Die wechselnde Stiftfarbe kann nun abgestellt werden (hätte man früher eigentlich auch können sollen, aber hat nicht funktioniert)
Beim Schliessen des Programms über Datei-->Schließen wird man nicht mehr zweimal gefragt, ob man die Datei vorher speichern möchte

Bekannte Bugs:
Wenn man das Öffnen eines JPEGs abbricht, gibts eine Access Violation, obwohl ich ein Try-Except eingebaut habe, und dieses auch ausgeführt wird
  Mit Zitat antworten Zitat
Benutzerbild von MrMooed
MrMooed

 
Delphi 7 Enterprise
 
#23
  Alt 4. Jul 2013, 15:56
Guck dir nochmal genau TOpenDialog.Execute an

Das ist eine function mit einem Rückgabe Wert: Boolean.

Es liefert True bzw. False je nach dem ob der Dialog abgebrochen wurde oder nicht.

Delphi-Quellcode:
if TOpenDialog.Execute
then //Öffne das Bild
  Mit Zitat antworten Zitat
rob60

 
Turbo Delphi für Win32
 
#24
  Alt 4. Jul 2013, 16:58
Witziges programm besonders die Funktion wechselnde Schriftfarbe finde ich mal etwas neues (erinnert mich irgendwie an meine Kindheit und diese 4-Farben schreiber ) allerding fiel mir noch ein Bug auf, wenn man ein Rechteck aufzieht und wieder zusammenzieht entstehen hässliche Schlieren.
  Mit Zitat antworten Zitat
benji316

 
Delphi XE5 Architect
 
#25
  Alt 4. Jul 2013, 17:40
@MrMooed: Danke, jetzt gehts
@rob60: Ist mir bekannt, ich fands recht witzig, erinnert mich an alte Hänger bei Windows Xp, wo die Fenster solche "Schlieren" gemacht haben, aber ich sollte mich mal darum kümmern, jetzt, wo alles andere funktionieren sollte
  Mit Zitat antworten Zitat
Benutzerbild von MrMooed
MrMooed

 
Delphi 7 Enterprise
 
#26
  Alt 4. Jul 2013, 17:51
[..] jetzt, wo alles andere funktionieren sollte
Und du hast schon wieder die bösen zwei Wörter benutzt
Das Programm sollte nun komplett Bug-frei sein
Diesen Satz habe ich von erfahrenen Programmierern noch nie gehört, die werden schon wissen, wieso
Ohne, dass ich mir jetzt den Quellcode angesehen habe, aber benutzt du TTimer um die Stiftfarbe zu wechseln bzw. eine gepunktete Linie zu malen?
Zumindest letzteres ist extrem unpraktisch, da Timer viel zu schnell. Ich habe mich zuerst gefragt, ob du das noch nicht implementiert hast - tatsächlich war ich mit der Maus zu langsam. D.h. bei (wie ich finde) normal schnellen Bewegungen sieht man keine Punkte. Erst wenn man die Maus hin und her reißt erscheinen zaghaft Punkte.

Vllt. findest du ja eine Möglichkeit um zu ermitteln, wie weit der Mauszeiger gewandert ist. Dann könntest du nach z.B. 4cm die Farbe umschalten und nach weiteren 0.5cm wieder zurück schalten.
  Mit Zitat antworten Zitat
benji316

 
Delphi XE5 Architect
 
#27
  Alt 4. Jul 2013, 18:22
Nein, bei den Linien-Arten ich verwende die Eigenschaft Canvas.pen.style, deswegen auch die Limitierung auf Stiftbreite 1...
Bei der wechselnden Stiftfarbe verwende ich schon einen Timer, hatte es zuerst im MouseMove selbst drin, aber dann ists logischweise noch schneller
Aber ich könnte mal schauen ob ich bezüglich Linien-Arten was zusammenbringe
PS: Bei der Formulierung: "es sollte funktionieren" ist die Möglichkeit, dass etwas nicht funktioniert, nicht ausgeschlossen
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

 
Delphi XE8 Enterprise
 
#28
  Alt 5. Jul 2013, 08:04
Crosspost in der Entwickler-Ecke
Crosspost im Delphi-Treff
Rolf Warnecke

Geändert von RWarnecke ( 5. Jul 2013 um 08:23 Uhr)
  Mit Zitat antworten Zitat
benji316

 
Delphi XE5 Architect
 
#29
  Alt 5. Jul 2013, 13:16
Na und?
Verstößt das gegen irgendwelche Regeln?
EDIT: In den anderen Foren muss ich bei Fragen darauf hinweisen, aber ich habe ja keine Frage gestellt.
Hier konnte ich nirgends etwas zum Thema Crosspostings finden.

Geändert von benji316 ( 5. Jul 2013 um 13:36 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

 
Delphi 11 Alexandria
 
#30
  Alt 5. Jul 2013, 13:40
Es geht doch nur darum, dass man ggf. in den anderen Foren nachschauen kann, ob das, was man schreiben möchte, nicht schon jemand Anderes geschrieben hat, das hat mit Frage oder nicht eher wenig zu tun. Ich war mir bei dieser Antwort ja auch nicht sicher, wo ich sie nun posten soll.
Detlef
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 07:05 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