Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Objekte für Feldlinien Programm
cscp - Sa 18.10.03 16:29
Titel: Objekte für Feldlinien Programm
Hallo...
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. Dabei möchte ich halt eine Prozedur schreiben die mir sowas erstmal erstellt. Wie kann ich das am besten machen...?
Hoffe ihr habt verstanden wie ich das meine. Also auch wenn man 10 quellen hat soll man eine auswählen können und dann mit der maus verschieben...
eine weitere verschönerung wäre wenn man das dann mit so einem unsichtbaren raster versetzt.. (auch wie in delphi)
danke...
joescrew - Sa 25.10.03 14:06
Titel: Feldlinienprogramm
Da hast du dir aber keine leichte Aufgabe gestellt!
Also um Objekte zu verschieben, erstellst du erstmal ein großes Image (z.B.500x500) als Unterlage und ein kleines Image (z.B.60x60 Pixel), das dann mit gedrückter linker Maustaste verschoben wird. In dieses kleine Image (image2) kannst du eine Bitmap einbinden (z.B.Kreis als Ladung).
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if (ssleft in shift)and(x>image2.left)and(y>image2.top)
and(x<image2.left+60)and(y<image2.top+60)then beginimage2.left:=x-30;
image2.top:=y-30;
end;
Die Physik bzw. die Mathematik der Feldlinien ist dann nicht einfach.
cscp - Sa 25.10.03 20:18
kann ich das jetzt auch noch so machen anstatt dem 2. image einfach was mit canvas machen?
joescrew - So 26.10.03 12:57
das image1 und das image2 haben ja jeweils eine canvas, auf die man mit den entsprechenden Methoden zeichnen kann. z.B.:
with image2.canvas do begin
moveto(0,0);lineto(40,40);
end;
oder man kann in das Image ein Bild laden, das im gleichen Ordner wie das project liegt:
image2.picture.loadfromfile('bild.bmp');
Wenn du genauer sagst, was du programmieren willst, kann ich dir auch genauer helfen!
joescrew
cscp - So 26.10.03 13:41
ich will halt anstatt dem zweiten image einfach einen kreis auf dem ersten image zeichenen... und das zweite image weglassen
joescrew - So 26.10.03 14:31
Du willst doch den Kreis verschieben! Wenn du denn Kreis auf image2 zeichnest, kannst du doch dieses image mit gedrückter maustaste auf dem ersten image verschieben. Das wolltest du doch eigentlich.
Natürlich kannst du den Kreis auch auf das erste image zeichnen lassen. Dann musst du bei Mausbewegung sofort wieder löschen - d.h. Hintergrund laden- und wieder neu zeichnen lassen.
Ich habe mal ein Feldlinienprogramm - allerdings ohne dies Verschiebungsmöglichkeit- programmiert. Du kannst dir das von meiner Hompage downloaden (natürlich nur die exe-Datei):
http://www.physismart.de
joescrew
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!