AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

gemeinsam auf ein paintevent zugreifen!

Ein Thema von gordon2001 · begonnen am 3. Jan 2006 · letzter Beitrag vom 4. Jan 2006
Antwort Antwort
gordon2001

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

gemeinsam auf ein paintevent zugreifen!

  Alt 3. Jan 2006, 14:23
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!!!!
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#2

Re: gemeinsam auf ein paintevent zugreifen!

  Alt 3. Jan 2006, 14:32
MMh. Unter Win32 hat man Events so zugewiesen:

self.picbox.OnPaint:=grafik;

Da werden doch noch garkeine Parameter übergeben . Hat sich das so grundlegend in Net geändert ...

Vielleicht geht ja auch einfach:

include(self.picbox.Paint, grafik);

Die Parameter für einen Event können doch erst bekannt sein, wenn das Event auftritt ...
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
gordon2001

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

Re: gemeinsam auf ein paintevent zugreifen!

  Alt 3. Jan 2006, 14:40
Klappt leider beides nicht. aber danke...
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#4

Re: gemeinsam auf ein paintevent zugreifen!

  Alt 3. Jan 2006, 14:55
Schau doch einfach in den vom Form-Editor erstellten Code, dort siehst du, wie man in Delphi.NET EventHandler zuweist.
Code:
this.pictureBox1.Paint += new System.Windows.Forms.PaintEventHandler(this.PictureBox1Paint);
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
gordon2001

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

Re: gemeinsam auf ein paintevent zugreifen!

  Alt 4. Jan 2006, 06:12
leider kann ich mit include dem ganzen keine prozedur zuweißen da kommen dann immer fehler:

[Fehler] WinForm.pas(264): E2010 Inkompatible Typen: 'EventHandler' und 'procedure, untyped pointer or untyped parameter'

was mach ich bloß mit meinem..

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, maus_rein(x));
 Include(Self.Picbox.MouseLeave, Self.PictureBox1_MouseLeave);
end;
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#6

Re: gemeinsam auf ein paintevent zugreifen!

  Alt 4. Jan 2006, 10:02
Ignorierst du eigentlich alle Tipps? jim_raynor hat dir gesagt, dass man unter Win32 keine Parameter angeben muss, das ist auch unter .NET richtig. Also kannInclude(Self.Picbox.MouseEnter, maus_rein(x)); nicht funktionieren. Ich habe dir geraten, dir die von Delphi generierten Sourcen anzuschauen, denn dort muss es ja richtig sein.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz