Announcement

Collapse
No announcement yet.

Wie kann man ein Fenster dynamisch zur Laufzeit erzeugen das in der Taskbar sichtbar ist

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

  • Wie kann man ein Fenster dynamisch zur Laufzeit erzeugen das in der Taskbar sichtbar ist

    Hallo,

    kann mir jemand eine Info geben, wie ich ein Fenster erzeugen kann, welches
    zusätzlich zum Programm noch in der Taskbar angezeigt wird. Ich möchte für bestimmte Dialoge, die mehrfach geöffnet sein können, dem Anwender das auswählen in der Taskbar ermöglichen.

    Vielen dank für die Tipps.

    Danke, Stefan

  • #2
    Diese Frage wurde schon ein paar mal in diesem Forum beantwortet.

    Einfach mal nach TNA bzw. TBNA suchen

    Comment


    • #3
      Es geht nicht darum das ICON in der TBNA zu setzen nach dem
      minimieren, sondern ein neu erstelltes Fenster als "eigener" Task in
      der Taskbar anzuzeigen.

      So wie eine Fensterliste bei Word und Excel ... nur das ich mir
      die Programmierung der Fensterliste ersparen wollte und deshalb
      Windows die Verwaltung überlassen will.

      Outlook macht das z.B. so.

      Hierfür bräuchte ich Tipps, im Forum habe ich nichts gefunde

      Comment


      • #4
        Hallo,

        mit der folgenden Anweisung wird der Button aus der Taskbar entfernt:
        <pre>
        // Taskbar-Button für das eingebettete Fenster entfernen
        lStyle := GetWindowLong(Application.Handle, GWL_EXSTYLE);
        lStyle := lStyle and not WS_EX_APPWINDOW or WS_EX_TOOLWINDOW;
        SetWindowLong(Application.Handle, GWL_EXSTYLE, lStyle);
        </pre>
        Das bedeutet im Umkehrschluss, dass der Stil WS_EX_APPWINDOW den Button anzeigt

        Comment


        • #5
          Hallo,

          können Sie mir vielleicht kurz erklären wie der Aufruf aussehen muss ?

          FormNeu := TFormNeu.Create(Applicaton); <br>
          FormNeu.Show; <br>

          so dass dieses FormNeu als eigener Eintrag in der Taskbar angezeigt wird.

          Danke

          Comment


          • #6
            Ich kenne eine etwas andere Möglichkeit, die alle untergeordneten Fenster in die Taskbar anzeigt:<p>
            <code><pre>
            <font face="Courier New"><font color="#000080"><b>type</b></font>
            TForm1 <font color="#FF0000">=</font> <font color="#000080"><b>class</b></font><font color="#FF0000">(</font>TForm<font color="#FF0000">)</font>
            <font color="#000080"><b>procedure</b></font> FormCreate<font color="#FF0000">(</font>Sender<font color="#FF0000">:</font> TObject<font color="#FF0000">)</font><font color="#FF0000">;</font>
            <font color="#000080"><b>private</b></font>
            <font color="#000080"><b>procedure</b></font> CreateParams<font color="#FF0000">(</font><font color="#000080"><b>var</b></font> Params <font color="#FF0000">:</font> TCreateParams<font color="#FF0000">)</font><font color="#FF0000">;</font> <font color="#000080"><b>override</b></font><font color="#FF0000">;</font>
            <font color="#000080"><b>end</b></font><font color="#FF0000">;</font>

            <font color="#000080"><b>var</b></font>
            Form1 <font color="#FF0000">:</font> TForm1<font color="#FF0000">;</font>

            <font color="#000080"><b>implementation</b></font>

            <font color="#008000"><i>{$R *.DFM}</i></font>

            <font color="#000080"><b>procedure</b></font> TForm1<font color="#FF0000">.</font>CreateParams<font color="#FF0000">(</font><font color="#000080"><b>var</b></font> Params <font color="#FF0000">:</font> TCreateParams<font color="#FF0000">)</font><font color="#FF0000">;</font>
            <font color="#000080"><b>begin</b></font>
            <font color="#000080"><b>inherited</b></font> CreateParams<font color="#FF0000">(</font>Params<font color="#FF0000">)</font><font color="#FF0000">;</font>
            Params<font color="#FF0000">.</font>WndParent <font color="#FF0000">:=</font> GetDesktopWindow<font color="#FF0000">;</font>
            Params<font color="#FF0000">.</font>Caption<font color="#FF0000">:=</font><b>'Title'</b><font color="#FF0000">;</font>
            <font color="#000080"><b>end</b></font><font color="#FF0000">;</font></font>
            </pre></code><p>
            Gruß,<br>
            Bernhar

            Comment


            • #7
              Danke, hat super geklappt.

              Gruß Stefan.

              PS. Hast du vielleicht Erfahrung mit ADO

              Comment


              • #8
                Eine Frage noch.

                Wenn ich aus dieser Form jetzt eine andere Form Modal anzeige,
                wird diese darunter versteckt.

                Wenn ich die Eigenschaft von fsStayOnTop auf Normal setze, kann
                ich die Form nachdem Sie minimiert wurde, nicht mehr vor die
                MainForm bringen.

                Hast du vielleicht einen Tip

                Comment


                • #9
                  Hallo,

                  ich habe jetzt die Methode von Herrn Kosch probiert und siehe da
                  es funktioniert. Wahrscheinlich weil da der Parent nicht das Desktop
                  Window ist.

                  Trotzdem herzlichen Dank für dein Tipp Bernhard, weil ohne den hätte
                  ich nie gewußt wo die Funktion von Herrn Kosch eingefügt werden muss.

                  Mein Dank an beide.

                  Stefa

                  Comment

                  Working...
                  X