Autor Beitrag
cscp
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 49



BeitragVerfasst: Sa 18.10.03 16:29 
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...
Eisenherz
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48



BeitragVerfasst: Mo 20.10.03 12:31 
Ich vermute, dass du etwas in der Art wie RakGraphicObject machen willst.

_________________
aloa Eisenherz
joescrew
Hält's aus hier
Beiträge: 3



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 49



BeitragVerfasst: Sa 25.10.03 20:18 
kann ich das jetzt auch noch so machen anstatt dem 2. image einfach was mit canvas machen?
joescrew
Hält's aus hier
Beiträge: 3



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 49



BeitragVerfasst: 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
Hält's aus hier
Beiträge: 3



BeitragVerfasst: 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): www.physismart.de

joescrew