Objekte in weiterer Unit referenzieren
-
Oh man, ich kann garnicht glauben, wieviel C++ ich nach 2? Jahren Abstinenz vergessen habe... ich komme mir fast schon verkrüppelt vor. Nun denn, momentan versuche ich, auf ein Objekt (TScrollBox) meines Programmes in einer weiteren Unit zuzugreifen.
Zur Veranschaulichung:
Unit1.cpp
#include "Unit2.cpp"Unit2.cpp
extern TScrollBox *ScrollBox1; ... ScrollBox1->Width = 100; // BeispielSoweit, so gut. Ich kann, wenn ich "ScrollBox1->" schreibe, bereits auf die Codehilfe (dieses aufklappende Menü) zurückgreifen, die ScrollBox ist also eigentlich registriert. Wenn ich das Programm allerdings kompiliere, kommt die Fehlermeldung "Unresolved external '_ScrollBox1' referenced from UNIT1.OBJ".
Wie kann ich dieses Problem lösen?
Danke.
-
wenn du die andere Unit includiert hast in der Form brauchst du kein
extern TScrollBox *ScrollBox1;sonder greifst einfach über die Form auf das Objekt zu.
Form2->ScrollBox1->Width = 100;
-
Der Weg funktioniert nicht..
Ich habe nur eine Form: Form1. Dazugehörig Unit1.cpp, in welcher ich Unit2.cpp (ohne Form, ist lediglich diese Datei) inkludiere. Von dort aus möchte ich dann auf Objekte von Form1 zugreifen können. Jetzt vielleicht klarer, was ich bezwecke? Oder habe ich Dich nur falsch verstanden?
-
OK dachte bei der Unit2.cpp handelt es sich auch um eine Form sorry.
Die Funktionen die in der Unit2.cpp stecken werden sicher von der Form1 aus aufgerufen? wenn ja kannst du ja deiner Funktion einen Zeiger auf die Form übergeben und auf den Objekte zugreifen
ala
void MyFunction(TForm *MyForm) { MyForm->ScrollBox1->Width = 100; }oder nur einen Zeiger auf die ScrollBox übergeben
void MyFunction(TScrollBox *MyScrollBox) { MyScrollBox->Width = 100; }
-
Ah klar, danke. So eingerostet bin ich

Gibt's sonst noch eine Möglichkeit, Objekte allgemein zu referenzieren? So in etwa, wie ich es im ersten Post versucht habe?