Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Procedure an Objekt übergeben
Tana´Ri - Mi 14.05.03 12:43
Titel: Procedure an Objekt übergeben
hi
Ich versuche einer, in meinem Objekt deklarierten Prozedurenvariable, eine Procedure aus dem Form zu zuweisen. Damit möchte ich mein Printer-Objekt hinsichtlich der PrintOp variable lassen, je nach dem könnten dann verschiedene Druckverfahren zugewiesen werden. In der Delphi Hilfe bin ich bei der Suche nach @ darauf gestoßen. Funzt aber leider net, ich bekomme die Meldung: 'Funktion/Prozedure wurde der Prozedurenvariable zugewiesen' -> doch compiliert er nicht mehr :(
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure TForm1.btntestClick(Sender: TObject);
procedure doit; begin Form1.Color:=random(high(integer)); end;
begin with myObj do begin PrintOp := doit; // PrintOp = Prozedurenvariable PrintOp; end; end; |
AndyB - Mi 14.05.03 12:55
Prozeduren in Prozeduren werden ganz anders behandelt als normale Prozeduren. Du muss Doit aus btntestClick herausnehmen.
Tana´Ri - Mi 14.05.03 13:05
thx a lot Andy :))
es funzt wenn ich die procedure doit global mache, sobald ich sie innerhalb meines forms deklariere funktioniert es nicht, gibt es dazu auch noch ne möglichkeit.
AndyB - Mi 14.05.03 13:28
Ja, eine Möglichkeit gibt es schon. Nur ist die nicht gerade elegant und vor allem muss man mit Self und den lokalen Variablen der übergeordneten Prozedur aufpassen.
Tana´Ri - Mi 14.05.03 13:28
hat sich erledigt, mach es dem timer gleich
in meinem Obj
bsp:
Quelltext
1: 2: 3: 4: 5:
| [...] fprint : TNotifyEvent // TNotifyEvent = Procedure (sender : tobject) of object; published PROPERTY OnPrint : TNotifyEvent read fprint write fprint [...] |
somit kann man OnPrint dann auch Procedure zuweisen die im Form z.b. sind.
mfg
Tana_Ri
Moderiert von
Tino: Code-Tags hinzugefügt.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!