Announcement

Collapse
No announcement yet.

Problem nach Override Create Params

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

  • Problem nach Override Create Params

    Hallo, ich habe folgendes Problem.
    <br><br>
    Aus meiner Mainform heraus kann der Benutzer eine ganze Reihe an Forms aufrufen, die einen eigenen Tasklisteneintrag haben. Dies erreichte ich mit dem Überschreiben der Funktion CreateParams.<br>
    Dies funktioniert auch einwandfrei.
    <br><br>
    Wenn ich jedoch aus einer dieser Vollbild-Unterforms(U1) eine nicht-Vollbild-Unterform(U2) aufrufe, dann gibt es einen unschönen Effekt.<br>
    Denn obwohl U1 Parent von U2 ist, wird die Mainform auf den Bildschirm geholt, wenn ich U2 ShowModal aufrufe. (Der Aufruf muss Modal sein!)
    <br>
    Sobald ich die Form U2 schließe, verschwindet
    die Mainform jedoch wieder und nur die Form U1 ist zu sehen.
    <br><br>
    Das sieht natürlich nicht so toll aus.
    Was kann ich dagegen tun?

  • #2
    Ich habe etwas neues herausgefunden:<br>Bei einem Show ist immer die Mainform Parent der jeweiligen Unterform, unabhängig davon, aus welcher Form sie aufgerufen wird. <br><br>Weiß vielleicht jemand, ob und wie man das ändern kann

    Comment


    • #3
      Was denn nun BCB oder Delphi??

      Doppeltes Posting, siehe: <a href="/webx?14@@.2cb7d499/11">Jochen Reichenberg "Problem nach Create Params" 11.11.2003 13:24</a&gt

      Comment


      • #4
        Das ist (auch) das Problem, nämlich bei beiden

        Comment


        • #5
          Dann hättest Du aber darauf hinweisen sollen, daß Du das auch schon im C++ Forum gepostet hast.

          Versteh das bitte nicht falsch, das ist nicht böse gemeint. Ich möchte den Hilfswilligen nur unötige Arbeit ersparen.

          Grüße Joche

          Comment


          • #6
            Da hast du natürlich recht, hatte ich nicht bedacht

            Comment


            • #7
              Zeig mal Code

              Comment


              • #8
                Ich habe das Problem mal in einem stark vereinfachten Beispielprojekt dargestellt.
                Mehr als diesen Code benötigt man nicht.

                <PRE>
                Hauptform:

                procedure TForm1.Button1Click(Sender: TObject);
                begin
                Form2.Show;
                end;

                Form2:

                procedure TForm2.CreateParams(var Params: TCreateParams);
                begin
                inherited CreateParams(Params);
                Params.ExStyle:= Params.ExStyle or WS_EX_APPWINDOW;
                Params.WndParent := GetDesktopWindow;
                end;

                procedure TForm2.Button1Click(Sender: TObject);
                begin
                Form3.ShowModal;
                end;

                </PRE>

                Das Problem sieht man deutlich, wenn Form2 eine Vollbildform ist, Form1 und Form3 jedoch nicht

                Comment

                Working...
                X