Entwickler-Ecke
Sonstiges (Delphi) - Funktions aufruf
Aya - Mi 23.10.02 23:25
Titel: Funktions aufruf
Hi,
ich bastel grad an einer komponente, und hab da ein problem.. ich möchte etwas wie einen NotifyEvent machen, da es allerdings NonVCL ist geht nen TNotifyEvent net :)
kann mir jemand erklären wie ich das am besten machen kann mit NonVCL???
in meiner Komponente habe ich eine Funktion, die ruft man einmalig auf, und die soll eine Funktion meiner wahl zu einem bestimmten zeitpunkt aufrufen... nur hab ich KA, wie ich festlege welche funktion aufgerufen wird... :)
ich hoffe mal irgendjemand hat verstanden was ich machen will *g*
Au'revoir,
Aya
FriFra - Mi 23.10.02 23:43
Setze beim Aufruf Deiner Funktion einfach eine Variable...
Später (onEvent) fragst Du einfach diese Variable ab und führst dann eben Code in Abhängikeit dieses Wertes aus
Ich hoffe ich hatte das richtig verstanden :roll:
Aya - Mi 23.10.02 23:58
kannst du mir mal ein beispiel machen? :)
Cashels - Do 24.10.02 07:12
Hey,
ne andere Möglichkeit ist die, dass du dir einen Funktionstyp baust. Hier erst mal der Code:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33:
| unit Unit2;
interface
type TFunc = function (x : double) : double ;
function Kreis (x : double) : double ; function Quadrat (x : double) : double ;
procedure Teste (f : TFunc ; x : double) ;
implementation uses dialogs, sysutils ;
function Kreis (x : double) : double ; begin Result := x*x*Pi ; end ;
function Quadrat (x : double) : double ; begin Result := x*x ; end;
procedure Teste (f : TFunc ; x : double) ; begin showmessage (format ('%.2f',[f(x)])) ; end ;
end. |
Jetzt kanns du deine Procedur mit Teste aufrufen. Abhängig vom Parameter f wird dann entweder die Kreis- oder Quadratfläche errechnet. Aufruf mittels Teste (Kreis,2) z.B.
Diese Methode hat allerdings den Nachteil, dass sämtlich aufrufbaren Funktionen genau die gleichen Parameter haben wie TFunc. Hier wäre die Berechnung eines Rechtecks mittels einem Parameter also z.B. nicht möglich. Deshalb würd ich auch die Ereignismethode bevorzuge.
Gruss,
Tom
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!