Problem mit auf Formen zugreifen oderso^^
-
Hallo erstma,
Ich hab ein Programm mit mehreren Formen geschrieben. Wenn ich jetzt auf eine Form zugreifen möchte, mit z.B.:
Form2->Image1->Picture->SaveToFile(Form2->SaveDialog1->FileName);dann geht das net. Wenn ich auf den Button drücke kommt eine Fehlermeldung. Ich habe ganz normal
#include "Unit1.cpp"geschrieben. Achso in der Fehlermeldung steht:
"Im Projekt Programm.exe is eine Exception der Klasse EAccessViolation" (...) "Zugriffsverletzung bei Adresse 0040279B" (...) etc. pp.
Bitte nich so ganz so doll in Fachausdrücken ausdrücken, ich bin noch Anfänger^^
Vielen Dank scho ma
MFG G G O
-
hast nen filename in dem savedialog eingetragen?
-
ich habe eine ähnliches Problem wenn ich auf dynamisch erstellte elemente mit dem zeiger zugreifen will. Ich vermute stark das die componente nicht zur aktuellen klasse gehört bzw. vom aktuellen punkt nicht zugegriffen werden darf.
wie man sowas löst interessiert mich selbst.
-
Hallo und danke für die schnelle Antwort.
Ja, ich hab da etwas eingetragen. Aber bei mir kommt die Fehlermeldung selbst wenn ich versuche
Form2->Timer1->Enabled = true;zu machen. Soll ich den C++ Builder 6 neu installieren?
-
G G O schrieb:
[...]
Ich habe ganz normal#include "Unit1.cpp"geschrieben. Achso in der Fehlermeldung steht:
[...]du meinst hoffentlich
#include "Unit1.h"
-
wird Form2 dynamisch oder automatisch erzeugt?
-
äm ich meine
#include "Unit1.cpp"wenn ich da Unit1.h reinschreibe kommt:
Abnormal termination
(1000 Fehlermeldung)
C++ Builder im Arsch^^und ich hab das eigentlich immer mit .cpp gelernt.
und form2 wird automatisch erzeugt
-
G G O schrieb:
und ich hab das eigentlich immer mit .cpp gelernt.
und wer verbreitet so nen quatsch?
-
Ich hab eben nochmal "Unit1.h" probiert.
Also der stürzt dabei total ab. Und dann is mein Programm kaputt...
-
Wie hast Du dein File-Objekt initialisiert ?
-
Welches File-Objekt? Meins du Unit2.cpp?
-
Also ich hab jetzt den C++ Builder 6 neu installiert. Hab das ausprobiert mit einfügen
#include "Unit2.h"und scho wieda: Abnormal Termination etc. pp. und Absturz des C++ Builders. Kennt jemand das Problem?
-
das liegt nicht daran. du hast sicherlich an ganz anderen stellen ein haufen bugs eingebaut, aber solange du immer nur die eine zeile code postest, kann dir keiner helfen.
-
wie erzeugst du dein dynamisches fenster?
also die Unit2.h
gruß gerd
-
Ok, ok ich Poste das ganze Programm
@ Sunday
In Form2 hab ich nur einen Button mit dem BefehlForm1->Timer1->Enabled = true;Und in Form1 ist nichts anderes als der Timer (der macht auch nichts).
Zufrieden? Mehr is dat nich.Das Fenster wird automatisch erzeugt.
Es liegt auch net am Timer (mit anderen Sachen geht das auch nich) und beim *.h stürzt der ab. So: wissen jetzt alle was ich meine?
-
G G O schrieb:
Ok, ok ich Poste das ganze Programm
Wo ist es denn? Wo sind die unit1.h, die unit1.cpp, die unit2.h und die unit2.cpp? Sehe ich hier nix von. Wer weiß, was Du da alles reingetippselt hast...
G G O schrieb:
So: wissen jetzt alle was ich meine?
Nein.
-
MUAAA!!!!

Ich habe nirgendwo etwas reingetippselt....
Wieso glaubt ihr mir eigentlich nicht?So und das mit dem ganzen Programm hab ich nicht gemacht weil ich eingentlich dachte ihr würdet mir glauben^^
Aber da ich eines besseren belehrt wurde hier das Programm:Form 2
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit2.h" #include "Unit1.cpp" //is egal ob mit *.cpp oder mit *.h, stürzt immer ab //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm2 *Form2; //--------------------------------------------------------------------------- __fastcall TForm2::TForm2(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm2::Button1Click(TObject *Sender) { Form1->Timer1->Enabled = true; } //---------------------------------------------------------------------------Form1
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Timer1Timer(TObject *Sender) { Timer1->Enabled = false; } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { } //---------------------------------------------------------------------------So... Soll ichs noch in andere Sprachen übersetzen oder reicht das? (Es gibt gute übersetzungstools im Internet)
-
G G O schrieb:
Mehr is dat nich.
dann scheint ja schonmal form2 nicht zu wissen, dass es form1 gibt...
-
@Sunday: Ich gebs auf... Du hast gewonnen... Ich halt das nicht mehr aus...
-
also in form1 muss #include "Unit2.h" mit rein. wenn du von unit2 auch auf unit 1 zugreifen willst dann sollte dort #include "Unit1.h" rein, und glaube es uns, dass es die header datei ist, und nicht die cpp, die inkludiert werden muss.
gruß gerd