Announcement

Collapse
No announcement yet.

MDI-Form aus DLL laden und anzeigen

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

  • MDI-Form aus DLL laden und anzeigen

    Hallo

    Ich habe eine Form in eine DLL ausgelagert und moechte sie als MDI-Form im aufrufenden Programm anzeigen.

    Fuer Tests habe ich die Form zuerst in einer Unit innerhalb des Programms definiert. Die Anzeige funktioniert einwandfrei.

    Nach dem Auslagern in eine DLL bekommt man beim Anzeigen der Form folgende Exception:
    "... EInvalidOperation ... 'Formular kann nicht erstellt werden. Zur Zeit sind keine MDI-Formulare aktiv'.

    Hier noch einige Angaben:
    - die aufrufende Form ist ein MDI-Formular (fsMDIForm)
    - die MDI-Form in der DLL hat den FormStyle = fsMDIChild
    WICHTIG: Aendert man FormStyle = fsNormal, dann funktioniert die Anzeige.

    Fuer Tips waere ich dankbar!
    Bernd

  • #2
    Ergaenzung:

    Grundsaetzlich laesst sich die Form als Child-Form oeffnen (siehe diverse Beitraege weiter unten), aber leider NICHT als richtiges MDI-Child

    Comment


    • #3
      Man muss entweder das Application-Objekt der DLL gleich dem der DLL setzten (diese hat eigenes!) - vor dem Ende vieder zurück damit nix durcheinander kommt

      - oder besser -

      eine BPL erstellen (PACKAGE) - die hat kein eigenes Applicationobjekt und nutzt das der EXE.

      Das Problem ist, dass in der DLL Application.MainForm = nil ist, daher der Fehler.

      Achtung: Version 1 funktioniert nur innerhalb einer Compiler-Version, also nicht mi D3 exe und D5 Dll oder umgekehrt

      Comment

      Working...
      X