Announcement

Collapse
No announcement yet.

DLL und modales Form - wie richtig

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

  • DLL und modales Form - wie richtig

    Hallo,</p>
    <p>ich habe nun die verschiedensten Beitr&auml;ge hier im Forum durchgearbeitet
    und festgestellt, dass Thema ist viel komlexer als ich je vermutet hatte. Nun
    will ich in meiner Anwendung diesbez&uuml;glich einiges umstellen und habe dazu
    folgende Konstellation. Die Hauptanwendung ist ca. 3..4 MB gro&szlig; und es
    gibt dann noch einige wenige Dll's, im allgemeinen unter 1 MB. Das Dll-Konzept
    w&uuml;rde ich gern beibehalten. Die Fenster aus der DLL d&uuml;rfen alle Modal
    sein. </p>
    <p>Mein Code in der DLL sah bisher so aus:</p>
    <p><font face="Courier New, Courier, mono" size="2">procedure ShowPreview(AppsHandle:
    HWND; ...);<br>
    BEGIN<br>
    Application.Handle := AppsHandle;</font></p>
    <p><font face="Courier New, Courier, mono" size="2"> </font><font face="Courier New, Courier, mono" size="2">ProgressForm
    := TProgressForm.Create(Application);<br>
    </font><font face="Courier New, Courier, mono" size="2">ProgressForm.Show;<br>
    </font></p>
    <p><font face="Courier New, Courier, mono" size="2">Application.ProcessMessages;</font></p>
    <p><font face="Courier New, Courier, mono" size="2"> ReportForm := TReportForm.Create(Application);</font></p>
    <p><font face="Courier New, Courier, mono" size="2">TRY<br>
    ReportForm.ShowModal;<br>
    FINALLY<br>
    ReportForm.Free;<br>
    END;<br>
    ProgressForm.Free;<br>
    </font></p>
    <p><font face="Courier New, Courier, mono" size="2"> Application.Handle := 0;<br>
    <br>
    END;<br>
    </font></p>
    <p>Sinn und Zweck der Sache war, das Fenster durch die DLL verschwinden zu lassen
    und der Hauptanwendung zuzuordnen, da diverse Modale Dialoge in der DLL hinter
    dem Fenster verschwunden sind. Mit dem Setzen des Handles war der Effekt weg
    und alles verlief IO. Nun trat aber auf einem Rechner nach dem Beenden der DLL
    ein unerkl&auml;rlicher Absturz auf. Macht die Routine evtl. noch etwas, was
    so nicht richtig ist (speziell der Zugriff auf Application.Handle)?</p>
    <p>Wie k&ouml;nnte ich sonst Fenster der DLL Modal &uuml;ber die Hauptanwendung
    anzeigen?? </p>
    <p>Sch&ouml;ne Gr&uuml;&szlig;e, Mario Noack</p>
    Schöne Grüße, Mario
Working...
X