Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Form2 immer im Vordergrund - warum?


galagher - Sa 23.03.13 10:34
Titel: Form2 immer im Vordergrund - warum?
Hallo!

Ich habe zwei Forms, Form1 und Form2. Form2 wird im OnShow von Form1 angezeigt. Ich möchte nun, dass jene Form in den Vordergrund kommt, die angeklickt wird. Es ist aber stest Form2 im Vordergrund!
Egal, ob ich BringToFront oder SendToBack verwende, es bleibt immer Form2 im Vordergrund. Auch die Einstellung FormStyle hat darauf keine Auswirkung! Was kann ich da machen?

lg
galagher


bummi - Sa 23.03.13 11:19

Du kannst die CreateParams von Form2 überschreiben


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
type
  TForm4 = class(TForm)
  private
    { Private-Deklarationen }
  public
    procedure CreateParams(var Params: TCreateParams);override;

    { Public-Deklarationen }
  end;

var
  Form4: TForm4;

implementation

{$R *.dfm}

procedure TForm4.CreateParams(VAR Params: TCreateParams);
begin
  Inherited CreateParams(Params);
  WITH Params DO
    begin
    WndParent := 0;
    end;
 end;


oder im Projekt

Delphi-Quelltext
1:
Application.MainFormOnTaskbar := True; // ändern auf false                    


Andreas L. - Sa 23.03.13 13:30

Wie zeigst du Form2 an? ggf. Show statt ShowModal verwenden...


galagher - Sa 23.03.13 19:40

user profile iconAndreas L. hat folgendes geschrieben Zum zitierten Posting springen:
Wie zeigst du Form2 an? ggf. Show statt ShowModal verwenden...
Das ist es ja eben: Ich zeige es mit Show an! Mit zwei anderen leeren Fenstern, die ich zu Testzwecken erstellt habe, klappt es, es muss also irgendwo am Code liegen.


Tranx - Sa 23.03.13 19:53

Ganz banale Frage: Welche Eintragung steht bei der Eigenschaft Formstyle des Form2?

fsStayOnTop?

Danm setze es doch auf fsNormal.


galagher - Sa 23.03.13 21:06

user profile iconTranx hat folgendes geschrieben Zum zitierten Posting springen:
Ganz banale Frage: Welche Eintragung steht bei der Eigenschaft Formstyle des Form2?

fsStayOnTop?

Danm setze es doch auf fsNormal.
Alles schon erfolglos durchprobiert, allerdings nicht in allen möglichen Kombinationen.

user profile iconbummi hat folgendes geschrieben Zum zitierten Posting springen:
Du kannst die CreateParams von Form2 überschreiben
Das funktioniert, danke!


galagher - Sa 23.03.13 21:13

user profile icongalagher hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconTranx hat folgendes geschrieben Zum zitierten Posting springen:
Ganz banale Frage: Welche Eintragung steht bei der Eigenschaft Formstyle des Form2?

fsStayOnTop?

Danm setze es doch auf fsNormal.
Alles schon erfolglos durchprobiert, allerdings nicht in allen möglichen Kombinationen.

user profile iconbummi hat folgendes geschrieben Zum zitierten Posting springen:
Du kannst die CreateParams von Form2 überschreiben
Das funktioniert, danke!


//Edit:
Soeben schaue ich genauer auf die Taskleiste und sehe da zwei Symbole! Mein Programm wird mit zwei Icons, eins für jedes Fenster, angezeigt? :nut: Ist das unter Windows 7 normal?
//Edit:
Weiss schon, liegt am Code von user profile iconbummi. Mal sehen ob ich das weg bekomme!

//Edit:
Es lag an SetBounds im Create! Wenn ich das ins FormShow setze, funktioniert es. Hat dafür jemand eine Erklärung?
Es funktioniert zwar mit user profile iconbummi's Code, aber die zwei Taskbuttons bleiben. Wie bekomme ich eines davon weg?