Announcement

Collapse
No announcement yet.

Delphiform in der Taskleiste verstecken

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

  • Delphiform in der Taskleiste verstecken

    Hallo zusammen,
    <br>
    ich habe ein Problem mit einem Delphi-Form. Wenn ich aus meinem Hauptprogramm (C++) das Formular in der DLL lade (Delphi) erscheint es in der Taskleiste. Mit C++ erstellte DLL's machen das nicht. Wie kann ich das Formular aus der TaskBar löschen. Es geht sogar soweit, dass beim öffnen des Menüs in der Delphi-DLL auch ein Fenster in der Taskbar angezeigt wird.
    <br><br>
    <b>Zu Funktion:</b><br>
    Ich rufe eine Funktion in der DLL auf, die mir das Fenster einblendet. Ich hole mir nicht das Fenster aus der DLL!
    <br><br>
    <b>Vielen Dank für Euere Hilfe</b>
    <br>
    Klaus

  • #2
    Hallo,

    in Windows legt der Fensterstil aus der Fensterklasse das Erscheinungsbild fest. Wenn die Delphi-Voreinstellung unerwünscht ist, muss die von TForm geerbte Methode <b>CreateParams</b> überschrieben werden, damit der Fensterstil vor dem Erzeugen des Fensters entsprechend angepasst wird:

    <pre>
    <b>type</b>
    TFormXYZ = <b>class</b>(TForm)
    <b>procedure</b> CreateParams(<b>var</b> Params: TCreateParams); <b>override</b>;
    <b>private</b>
    <font color="#003399"><i>{ Private-Deklarationen }</i></font>
    <b>public</b>
    <font color="#003399"><i>{ Public-Deklarationen }</i></font>
    <b>end</b>;
    </pre>

    Wenn zum Beispiel das Formular aus der Delphi-DLL als Childfenster in das eigene Fenster eingeblendet werden soll, kann man folgendes machen:
    <pre>
    <b>procedure</b> TFormXYZCreateParams(<b>var</b> Params: TCreateParams);
    <b>begin</b>
    <b>inherited</b> CreateParams(Params);
    <b>with</b> Params <b>do</b>
    <b>begin</b>
    Style := WS_CHILD <b>or</b> WS_VISIBLE;
    WndParent := hParent;
    <b>end</b>;
    <b>end</b>;
    </pre&gt

    Comment


    • #3
      Hallo,
      <br>
      danke für den Tipp. Bis auf das <I>or</I> hat alles geklappt. Ich habe das <I>or</I> in ein <I>and</I> geändert. Jetzt sieht das Ganze schon besser aus.<br>
      Mir fehlt jetzt nur noch die Titelleiste also die Buttons da drin. Das bekomm ich aber schon hin.<br>
      Nochmal Danke<br>
      <br>
      Gruß<br>
      Klau

      Comment

      Working...
      X