Hallo hab ein problem das ich einfach nich gelöst bekomme und zwar will ich zur lauf zeit mehrer picturbox's erzeugen die alles auf ein gemeinsames PaintEvent zu greifen sollen.
ich habe also eine procedure geschrieben die das macht was ich will
Delphi-Quellcode:
procedure twinform.grafik(sender: System.Object; e: System.Windows.Forms.PaintEventArgs);
var rec: rectangle;
rec2: rectangle;
begin
self.Name := (sender as control).Name;
e.Graphics.Clear(self.BackColor);
e.Graphics.ScaleTransform(x,x);
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);
textbox1.Text := e.ToString;
e.Graphics.DrawImage(self.PictureBox1.Image, -20, -20);
end;
das klappt auch alles.
ich hab probeweiße zur entwurfszeit eine picturebox erschaffen und übergebe den sender so das die procedure weis auf welche picturebox sie das event anwenden soll.
Delphi-Quellcode:
procedure TWinForm.PictureBox1_Paint(sender: System.Object; e: System.Windows.Forms.PaintEventArgs);
begin
self.grafik(picturebox1, e);
end;
aber auch nur weil "e" das gleiche event hat wie die prozedure
nun will ich eine neue picturebox erzeugen mittels:
Delphi-Quellcode:
procedure TWinForm.Button1_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, grafik(picbox.Name, {HIER} )));
end;
was muss ich bei "HIER" übergeben damit es funktioniert????
ich komm einfach nicht weiter
vielen dank für eure hilfe!!!!