Thema: Prism EventArgs

Einzelnen Beitrag anzeigen

gordon2001

Registriert seit: 2. Jan 2006
Ort: Rostock
14 Beiträge
 
#5

Re: EventArgs

  Alt 4. Jan 2006, 19:23
hm... ja das ist besser, aber ganz geht meine strategie nicht aus, leider. Also ich sag einfach mal was ich vor hatte.

Ich möchte zur lauf zeit mehre pictureboxes erzeugen die mit einer grundform gefüllt sind.
nun möchte ich aber das wenn die maus über eine picturebox geht das sie gekippt wird.

Mein quelltext sieht so aus, bisher...

Delphi-Quellcode:

procedure TWinForm.MenuItem7_Click(sender: System.Object; e: System.EventArgs);


begin
 picbox := system.Windows.Forms.PictureBox.Create;
 picbox.Name := 'picturebox2';
 picbox.Bounds := rectangle.Create(80,20,70,70);
 self.Controls.Add(picbox);

 Include(Self.Picbox.Paint, Self.grafik);
 Include(Self.Picbox.MouseEnter, self.maus_rein);
 Include(Self.Picbox.MouseLeave, Self.maus_raus);
end;

procedure TWinForm.PictureBox1_MouseLeave(sender: System.Object; e: System.EventArgs);
begin
 self.maus_raus(sender, e);
end;

procedure TWinForm.PictureBox1_MouseEnter(sender: System.Object; e: System.EventArgs);
begin
  self.maus_rein(sender, e);
end;



procedure TWinForm.PictureBox1_Paint(sender: System.Object; e: System.Windows.Forms.PaintEventArgs);


begin
  self.grafik(sender, e);
end;



procedure twinform.maus_raus(sender: System.Object; e: System.EventArgs);

begin
  self.Name := (sender as control).Name;
  winkel := 0;
  self.Refresh;
  self.Invalidate;
end;




procedure twinform.maus_rein(sender: System.Object; e: System.EventArgs);


begin
  
  self.Name := (sender as control).Name;
  winkel := -15;
  self.Refresh;
  self.Invalidate;

end;




procedure twinform.grafik(sender: System.Object; e: System.Windows.Forms.PaintEventArgs);
var rec: rectangle;
    rec2: rectangle;


begin
  
  e.Graphics.TranslateTransform(0,0);
  e.Graphics.Clear(self.BackColor);

  e.Graphics.TranslateTransform(30,30);
  e.Graphics.RotateTransform(winkel);

  rec := rectangle.Create(-22,-22,43,43);
  rec2 := rectangle.Create(-20,-20,43,43);
  e.Graphics.FillRectangle(solidbrush.Create(color.black),rec2);
  e.Graphics.FillRectangle(solidbrush.Create(color.gray),rec);
  e.Graphics.DrawRectangle(pen.create(color.Black),rec);
end;
komischer weiße wenn eine neue picturebox erzeugt wird drehen sich beide wenn man mit der maus über eines geht. Ich glaube weil ich mit dem include beim erzeugen das mit dem sender nicht übergeben habe???

thx bis hier, find ich echt cool hier...
  Mit Zitat antworten Zitat