Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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 (?)

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

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!

  • 2 Wochen später...

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();

}

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.