Berechnung neuer Location für Drawing
-
Hallo,
ich würde gerne eine Verbindung zwischen zwei Objekten (K1 und dem Nachfolger von K1) ziehen.
G->DrawLine(gcnew Pen(Color::Green), K1->Location,K1->getNachfolger(1)->Location);
funktioniert. Aber leider gibt das immer die rechte obere Ecke des Obejekts, da ich da nun verschieden große Bilder eingefügt habe, möchte ich gerne von Mittelpunkt zu Mittelpunkt ziehen und da stoße ich auf Probleme mit den Lcoation und Points ...
newPoint = K1->getNachfolger(0)->Location; i_XHilf = (K1->getNachfolger(0)->Width)/2; i_YHilf = (K1->getNachfolger(0)->Height)/2; newLocation = Point(newPoint->X + i_XHilf, newPoint->Y + i_YHilf); G->DrawLine(gcnew Pen(Color::Green), K1->Location, newLocation);
[code="cli"]
Aber das möchte G nicht (Fehlermeldung dass die Argumentenliste nicht stimmt). Was auch stimmt, das ich einen Point in newLocation habe aber ein Lcoation brauche. Aber das scheint kein Objekt zu sein ... Ich bin verwirrt, kann jemand helfen?
Danke
Mulan
-
1. Zeige einfach die *genaue* Fehlermeldung...
2. Schau Dir die Hilfe zu DrawLine an:
http://msdn.microsoft.com/de-de/library/system.drawing.graphics.drawline
3. Beachte die Datentypen, die dort als Parameter erwartet/unterstützt werdenDann sollte es gehen.
Meine Glaskugel sagt mir gerade nicht, was für ein Datentyp das "K1->Location" ist...
-
Hallo,
also die genaue Fehlermeldung ist
"Keine Instanz von überladener Funktion stimmt mit der Argumentenliste überein"
Wenn ich das richtig verstehe, dann müsste das als Datentypen mit Pen, Point, Point funktionieren.
Jetzt war ich der Ansicht (die Vorschau der Methodenüberladung zeigt mir das so an), wenn ich dann mit newLocation einen Point definiere und den dorthin schreibe, dann müsste das gehen.Jetzt schaue ich was mir Location gibt und verstehe die Welt nicht mehr. Das soll eine property sein.
Aber dann müsste auchG->DrawLine(gcnew Pen(Color::Green), K1->Location,K1->getNachfolger(1)->Location);
nicht funktionieren, aber das tut es ja.
Ich habe ein Codeschnipsel
K->Location = Point(e->X-this->Location.X-splitContainer1->Location.X, e->Y-this->Location.Y-splitContainer1->Location.Y+10) ;
der funktionoert, hängt das vielelicht damit zusammen, dass ich versuche int - Werte zu addieren.
Sorry, ich glaube ich stehe gerade total auf dem Schlauch
Viele Grüße
Mulan
-
Meine Glaskugel sagt mir immer noch nicht, was für ein Datentyp das "K1->Location" ist...
Ich vermte mal "PointF" und nicht "Point"...
-
Hi,
danke für die Anmerkungen. Location.X liefert ein Objekt des Typs Point .
Das es nicht geklappt hat, lag an einer zu früh geschlossenen Klammern und damit einem nullpoint beim Nachfolger.Viele Grüße
Mulan