Include-Dateien zu tief verschachtelt
-
Ich habe folgendes Problem:
Habe ein Formular Form1. Der Code des Formulars steht ja in Unit1.cpp.
Jetzt habe ich noch ein weiters Formular indem ich ein paar Funktionen habe.Damit ich diese aufrufen kann muss ich ja "Unit2.h" einbinden. Das funktioniert auch.
Jetzt möchte ich aber von der Unit2 auf ein edit-Feld zugreifen, das aber in der Unit1 deklariert ist.
Jetzt dachte ich mir ich ich binde die "Unit1.h" ein, das funktioniert auch ohne einen Fehler, leider schreibt er mir aber nichts ins Edit-Feld.
Form1->Edit1->Text = "Test";Habe dann mal die "Unit1.cpp" eingebunden und bekam folgenden Fehler:
Include-Dateien zu tief verschachtelt.Was mache ich falsch?
-
Ich sollte noch dazu sagen, dass das ein Thread ist indem ich in das Edit-Feld schreiben möchte.
Könnte das sein, dass das was mit Veerbung zu tun hat.
Aber wie funktioniert das?
-
Was mache ich falsch?
Habe dann mal die "Unit1.cpp" eingebunden
Das ist in jedem Falle falsch. Eingebunden werden immer nur die jeweiligen *.h. Es ist schon richtig so, wie du es gemacht hast. Warum kein Text zu sehen ist, muss an etwas anderem liegen. Das dein Vorgehen richtig war, konnstet du schon daran sehen, das der Compiler alles geschluckt hat.
Was für Fenster sind das (modale)?
Sind sie schon erzeugt, wenn du da was reinschreibst?
-
Ja sie sind schon erzeug
-
ggf. sende mir das Projekt mal zu cecke@marquardtnet.info
-
Habe dir das Projekt mal gesendet, da ich wirklich nicht weis woran das liegen kann. Als Betreff habe ich angegeben "C++ Problem"
-
jao ich nehme das dann auch mal weil mich das doch interessiert....
das MUSS doch funzen so wie du es gemacht hast.....king-fred@web.de schickste mir das auch mal?
ich schau mal was ich machen kann heude nacht
-
ich weiß net wo dein problem ist?
habe das mal eben geöffnet und finde einfach keine form 2 oder unit 2und wenn ich dann auf den einen knop drücke erscheint doch TEst in der edit1;
und davor kann man das form1 auch weglassen denn man ist ja in der form1.also echt sorry;
komme darauf einfach net klar!
-
Sorry die Unit heißt "RS232.h".
Beim einen Knopf geht es aber beim Empfangen Knopf nicht. Geh einfach mal mit dem Debugger durch. Dann siehst du, dass der Thread das gleiche mach wie der Button "Ports ermitteln". Nur er schreibt es halt nicht in das edit-Feld.
-
Die Lösung ist:
a) es handelt sich nicht um ein 2. Fenster, sondern um einen Thread
b) es ist entsprechend der Hilfe und dem DEMO in C++Builder Verzeichnis zu verfahren; dem Thread das VCL Objekt übergeben & die Synchronize Methode benutzen.
-
wie heißt das demo?
Ich kann keines finden!
-
\CBuilder6\Examples\Apps\Threads
-
Den Thread den ich gemacht habe ist doch richtig und funktioniert auch.
Bei dem Beispiel wird aber gar nicht vom Thread aus auf das Formular zugegriffen und das ist ja das Problem.
-
a) wenn dein Thread "richtig" war und "funktionierte", warum hast du dann hier eine Frage gestell`t?
b) habe ich dir eine funktionierende Lösung zurückgemailt ubd dir Hinweise gegeben
c) selbstverständlich wird in dem Beispiel auf das Formular zugegriffen. Oder wie glaubst du, wird dort der Sortierfortschritt gezeichnet??