Member Funktion einer anderen Form aufrufen
-
Hallo zusammen ...
Ich habe folgendes Problem. Es gibt mehrere Forms - wovon hier aber nur zwei wichtig sein sollten.
In der ersten Form habe ich eine öffentliche Member Funktion namens Wallpaperaktualisieren. Diese Funktion möchte ich nun aus der zweiten Form heraus aufrufen, wobei ich aber folgenden Fehler einfach nicht ausmachen kann:
Fehler 6 error C2227: Links von "->BackgroundImage" muss sich ein Zeiger auf Klassen-/Struktur-/Union-/generischen Typ befinden. c:\users\jan\documents\visual studio 2008\projects\kinder\kinder\Einstellungen.h 105
Fehler 1 error C2027: Verwendung des undefinierten Typs "Kinder::Form1" c:\users\jan\documents\visual studio 2008\projects\kinder\kinder\Einstellungen.h 105
Hier mal nen Paar Code abschnitte:
Form1
#pragma once #include "stdafx.h" #include "registryhilfe.h" #include "registry.h" #include "Einstellungen.h" #include "internet.h" #include "Email.h" namespace Kinder { ref class internet; ref class Email; ref class Einstellungen; using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; public ref class Form1 : public System::Windows::Forms::Form { public: Form1(void) { InitializeComponent(); regeinträgeholen (); wallpaperaktualisieren (); if (registryhilfe::regdaten::interval >0 && registryhilfe::regdaten::email == TRUE) emailwächterstarten(); //if (taskleiste == TRUE) taskleisteanzeigen(); //else taskleisteverstecken(); desktopsymboleausblenden (); } public: void wallpaperaktualisieren () { if ( registryhilfe::regdaten::bilddatei == "default") return; else this->BackgroundImage = Bitmap::FromFile (registryhilfe::regdaten::bilddatei); this->Refresh (); } ... ... ... private: System::Void pictureBox5_Click(System::Object^ sender, System::EventArgs^ e) { Einstellungen^ instanz = gcnew Einstellungen(this); instanz->formaktualisieren (); }
Form2 (Einstellungen)
#pragma once #include "Email.h" #include "registryhilfe.h" #include "registry.h" using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; namespace Kinder { ref class Form1; ref class Email; public ref class Einstellungen : public System::Windows::Forms::Form { public: Einstellungen(Form1^ form) { InitializeComponent(); regeinträgeholen (); wallpaperübernehmen (form); } protected: ~Einstellungen() { if (components) { delete components; } } public: void wallpaperübernehmen (Form1^ form) { form->BackgroundImage = Bitmap::FromFile (registryhilfe::regdaten::bilddatei); // [b]Hier gibts den Fehler[/b] };
Für Hilfe wäre ich echt dankbar.
-
#include "Form1.h"
-
Das hatte ich bereits bemerkt. Allerdings ist IntelliSense die Funktion bekannt.
Folgende Fehler erhalte ich nach dem Einfügen:Fehler 1 error C2512: 'Kinder::Einstellungen': Kein geeigneter Standardkonstruktor verfügbar c:\users\jan\documents\visual studio 2008\projects\kinder\kinder\Form1.h 301 Fehler 3 error C2227: Links von "->formaktualisieren" muss sich ein Zeiger auf Klassen-/Struktur-/Union-/generischen Typ befinden. c:\users\jan\documents\visual studio 2008\projects\kinder\kinder\Form1.h 302 Fehler 2 error C2027: Verwendung des undefinierten Typs "Kinder::Einstellungen" c:\users\jan\documents\visual studio 2008\projects\kinder\kinder\Form1.h 302