Announcement

Collapse
No announcement yet.

Zugriffsverletzung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Zugriffsverletzung

    Hallo,

    ich möchte in einem Nebenformular in der Unit2 in einem Edit-Feld etwas eintragen zum Beispiel 'Hallo'
    dies soll dann nach Bestätigung
    auf den OK-Button in ein Label im Hauptformular Unit1 eingetragen werden.
    Das Nebenformular mit Unit2 soll über das Hauptmenü im Hauptformular angeklickt werden.

    Ich bekomme dabei immer Fehlermeldungen weil man vom Nebenformular nicht auf das Hauptformular zugreifen kann.

    Wenn ich beide Units jeweils in USES einbinde , funktioniert das auch nicht .
    Überkreuzender Bezug zweier Units.
    Weiss jemand wie das funktioniert ?

    Gruß

    Thomas

  • #2
    Hallo Thomas,
    setz doch die Unit2 in die Uses-Anweisung im Implementation-Teil der Unit1 und die Fehlermeldung ist weg.

    Gruß
    Richar

    Comment


    • #3
      Hallo Thomas,

      Generell solltest du überkreuzende Bezüge vermeiden. Die werden sehr schnell sehr kompliziert in größeren Projekten.

      Ich nehme mal an, dass du das Nebenformular (NF) mit ShowModal aus dem Hauptformular (HF) aufrufst.

      In diesem Fall kannst du eine simple function im public-Bereich des NF implementieren, die dir den Wert des Edit-Feldes zurück gibt.
      Diese kanns du dann nach dem ShowModal aufrufen und den zurückgegebenen Wert somit in deinem Label im HF anzeigen.

      Gruß Stefa

      Comment


      • #4
        Um die mal ein Beispiel zu geben:

        Form1
        ---------
        <pre>
        Button1.caption:=form2.execute; // Aufruf
        </pre>

        Form2
        --------
        <pre>
        function TForm2.execute: String; // Public function
        begin
        showModal;
        result:=Edit1.text;
        end;
        </pre&gt

        Comment

        Working...
        X