Kleine86 Geschrieben 11. Januar 2009 Geschrieben 11. Januar 2009 Hallo zusammen, habe momentan folgendes Problem: Wenn ich z.B. in die Unit1.cpp folgendes schreibe: void __fastcall TForm1::Button1Click(TObject *Sender) { Form1->Close(); } funktioniert alles so wie ich möchte (also das Fenster wird bei klick auf den Button geschlossen) Ich möchte aber Form1->Close(); in unit.h schreiben, also void beenden(){ *Form1.Close(); } und in der Unit1.cpp: void __fastcall TForm1::Button1Click(TObject *Sender) { beenden(); } Ich finde leider meinen Fehler nicht, wäre super wenn mir jemand weiterhelfen könnte Grüße
robotto7831a Geschrieben 11. Januar 2009 Geschrieben 11. Januar 2009 Hallo, die Fehlermeldung lautet wie? Warum willst Du das in den Header schreiben? Frank
Kleine86 Geschrieben 11. Januar 2009 Autor Geschrieben 11. Januar 2009 Fehlermeldung: [Linker Fehler] Unresolved external 'TForm1::beenden()' referenced from C:\DOKUMENTE UND EINSTELLUNGEN\Benutzer\DESKTOP\Datei\UNIT1.OBJ Die Vorgänge sollen alle in einer Klasse definiert sein, somit muss das ja dann in den Header (?)
robotto7831a Geschrieben 11. Januar 2009 Geschrieben 11. Januar 2009 Die Methode beenden gehört ja auch nicht zu deiner Klasse. Schreib mal TForm1:: davor. Die Vorgänge sollen alle in einer Klasse definiert sein, somit muss das ja dann in den Header (?) Warum? Im Header schreibt man in der Regel die Klassendefinition und im CPP die Implementierung. Man kann natürlich auch Methoden im Header implementieren. Das wird oft für get Methoden genutzt wo nur ein return ... drin steht oder aber auch beim Konstruktor oder Destruktor wird das schon mal genutzt. Frank
Kleine86 Geschrieben 11. Januar 2009 Autor Geschrieben 11. Januar 2009 Nun bekomme ich die Fehlermeldung: [C++ Fehler] Unit1.h: E2451 Undefiniertes Symbol 'Form1' aber wie kann ich das nun definieren? Das Problem ist, das die Klasse das Programm beschreiben muss, also muss alles aus der Klasse kommen - wenn ich alles in .cpp schreibe läuft es :-( Schonmal vielen Dank für deine Hilfe!
robotto7831a Geschrieben 11. Januar 2009 Geschrieben 11. Januar 2009 Das Problem ist, das die Klasse das Programm beschreiben muss, also muss alles aus der Klasse kommen Versteh ich nicht. Frank
Juppo Geschrieben 26. Januar 2009 Geschrieben 26. Januar 2009 also in unit1.h solltest du void beenden(); als public deklarieren in unit1.cpp muss die methode wie folgt geschrieben und aufgerufen werden: void TForm1::beenden() { Form1->Close(); } void __fastcall TForm1::Button1Click(TObject *Sender) { beenden(); }
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden