Funktionszeiger - Closure?
-
Hey Ho !
mal wieder ich
nun ich möchte gerne eine Funktion über einem Zeiger ausführen ...
zwar funktioniert diese in einem Consolen-Programm aber sobald ich
eine Form erstelle und einen Zeiger auf einer Funktion mache kommt folgender Fehler:
Elementfunktion muß aufgerufen oder ihre Adresse übernommen werden
Selbst als ich mit den & die Adresse versucht zu übergeben habe kam der Fehler
Konvertierung von 'void((_closure)())()' nach 'void()()' nicht möglich
Wie muss ich den Pointer deklarieren damit dieser funktioniert und was ist ein _closure ?
(da hab ich mich auch schon versucht zu informieren fand jedoch nichts gescheites)#include <vcl.h> #pragma hdrstop #include "Unit1.h" #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; void (*myFunk)(); __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } void __fastcall TForm1::Button1Click(TObject *Sender) { myFunk = &TestFunk; } void TForm1::TestFunk() { Edit1->Text = "Test"; }
-
Ist TestFunk denn static oder eine dynamische Member Funktion von TForm1?
-
void (TForm1::*myFunk)(); myFunk = &Form1::TestFunk; TForm1 form; // Aufruf (form.*myFunk)();Ohne Gewähr...
-
thx ^^
das hat mir geholfen ! danke