Hallo zusammen,
ich bin trotz anfänglicher Probleme ein bisschen weiter gekommen!
Hatte hier schon einen Thread wegen dem vector, das läuft jetzt alles wie ich mir das vorgestellt hatte,
nur hab ich eben folgende Probleme:
Der Microsoft Visual C++ .NET erzeugt ja automatisch die Form1.cpp als "Hauptdatei"
Ich möchte (wie schon implementiert) zum Start des Programms aus der Datei die Fragen einlesen,
mittels eines Copy-Konstruktors für jede weitere Instanz nur noch diese Daten kopieren
und nicht neu aus der Datei auslesen!
Soll heißen ich will zu Programmbeginn eine Instanz erzeugen auf die ich im gesamten Programm zugreifen kann...
Ich gebe vor Programm Ende noch den Speicher frei... Ich hoffe dass das soweit richtig ist.
Hier die Form1.cpp:
Im Form1 kann man im mainmenu auf "Neu" klicken und es öffnet sich ein weiteres Form namens "newObject"
Der Aufruf erfolgt folgendermasen, wobei auch hier bin ich mir nicht sicher ob das korrekt ist,
vorallem da ich noch nicht genau weiß wo ich den dynamisch allozierten Speicher wieder freigeben soll...
(Was dann auch gleich meine zweite Frage wäre^^)
Vorallem ist auch kein Destruktor definiert für das Form "newObject", warum generiert der den nicht Automatisch?
Zurück zur ersten Frage:
In der Instanz "neueUmfrage" von "newObject" hätte ich jetzt gerne Zugriff auf das in Form 1 initialisierte Objekt "questions"
Ich habe es wie folgt probiert und es klappt net :
Wie bekomm ich das hin dass ich Zugriff auf das Objekt hab
Ist die Vorgehensweise überhaupt in Ordnung das Objekt vor Erzeugen des HauptForms zu initialisieren?
Wo sollte ich es sonst tun?
Und wie rufe ich aus dem Hauptform am besten andere Forms auf?
In Borland ist das ja kein Problem, aber hier im Visual C++ .Net hab ich schwerwiegende Probleme...
Bin für jede Hilfe dankbar!
Grüsse
RuFF
ich bin trotz anfänglicher Probleme ein bisschen weiter gekommen!
Hatte hier schon einen Thread wegen dem vector, das läuft jetzt alles wie ich mir das vorgestellt hatte,
nur hab ich eben folgende Probleme:
Der Microsoft Visual C++ .NET erzeugt ja automatisch die Form1.cpp als "Hauptdatei"
Ich möchte (wie schon implementiert) zum Start des Programms aus der Datei die Fragen einlesen,
mittels eines Copy-Konstruktors für jede weitere Instanz nur noch diese Daten kopieren
und nicht neu aus der Datei auslesen!
Soll heißen ich will zu Programmbeginn eine Instanz erzeugen auf die ich im gesamten Programm zugreifen kann...
Ich gebe vor Programm Ende noch den Speicher frei... Ich hoffe dass das soweit richtig ist.
Hier die Form1.cpp:
Code:
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
System::Threading::Thread::CurrentThread->ApartmentState = System::Threading::ApartmentState::STA;
U_Data *questions = new U_Data();// Bei Programmstart Objekt anlegen und die Fragen-Datei auslesen
Application::Run(new Form1());
delete questions;//Freigeben des allozierten Speichers -> Aufruf des Destruktors
return 0;
}
Im Form1 kann man im mainmenu auf "Neu" klicken und es öffnet sich ein weiteres Form namens "newObject"
Der Aufruf erfolgt folgendermasen, wobei auch hier bin ich mir nicht sicher ob das korrekt ist,
vorallem da ich noch nicht genau weiß wo ich den dynamisch allozierten Speicher wieder freigeben soll...
(Was dann auch gleich meine zweite Frage wäre^^)
Vorallem ist auch kein Destruktor definiert für das Form "newObject", warum generiert der den nicht Automatisch?
Code:
private: System::Void menuItem2_Click(System::Object * sender, System::EventArgs * e)
{
newObject *neueUmfrage = new newObject;
neueUmfrage->Show();
}
Zurück zur ersten Frage:
In der Instanz "neueUmfrage" von "newObject" hätte ich jetzt gerne Zugriff auf das in Form 1 initialisierte Objekt "questions"
Ich habe es wie folgt probiert und es klappt net :
Code:
#include ".\U_Data.h"
extern U_Data questions;
/*
...standard code...
*/
private: System::Void OK_Click(System::Object * sender, System::EventArgs * e)
{
questions->load_quest();//Nur zum testen ob ich Zugriff auf das Objekt hab
}
Wie bekomm ich das hin dass ich Zugriff auf das Objekt hab
Ist die Vorgehensweise überhaupt in Ordnung das Objekt vor Erzeugen des HauptForms zu initialisieren?
Wo sollte ich es sonst tun?
Und wie rufe ich aus dem Hauptform am besten andere Forms auf?
In Borland ist das ja kein Problem, aber hier im Visual C++ .Net hab ich schwerwiegende Probleme...
Bin für jede Hilfe dankbar!
Grüsse
RuFF