AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Konzeptionelle Frage: einfaches "Zeichenprogramm"
Thema durchsuchen
Ansicht
Themen-Optionen

Konzeptionelle Frage: einfaches "Zeichenprogramm"

Ein Thema von cltom · begonnen am 12. Jul 2007 · letzter Beitrag vom 13. Jul 2007
Antwort Antwort
cltom

Registriert seit: 22. Sep 2005
221 Beiträge
 
Delphi 12 Athens
 
#1

Konzeptionelle Frage: einfaches "Zeichenprogramm"

  Alt 12. Jul 2007, 18:23
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
  Mit Zitat antworten Zitat
Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#2

Re: Konzeptionelle Frage: einfaches "Zeichenprogramm&am

  Alt 12. Jul 2007, 18:40
Delphi und die Win32 API stellen dir im Prinzip alles zur verfuegung. Mit einem TImage bzw. TPaintBox solltest du genau das erreichen koennen.
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  Mit Zitat antworten Zitat
cltom

Registriert seit: 22. Sep 2005
221 Beiträge
 
Delphi 12 Athens
 
#3

Re: Konzeptionelle Frage: einfaches "Zeichenprogramm&am

  Alt 13. Jul 2007, 11:21
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
  Mit Zitat antworten Zitat
Stephan

Registriert seit: 28. Jun 2002
Ort: Tuttlingen
245 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Konzeptionelle Frage: einfaches "Zeichenprogramm&am

  Alt 13. Jul 2007, 11:48
Hallo tom,

Zitat:
Alles von Hand selber machen? Drag and Drop, Objekte auf der Zeichenfläche verwalten, skalierung, rotation, alles händisch?
Bei einem TImage oder einer TPaintBox wirst du das alles tatsächlich händisch machen müssen. Du könntest hier natürlich eine eigene kleine Komponente (basierend auf der TPaintBox) erstellen, welche die gewünschten Zeichenoperationen bereits beinhaltet
viele Grüße

Stephan
  Mit Zitat antworten Zitat
cltom

Registriert seit: 22. Sep 2005
221 Beiträge
 
Delphi 12 Athens
 
#5

Re: Konzeptionelle Frage: einfaches "Zeichenprogramm&am

  Alt 13. Jul 2007, 12:19
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
  Mit Zitat antworten Zitat
Stephan

Registriert seit: 28. Jun 2002
Ort: Tuttlingen
245 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Konzeptionelle Frage: einfaches "Zeichenprogramm&am

  Alt 13. Jul 2007, 12:28
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:
aber darum die Frage: macht das Sinn? Das Rad hier zum 10^7 mal neu erfinden?
Das kommt darauf an, was du genau vor hast. Das Selbermachen wäre natürlich mit einem gewissen Lernerfolg verknüpft. Wenn du allerdings schnell zu deinem Ziel kommen willst, dann wärst du vielleicht mit einer fertigen Bibliothek besser bedient. Du darfst auch nicht vergessen, dass du mit der oberen Methode zwar alles einzeichnen kannst, allerdings kannst du im Moment noch keine Objekte anklicken, verschieben usw. Hier musst du eben entsprechende Routinen in "OnClick" einbauen, welche anhand der Koordinaten des Mauszeigers das passende Objekt heraussuchen.
viele Grüße

Stephan
  Mit Zitat antworten Zitat
cltom

Registriert seit: 22. Sep 2005
221 Beiträge
 
Delphi 12 Athens
 
#7

Re: Konzeptionelle Frage: einfaches "Zeichenprogramm&am

  Alt 13. Jul 2007, 12:34
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.
  Mit Zitat antworten Zitat
Antwort Antwort


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