Hallo ich schreibe zur Zeit ein Programm mit dem Borland Builder C++. Mein Problem sieht folgendermaßen aus: Ich habe 2 Formulare. Ein Hauptformular und eines mit 2 Buttons. Vom Hauptformular kann man einen Button drücken und so öffnet sich das 2. Formular. Jetzt benötige ich aber Funktionen sowie Variablen und einen DLL Pointer von Formular eins auch in Formular 2. Wie kann ich diese dort verwenden?
Was für C# gilt, kann man auch in C++ umsetzen Beitrag "C# - Anfänger braucht Hilfe beim Umgang mit Klassen --> Zugriff auf Daten" Als "Hack" geht's mit dem C++Builder aber auch einfacher: Da der C++Builder für jede Form eine globale Variable anlegt und die Forms vor dem eigentlichen Programmstart initialisiert, braucht man in der entsprechenden Form nur eine Methode (zur Not gingen auch ein paar öffentliche Variablen), der man die entsprechenden Parameter übergibt.
Ich bin ehrlich gesagt etwas eingerostet und frische zur Zeit mein Wissen wieder auf. Könnte man vllt. ein Beispiel hier reinstellen. (wegen Methoden Deklaration usw.) Thx im Vorsaus
Alex D. wrote: > Ich bin ehrlich gesagt etwas eingerostet und frische zur Zeit mein > Wissen wieder auf. Könnte man vllt. ein Beispiel hier reinstellen. > (wegen Methoden Deklaration usw.) > > Thx im Vorsaus Da es zu MVC/MVP bzw. Singleton im Netz genügend Stoff gibt, hier nur ein Beispiel für die unsaubere Methode. Der C++Builder erzeugt normalerweise zu jeder Form einen Header und das dazugehörige CPP-File. Im Header sieht das etwa so aus
1 | class TMyForm : public TForm { |
2 | __published:
|
3 | // ...
|
4 | private:
|
5 | // ...
|
6 | public:
|
7 | __fastcall TMyForm(TComponent* Owner); |
8 | // hier kann man dann z.B. eigene Methoden deklarieren
|
9 | |
10 | void init(MyVarType1& myVarType1Ref, MyVarType2* myVarType2Ptr, MyDLLPointerType myDLLPtr); |
11 | // andere Variante
|
12 | void init(TForm* mainFormP); |
13 | };
|
14 | |
15 | |
16 | // irgendwo in der cpp dann
|
17 | void TMyForm::init(MyVarType1& myVarType1Ref, MyVarType2* myVarType2Ptr, MyDLLPointerType myDLLPtr) { |
18 | // irgendwas
|
19 | }
|
20 | |
21 | void TMyForm::init(TForm* mainFormP) { |
22 | mMainFormP = mainFormP; |
23 | // ab hier kann man dann über den passend zu castenden Zeiger auf die
|
24 | // öffentlichen Eigenschaften/Methoden des Hauptformulars zugreifen
|
25 | }
|
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.