![]() |
Konzeptionelle Frage: einfaches "Zeichenprogramm"
hallo Dpler,
sorry für die etwas allgemeine Frage, aber ich bin am start eines neuen Projekts und brauche noch etwas Input. Zentrales Element des Projekts sollte eine Art Zeichenfläche sein, in der man Grafiken hinzufügen und arrangieren kann. Idealerweise stelle ich mir das so vor, dass eine Bibliothek mit vorgefertigten Symbolen existiert, die man aus einzelnen Vektorgrafiken laden kann und die man dann via drag and drop auf die Zeichenfläche schupft, wo man sie dann zusammenstellen, verschieben, drehen usw. kann. Die so entstandene Zeichnung soll dann natürlich gedruckt werden können, abgespeichert, etc. Jetzt gibt es einen Haufen Grafikbibliotheken (graphics32, crystal components tcad, codeaccelerate sweet drawing engine) etc. Zum teil hab ich damit herumprobiert, nicht genug aber zu sagen zu können, welches obigen Plan am einfachsten erfüllt. Bin für Anregungen oder Anleitungen dankbar. dank und gruß tom |
Re: Konzeptionelle Frage: einfaches "Zeichenprogramm&am
Delphi und die Win32 API stellen dir im Prinzip alles zur verfuegung. Mit einem TImage bzw. TPaintBox solltest du genau das erreichen koennen.
|
Re: Konzeptionelle Frage: einfaches "Zeichenprogramm&am
Hmm, danke einmal. Nur einmal grundsätzlich, wo setzt man da an? Unter TImage verstehe ich einmal ein paar einfache Zeichenfunktionen, aber der Rest? Alles von Hand selber machen? Drag and Drop, Objekte auf der Zeichenfläche verwalten, skalierung, rotation, alles händisch?
Gibt es dazu irgendwo ein bisschen Literatur zum stöbern? danke und gruß tom |
Re: Konzeptionelle Frage: einfaches "Zeichenprogramm&am
Hallo tom,
Zitat:
|
Re: Konzeptionelle Frage: einfaches "Zeichenprogramm&am
Danke Stephan,
aber darum die Frage: macht das Sinn? Das Rad hier zum 10^7 mal neu erfinden? Wenn man es rein mit TImage macht, wieder nur mal grundsätzlich gefragt: wie geht man das an: legt man für jedes Symbol ein eigenes TImage an, in das man dann sein WMF lädt? und versieht die unterschiedlichen TImages mit entsprechenden drag and drops, etc. oder wirft man alles auf ein TImage und kümmert sich mal dort darum? Wie gesagt, mir geht es mal um die Richtung, in die Leute, die sowas schon mal gemacht haben, loswandern würden. dank und gruß tom |
Re: Konzeptionelle Frage: einfaches "Zeichenprogramm&am
Hallo tom,
Ich hatte sowas in die Richtung schonmal programmiert. Verwendet hatte ich hierfür eine TPaintBox da hier Zeichenoperationen einfach viel schneller sind als in einem TImage. Gezeichnet habe ich alles in einer einzigen TPaintBox. Da allerdings mehrere Zeichenoperationen ein unangenehmes Flackern hervorrufen, habe ich nicht direkt in die PaintBox sondern in ein TBitmap gezeichnet. Anschließend habe ich das TBitmap auf die Zeichenoberfläche der PaintBox kopiert. Dies hat auch noch den Vorteil, dass du im OnPaint Ereignis der PaintBox den Inhalt aus dem Bitmap direkt wieder in die PaintBox einfügen kannst (ansonsten würde der Inhalt der PaintBox verschwinden, wenn du ein anderes Fenster darüber ziehst). Ich hatte damals aus Performancegründen mehrere Schichten von TBitmap's verwendet. Nur als kleines Beispiel: Ich hatte in der Zeichenoberfläche ein kleines Raster eingeblendet. Damit dieses Raster nicht jedes mal neu gezeichnet werden muss (das würde sonst sehr lange dauern), habe ich dieses in ein TBitmap gespeichert. Nun wurde dieses Raster aus dem ersten TBitmap in ein zweites kopiert und anschließend wurden diverse Objekte aus irgendwelchen Arrays oder Records eingezeichnet. Zu guter letzt wurde der Inhalt in die Paintbox kopiert. Das ganze war sehr schnell und es hat absolut nichts geflackert. Zitat:
|
Re: Konzeptionelle Frage: einfaches "Zeichenprogramm&am
Nun, ich wehre mich absolut nicht gegen Lernaufwand. Auch Fremdkomponenten müssen oft erst einmal erlernt werden. Und ich will auch nicht damit enden 200 Euro für eine Komponente ausgegeben zu haben, die mich mehr Zeit kostet als wenn ich es mit einem TImage mache. Aber wie gesagt, darum suche ich ein wenig nach Erfahrungswerten und bin daher einmal für Deine dankbar.
Das mit dem Raster ist ein guter Hinweis, ein solcher sollte bei mir auch hinkommen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz