Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi "Objekte" für Feldlinien Programm (https://www.delphipraxis.net/10452-objekte-fuer-feldlinien-programm.html)

cscp 18. Okt 2003 23:26


"Objekte" für Feldlinien Programm
 
Hallo...
bin neu hier... hoffe das passt hier rein!
ich möchte ein Programm schreiben, das Feldlinien zeichnet...
Dabei soll es so sein das ich die verschiedenen Feldlinienquellen bzw. Feldlinienerzeuger frei verschieben kann.
Ich will praktisch z.B. einen Kreis auf dem Form verschieben können, wie z.B. ein Shape in der Entwicklungsumgebung, oder ein gezeichnetes Quadrath in Word. Wie kann ich das am besten machen...?
Hoffe ihr habt verstanden wie ich das meine.
danke...

himitsu 19. Okt 2003 00:03

Re: "Objekte" für Feldlinien Programm
 
Am einfachsten ist es wohl bei Shapes mit MouseDown & MouseMove.

ein kleiner Ansatz ist bei "johny" unter Forum


im ShapeMouseDown-Ereignis kannst'e auch noch erkennen wo das Schape angeklickt wird (X Y = oben unten links rechts ...)

und in ShapeMouseMove änderst du dann Shape.Top .Left .Width & .Height.

cscp 19. Okt 2003 00:09

Re: "Objekte" für Feldlinien Programm
 
und mit canvas kann man da nichts machen? das ich praktisch objekte im canvas definiere... also polygon punkt gruppen... kann sein das ich mir das jetzt hier irgendwie komisch vorstelle...

aber im canvas wäre es halt schöner weil ich die feldlinien auch in canvas zeichne...

himitsu 19. Okt 2003 00:56

Re: "Objekte" für Feldlinien Programm
 
Geht natürlich auch.

Mußt dann aber im MouseDown-Ereignis des Forms oder des Images (je nach dem wo/wie dei Bild dargestellt wird) über X und Y prüfen welches deiner gezeichneten Figuren wo angeklickt wurde und diese Daten in den globalen Variablen speichern.

Dann im MouseMove-Ereignis die Position/Größe der vorhin gewählten Figur ändern und neu Zeichnen.

Im MouseUp-Ereignis kannst'e eventuell noch mal die abschließenden Werte des Zuges speichern und/oder neu zeichnen, wenn die Maustaste wieder losgelassen wurde. (entspricht meißtens der letzten Position von MouseMove)

Christian Seehase 19. Okt 2003 00:59

Re: "Objekte" für Feldlinien Programm
 
Moin cscp,

Zitat:

Zitat von cscp
das ich praktisch objekte im canvas definiere... also polygon punkt gruppen...

Nun ja, vielleicht nicht direkt Objekte im Canvas, sondern ein Objekt, das eine List von Objekten enthält und verwaltet, die in ihren Daten die Feldlinien darstellen.
Als Quelle für das magnetische (vermute ich mal) Feld, Permanentmagnet, Leiter o.ä. könntest Du, wie von himitsu vorgeschlagen nehmen.
Die Auswirkungen der Bewegung müsstest Du dann an die Objektliste weiterreichen, damit diese die Objekte entfernen, neu berechnen, und dann neu zeichnen kann.
Irgendwo hatten wir gerade im Laufe der letzten Woche einen Thread zum Thema solcher Zeichenobjekte.
Vielleicht hilft da eine Suche nach Hier im Forum suchenzeichnen objekteweiter.

cscp 19. Okt 2003 09:40

Re: "Objekte" für Feldlinien Programm
 
Also ich will es dann so machen das ich eine Runde, eine Ellipsenförmige und eine Rechteckige Quelle hinzufügen kann, und das eben beliebig oft. Wenn sich jetzt z.B. zwei dieser Quellen überschneiden, dann muss ich sie doch Problemlos wieder durch ziehen auseinander holen können nach eurem Prinzip oder?
Also ich kenn mich noch nicht so mit Objekten aus, aber das werde ich mir schon aneignen. Eigentlich müsste ich doch nur eine Liste anlegen auf der alle Quellen mit x,y,typ eingetragen sind. Dann weiss ich wie weit sie nach rechts und unten gehen und kann sie nach einem refresh wieder neu zeichnen lassen oder?

Kennt jemand ein gutes Tutorial zu Objekten?
Danke! Chris


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:41 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