AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Formular immer im Hintergrund

Ein Thema von Matze · begonnen am 21. Jan 2004 · letzter Beitrag vom 25. Jan 2004
Antwort Antwort
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

Formular immer im Hintergrund

  Alt 21. Jan 2004, 17:45
Hi!

Naja, ein besserer Titel ist mir nicht eingefallen.

Ich hab ein Formular, das StayOnTop ist, das den ganzen Bildschirm inkl. Taskleiste ausfüllt.

Nun möchte ich diverse Formulare starten, unter denen man wechseln kann, wobei das StayOnTop-Formular nie ganz nach vorne kommen soll.

Man muss sich das so vorstellen, als wäre das StayOnTop-Formular der Desktop und wenn man dies anklickt, darf es nicht vor die anderen Formulare kommen.

Wenn ich die anderen Forms mit ShowModal anzeige, kann ich leider nicht zwischen ihnen hin- und herwechseln. MAche ich es nur mit Show, so kann das StayOnTop-Formular nach vorne kommen.


Versteht einer mein Problem und kann mir helfen?
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#2

Re: Formular immer im Hintergrund

  Alt 21. Jan 2004, 18:03
Meinst Du so einen Effekt?

Delphi-Quellcode:
unit Unit2;

interface

uses
  Windows, Messages, Classes, Controls, Forms, Dialogs;

type
  TForm2 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
    procedure CreateParams(var Params: TCreateParams); override;
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  if Assigned(Application.MainForm) then
  begin
    Params.Style := Params.Style or WS_CHILD;
    Params.WndParent := Application.MainForm.Handle;
  end;
end;

end.
Unit1 ist in diesem Falle die MainForm...
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Formular immer im Hintergrund

  Alt 21. Jan 2004, 18:08
Danke. Ich verstehe nur nicht, was obiger Code macht?
Und dann weiß ich nicht, was für ein Paramater "Params". ist

Ich möchte einfach, dass Form1 FsStayOnTop ist vor allen anderen Fenstern fremder Programme.

Nun Kreiere ich Fenster, die Aber über Form1 erscheinen müssen und nie unter diese gelangen dürfen.
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#4

Re: Formular immer im Hintergrund

  Alt 21. Jan 2004, 20:18
CreateParam() wird vor dem Erzeugen der Form aufgerufen, um die Fenster-Attribute zu setzen.
In den Beispiel wird die vorhandene Methode überschrieben.
In neuen Methode selbst wird erstmal die überschriebene Version aufgerufen (inherited) und dann werden nachträglich die Parameter modifiziert.

Es wird WS_CHILD zum Fensterstil hinzugefügt, und als Eltern-Fenster die MainForm angegeben. Damit ist Form2 ein Kind-Fenster der MainForm und 'klebt' sozusagen auf MainForm (ergo, die MainForm kann Form2 nicht mehr überdecken).
Das gleiche müßte man für alle Formen machen, die sich so verhalten sollen...
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Formular immer im Hintergrund

  Alt 22. Jan 2004, 20:24
Oh, thx gut, dass du mir das noch sagst.
Genau sowas habe ich gesucht, gleich mal testen
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Formular immer im Hintergrund

  Alt 25. Jan 2004, 18:19
So, konnte es jetzt testen.

Ich wollte mich nur nochmal bei dir bedanken NicoDE! Es funktioniert alles.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz