Minimalizowanie formy wraz z aplikacja

0

Cześć,
mam mały problem a nie bardzo wiem jak sobie z nim poradzic.

W swojej aplikacji tworze nowe okno przez:

Okno:=TForm.Create(Application);
Okno.Show;

Problem w tym, że kiedy np minimalizuje główne okno aplikacji to to stworzone również się minimalizuje.

Co zrobić żeby było ono jakby niezależne od głównego okna aplikacji i nie minimalizowało się kiedy minimalizuje główne?
Musze sie tutaj pobawic z WindowState? Nie mam pojecia:) Prosze o pomoc.

2
unit Unit2;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Windows, LCLType;

type

  { TForm2 }

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

var
  Form2: TForm2;

implementation

{$R *.lfm}

{ TForm2 }

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

end. 
0

@karpov, z innej beczki - dlaczego chcesz tak to wykonać?

Ogólnym założeniem głównego okna aplikacji jest to, że jego zminimalizowanie powoduje także minimalizację (raczej ukrycie) wszystkich widocznych okien potomnych; Najlepszym przykładem jest sam Lazarus (jako edytor) - główne okno to to wąskie z menu, jak je zminimalizujesz to wszystkie okna potomne (edytory kodu, okno OI, designery, messages, watches itd.) chowają się i jest to jak najbardziej prawidłowe zachowanie;

Pytam, dlatego że takiego zachowania oczekują użytkownicy i mogą być zirytowani, jeśli główne okno będzie się dziwnie zachowywało (niestandardowo); Napisz jaki jest tego cel i jakie widzisz w tym zalety.

0

Moja aplikacja wygląda tak, że w głównym oknie aplikacji wyświetlane są różne opcje, które może wybrać klient. Po wyborze jednej z opcji (na zasadzie komunikacji sieciowej) pojawia się nowe okno z otrzymanymi od serwera szczegółami wybranej opcji oraz jeszcze jedno, w którym odbywa się komunikacja oraz interakcja z klientem.

W zasadzie od tego momentu to okno jest najważniejsze do zakończenia działa przez klienta. Chcą sobie zrobić miejsce na ekranie albo po prostu móc skupić się na zadaniu klient może chcieć zostawić sobie tylko to okno ale zminimalizowanie tamtych sprawia, że to najważniejsze również znika.

Oczywiście mogę dodać możliwość wyboru dla klienta w ustawieniach ale sam testując aplikację zauważyłem, że odruchowo i naturalnie oczekiwałem takiej reakcji programu przy minimalizowaniu głównego okna.

0

@furious programming u mnie jest podobnie. Okno główne daje możliwość wybrania operatorowi zadania z którego parametry przekazywane są do właściwego okna na którym pracują operatorzy. Do tego jest druga niezależna aplikacja do analizy sygnału która odbiera/wysyła informacje z i do tego okna "potomnego" tryb pracy jest taki, że main formy operatorzy minimalizują okno na którym pracują mają na jednym monitorze, a na drugim monitorze jest druga aplikacja "obrazująca" wynik pracy okna potomnego :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1