Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Prism Objekt zur laufzeit (https://www.delphipraxis.net/60209-objekt-zur-laufzeit.html)

gordon2001 4. Jan 2006 05:11


Objekt zur laufzeit
 
Wie ist es möglich wenn ich zur laufzeit ein objekt erstelle, ihm eine bestimmte anweisung in einem eventhandel zu übergeben???

Vielen danke...

Kroko1999 4. Jan 2006 06:12

Re: Objekt zur laufzeit
 
ja

gordon2001 4. Jan 2006 06:15

Re: Objekt zur laufzeit
 
ich habe es mit include versucht 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'

und mit dem button_neu.onmouseenter := prozedure; geht bei .net irgendwie net (weil ich das hier öffters gelesen habe).

hier noch mal mein code 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, maus_rein(x));
 Include(Self.Picbox.MouseLeave, Self.PictureBox1_MouseLeave);
end;

Master_BB 4. Jan 2006 08:41

Re: Objekt zur laufzeit
 
hm wenn ich das richtig verstanden hab wollt ihr ein event
mit einer event routine verbinden und das zur laufzeit und das ist eigentlich ganz billig.

Delphi-Quellcode:
procedure OnMouseClick(sender : System.Object; e : EventArgs);

//und jetzt irgentwo
Include(MyObject.OnClick, OnMouseClick);
//fertisch
kann sein das das event im object noch anders heißt ein kleines bissle.

bei gordon2001 sieht es so aus als ob die Routine die er
dem event zuweisen will nicht die benötigte form hat.
kukt einfach in der hilfe nach wie die event routinen aussehen
welche parameter sie haben usw

freak4fun 4. Jan 2006 08:53

Re: Objekt zur laufzeit
 
Hallo :hi:


Delphi-Quellcode:
private
  procedure MyClick(Sender: TObject);

...

procedure TForm1.MyClick(Sender: TObject);
begin
  ShowMessage('Hallo Welt!');
end;

...

Button1.OnClick := MyClick;
Der neue Eventhandler sollte die gleichen Parameter haben wie der Alte und bei der Zuweisung werden diese weggelassen. :)

MfG
freak

Master_BB 4. Jan 2006 19:25

Re: Objekt zur laufzeit
 
äm freak das ist ein .NET thema
und da gibts 2 parameter (sender : System.Object; e :Eventargs)

Taladan 4. Jan 2006 20:22

Re: Objekt zur laufzeit
 
Soderle

Delphi-Quellcode:
procedure TRasse.Erstelle_Etwas_Jetzt_und_nicht_Frueher(sender: System.Object; e: System.EventArgs);
var b : button;
  i : integer;
begin

  b:= System.Windows.Forms.Button.Create;
  b.Location := System.Drawing.Point.Create(20, (convert.ToInt32(self.Tag) * 20));
  b.Height := 20;
  b.Width := 100;
  b.text := 'MyButton1';
  Include(b.Click, Erstelle_Etwas_Jetzt_und_nicht_Frueher);
  self.Tag := convert.ToInt32(self.Tag)+1;
  Self.Controls.Add(B);
end;
gruß dat Tala

gordon2001 5. Jan 2006 06:37

Re: Objekt zur laufzeit
 
und das .tag steht jetzt wo für, aber danke erstmal... :-D

Taladan 5. Jan 2006 17:59

Re: Objekt zur laufzeit
 
.tag ist selbe wie form.tag. Also nix besonderes. Tag ist jedoch bei .Net in Gegensatz zu Win32 ein Objekt. Daher muß man hier konvertieren. Das Tag ist nur eingefügt und schnell und easy einen Variblen wert zu haben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:04 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