Kleine86 Geschrieben 11. Januar 2009 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
robotto7831a Geschrieben 11. Januar 2009 Teilen Geschrieben 11. Januar 2009 Hallo, die Fehlermeldung lautet wie? Warum willst Du das in den Header schreiben? Frank Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Kleine86 Geschrieben 11. Januar 2009 Autor Teilen 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 (?) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
robotto7831a Geschrieben 11. Januar 2009 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Kleine86 Geschrieben 11. Januar 2009 Autor Teilen 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! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
robotto7831a Geschrieben 11. Januar 2009 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Juppo Geschrieben 26. Januar 2009 Teilen 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(); } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.