Zitat von
gordon2001:
hm... ja aber dabei ist ja das problem das das paint ereigniss andauert von selbst ausgelöst wird ich kan ja nicht bestimmen wann! oder hab ich dich falsch verstanden?
Das Paint-Ereignis wird oft ausgelöst, und das kannst du nicht einschränken, stimmt. Deshalb musst du auch einschränken, wann die PictureBox gedreht wird. Wie? Du legst dir ne zusätzliche Variable an, sowas wie
DiePictureBoxDieIchDrehenMuss oder so...
Im Maus_rein-ereignis setzt du die Variable auf den inhalt von 'sender'. Darin steht ja jene Picturebox, über dem sich die Maus befindet, also jene, die sich drehen soll.
und im Maus_raus-Ereignis setzt du sie auf null.
Jetzt musst du in der Grafik-Methode noch abfragen: zeichnest du grad die PictureBox, die gedreht werden soll
(Die steht übrigens im 'sender' ): ja? dreh sie. nein? dreh sie nich...
in Quellcode ausgedrückt siehts noch einfacher aus:
Delphi-Quellcode:
type
twinform = class(...)
//irgendwo, ws unter Private:
DiePictureBoxDieIchDrehenMuss: System.Object;
end;
procedure twinform.maus_rein(sender: System.Object; e: System.EventArgs);
begin
DiePictureBoxDieIchDrehenMuss := sender;
//...
end;
//im twinform.maus_raus die Var auf null setzen überlass ich dir ;)
procedure twinform.grafik(sender: System.Object; e: System.Windows.Forms.PaintEventArgs);
//...
if DiePictureBoxDieIchDrehenMuss = sender then
begin
//so, hier kommt der Code rein, den du brauchst, um die PictureBox gedreht zu zeichnen
end;
//...
greetz
Mike