Seite 1 von 4

PBPaint 1.0 Beta

Verfasst: 06.01.2009 20:02
von Dare Devil
Hallo,
ich darf euch mit voller Stolz meine Arbeit der letzten zwei Wochen praesentieren. Es handelt sich um ein Grafikprogramm.
Urpsruenglich wollte ich ein Remake von MS Paint machen und dessen beeinhaltenden Funktionen dann verbessern. Das hab ich aber leider nur teilweise geschafft...
Macht euch einfach selbst ein Bild davon.

Features:
+ Alle Standardgrafikfunktionen, wie Kreise, Ellipsen, Rechtecke, Punkte sowie Spray und Texteinfuegen vorhanden.
+ Unter Tools - Extended Tool Settings lassen sich u.a. Dicke und Zoom-Modus manuell einstellen
+ Undo / Redo - Funktion. Bis zu 6000 Schritte werden gespeichert.
+ Die von mir in Paint sehr oft genutzte "mit rechtem Mausklick alles neu gezeichnete weg, wenn linke Maustaste nich losgelassen wurde"-Funktion implementiert.
+ Das Programm laesst sich auch per Parameter oeffnen.
+ Die Bildabmessung laesst sich wie in Paint mit den "blauen Punkten" per Mausklick veraendern

Noch zu erledigen
- Die Kopieren / Einfuegen - Funktion funktioniert zwar, ist aber im jetzigen Stadium noch sehr unkomfortabel. Da muss ich noch was machen...
- Die Hilfe
- Fette auch bei einfachen Linien (ich habs bis jetzt einfach noch nicht hinbekommen...)
- Mauszeiger fuer die einzelnen Tools - noch keine Idee gehabt wie ich das machen soll...

Bild

P.S.: Das Logo habe ich uebrigens zum Schluss in PBPaint selbst gezeichnet (Transparenz hab ich halt dann im nachhinein mit dem Icon-Programm gesetzt...)
Es soll ein Z, das gerade mit einem Pinsel rot ausgemalt wird - darstellen...

Update - Beta 2

Update - Beta 3

Update - Beta 4
http://www.file-upload.net/download-140 ... 4.exe.html

Verfasst: 06.01.2009 20:09
von cxAlex
Ganz gut von den Funktionen her :allright: .

Aber gegen diese ständige Flackern solltest du was unternehmen, da bekommt man noch Augenkrebs.

1,2 Vorschläge:

Die Tools in ein eigenes Fenster, ist dann zwar nicht wie in MS Pain, würde aber IMHO besser aussehen.

Optisch etwas aufpeppen, grade für ein Graphikprogramm find ich ist das wichtig.

Verfasst: 06.01.2009 20:27
von Dare Devil
Danke fuer das Feedback!

In Puncto Flackern sehe ich bisher noch keine Loesung, aber ich arbeite daran.

Witzig ist, dass die Tools in MS Paint ja eigtl. in einem Extra Fenster sind, nur ist das irgendwie im Hauptfenster integriert und kann man auf Wunsch auch rausziehen... Ist in etwa so wie ein Container Gadget, dass dann zu einem eigenen Fenster wird, wenn man es wegzieht. Wollte ich urspruenglich auch so machen - aber meine Versuche sind gescheitert...

Optisch inwiefern? Wenn du die Icon der Tools meinst ... die krieg ich nich besser hin - mein Grafikdesign-Talent ist sehr bescheiden :lol:

Verfasst: 06.01.2009 21:11
von Kiffi
cxAlex hat geschrieben:MS Pain
Netter Typo :)

Verfasst: 06.01.2009 21:17
von Milchshake
Hallo Dare Devil,
ich find das Programm eig. ganz schon gut!

Nur wenn man mit dem Auswahltool ein Fenster in den Minus Berreich zieht, dann gibt es einen Error. Ich find, den Error solltest du durch einfache Mathematik beheben können.

Verfasst: 06.01.2009 21:18
von c4s
@dicke Linien. Vielleicht nützt dir dieser Api-Code..

Code: Alles auswählen

Procedure LineEx(hDC.l, X1.w, Y1.w, X2.w, Y2.w, Width.w, Color.l) 
	Protected Pen.l
	Protected hPenOld.l

	Pen = CreatePen_(#PS_SOLID, Width, Color)
		hPenOld = SelectObject_(hDC, Pen)
			MoveToEx_(hDC, X1, Y1, 0): LineTo_(hDC, X2, Y2)
		DeleteObject_(hPenOld)
	DeleteObject_(Pen)
EndProcedure

@Augenkrebs
Ja, der muss weg


@Programm
Was ich gerade als etwas seltsam empfand war die Kreis-Funktion, da
man bei dieser nicht weiß wohin sich der Kreis aufbaut. Genauso ist es bei der Box.

Sonst aber auf jeden Fall schonmal sehr gut gelungen!

Verfasst: 06.01.2009 22:20
von Dare Devil
@Milkshake
das dachte ich erst auch... habs aber nich hinbekommen ... aber: das ganze muss sowieso bearbeitet werden... ich mein die letzten zwei Funktionen...

@c4s
muss gestehen, kenne mich in der WinAPI nicht so gut aus. was setze ich in hDC ein? kannste mir ein Beispiel coden? Waer ja super wenn das klappen wuerde... und das auch noch mit so wenig Code... hab mich mit diesem Problem schon stundenlang befasst und rausgekommen ist immer nur Muell...

Bei der Rechteck-Funktion laeuft meiner Meinung nach alles einwandfrei... nur die Quadrat-Funktion ist noch nicht so komfortable, das geb ich zu... Die Kreis und Ellipsen-Funktionen arbeiten beide etwas unterschiedlich, das hab ich noch nich geschafft, dass sie von der Benutzung her gleich arbeiten, weil bei der Kreis-Funktion der X und Y - Radius ja gleich sein muss...


P.S.: Danke fuer euer Feedback :D

Verfasst: 06.01.2009 22:38
von Kaeru Gaman
hDC = handle of DeviceContext

also das OS-Handle von deiner Zeichen-Oberfläche.
ich bin mir nicht ganz sicher, aber das dürfte z.B. der Rückgabewert von ImageOutput() sein, wenn der DC ein Image sein soll...

Verfasst: 06.01.2009 22:39
von AND51
Dare Devil hat geschrieben:Witzig ist, dass die Tools in MS Paint ja eigtl. in einem Extra Fenster sind, nur ist das irgendwie im Hauptfenster integriert und kann man auf Wunsch auch rausziehen... Ist in etwa so wie ein Container Gadget, dass dann zu einem eigenen Fenster wird, wenn man es wegzieht. Wollte ich urspruenglich auch so machen - aber meine Versuche sind gescheitert...

Weiß jemand, wie ich das hinkriege? Hilfe, ich schaffe es nicht, wer kann mir helfen? Einer ne Idee?
Klar könn wir dir helfen und die rettende Idee naht: :wink:
Diese Extrafenster, die du meinst, unterstützt PureBasic auch und nennen sich MDIGadget(). Als Hinweis sei gesagt, dass MDIGadget()s immer an ein Menü gebunden sind, d. h. das Parentwindow muss ein mit CreateMenu() erstelltes Menü besitzen.

Verfasst: 06.01.2009 22:45
von Kiffi
AND51 hat geschrieben:Diese Extrafenster, die du meinst, unterstützt PureBasic auch und nennen sich MDIGadget().
nee, das ist kein MDI. Du kannst das Tool-Fenster von Paint aus dem
Hauptfenster ziehen, was bei MDI nicht möglich ist.

Grüße ... Kiffi