Probleme beim Zugreifen auf ein anderes Formular



  • Hallo.

    Ich habe bei nem Programm gerade das Problem, dass wenn ich irgendetwas von Form1 aus aufrufe, was in Form2, Form3, oder sonst was definiert ist, ich immer eine Exception auf den Bildschirm geschmissen bekomme...

    Also was weiß ich, wenn ich zum Beispiel in Form1 in OnCreate schreibe:

    Form4->ShuffleCB->Checked = false;
    

    Also der soll da bloß den Haken aus der Checkbox nehmen, aber der wirft mir halt
    immer die Exception auf den Tisch... 😞

    Exception: Zugriffsverletzung bei Adresse BLABLABLA in Modul 'Programm.exe'.
    Lesen von Adresse BLABLABLA.

    Die Header-Datei habe ich eingebunden!
    Was habe ich falsch gemacht? Hatte vielleicht mal jemand dasselbe Problem?
    Kann mir jemand helfen?

    MFG Aoeke

    P.S. Falls sich einer fragt, warum ich nicht den ganzen Quelltext poste,
    der ist ca. 1500 Zeilen lang...

    [ Dieser Beitrag wurde am 26.02.2003 um 19:12 Uhr von Aoeke editiert. ]



  • Original erstellt von Aoeke:
    **Also was weiß ich, wenn ich zum Beispiel in Form1 in OnCreate schreibe:

    Form4->ShuffleCB->Checked = false;
    ```**
    

    In welcher Reihenfolge werden denn die Formulare erstellt. So wie ich das sehe, gibs das Formular Form4 noch nicht, wenn das Forumlar Form1 erzeugt wird.

    Deshalb bekommst du auch ne Zugriffsverletzung.



  • Du greifst in der OnCreate von Form1 auf die noch nicht existierende Form4 zu.

    In den Projektoptionen kannst du die Reihenfolge der Forms ändern, sezte dort mal die Form1 an den Schluss



  • Das geht auch später nicht, da die Formular getrennt existieren: OOP- Gesetz

    fueg mal die Header der Formen, auf die zugegriffen wird, in Form1 mit ein

    !!! includieren !!! sonst kennen die sich net



  • Original erstellt von DerAltenburger:
    !!! includieren !!! sonst kennen die sich net

    hat er doch, sonst würde er keine Zugriffsverletzung bekommen sondern Unbekannter Bezeichner... oder sowas...

    oh, er war schneller 🙂

    [ Dieser Beitrag wurde am 26.02.2003 um 19:51 Uhr von AndreasW editiert. ]



  • Die Header-Datei habe ich eingebunden!

    hat er doch gemacht



  • OK, stimmt auch wieder.

    ! In Create einer Form sollte sowieso nicht auf andere zugegriffen werden.

    Versuch mal den zugriff in OnShow oder besser in OnActivate (dann muessten alle Formen im RAM sein!)

    ??? Die Initialisierung muesste doch sowieso in der Form 4 gehen ???



  • Original erstellt von DerAltenburger:
    ??? Die Initialisierung muesste doch sowieso in der Form 4 gehen ???

    Was meinst du jetzt damit? Dass ich das mit dem Haken rausnehmen in Form4 machen
    müsste / könnte / sollte oder was weiß ich??? Wenn ja kann ich nur soviel dazu
    sagen: Ich lese ja Informationen aus einer Ini-File und das habe ich halt in der
    Form1 OnCreate Methode gemacht.
    Habs jetzt aber in die Form4 OnCreate Methode verschoben.

    Danke euch allen erstmal. Lag wahrscheinlich wirklich daran, dass Form4 zu dem
    Zeitpunkt noch nicht bestand.
    Aber als ich Form4 an den Anfang der Erstellungsreihenfolge gesetzt habe, kam
    die tolle Meldung: Expected a filename!
    Naja ich habe dann mal in der Faq etc. nachgeschaut, hab aber nichts gefunden
    woran es gelegen hat, also hab ich Form4 wieder an den Schluss gepackt!

    Naja jetzt läufts auf jeden Fall erstmal korrekt.

    Also noch mal DANKESCHÖN an alle Beteiligten! 😃

    MFG Aoeke


Anmelden zum Antworten