function pointer oder so
-
hi! wie sieht die syntax aus wenn ich einer anderen methode, wiederum eine adresse zu einer anderen methode übergeben will...
zum verständnis: testclass->test(&superfunktion())
so meine ich das in etwabeispiel wäre thx (vom Übergebenden und vom Empfänger)
-
Abgesehen davon, falsches Forum.
-
ja die kenne.. verstehe da nur nicht wirklich viel leider...
ich mach mal selber ein code beispiel was ich meine:
TCustomModel * test; test = new TCustomModel (&CustomMethod); //CustomMethod void __fastcall TView::CustomMethod() { //blah blah } // Konstruktor des CustomModel TCustomModel::TCustomModel( ??? ) //<<---- Wie sieht hier der Empfang aus { }
ok ich hoffe mir kann jeamdn helfen danke
-
Denke das es so funktioniert.
typedef void __fastcall (__closure *pfunc)(); TCustomModel::TCustomModel(pfunc abc ) { }
wenn nicht so
TCustomModel::TCustomModel(pfunc *abc ) { }
-
leider geht beides nicht
-
so funktioniert es.
pfunc a=NULL ; a = CustomMethod; test = new TCustomModel(a); // habe mal TForm genommen, da ich nicht weis was für ein Typ __fastcall TCustomModel::TCustomModel( pfunc abc) :TForm(Owner) { }
-
ok thx und wie soll ich pfunc definieren???
-
pfunc ist so definiert
typedef void __fastcall (__closure *pfunc)();
-
mhm.. ich kriege immernoch ein "could not find a match for [...] (void (__fastcall *(__closure)())()) error.. hab aber soweit alles so gemacht wie angegeben...
-
da hilft nur eins Code.
-
typedef void __fastcall (__closure *pfunc)(); pfunc a; a = Update; FTest = new TTestModel(a); // Konstruktor __fastcall TTestModel::TTestModel(pfunc b) : TPersistent() { }
-
typedef void __fastcall (__closure *pfunc)();
mußt du in die Header-Datei schreiben.
-
wow er kompiliert schonmal den code...
tausend dank