Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - aus taskleiste raus UND nicht minimierbar solls sein


Beibo - Mo 06.10.08 14:05
Titel: aus taskleiste raus UND nicht minimierbar solls sein
moin,
ich also anfänger hab nen problem.
mein programm soll NICHT in der taskleiste erscheinen, erreich ich durch befehl:
ShowWindow(Application.Handle, SW_HIDE);
und das klappt auch, BIS ich folgende sache eingefügt habe, um zu verhindern, dass das programm per "windows+m" bzw. "windows+d" minimiert werden kann.
(by the way, wo liegt eigentlich der unterschied zwischen diesen zwei befehlen?)


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:
26:
27:
  private
    { Private-Deklarationen }
  protected
    procedure CreateParams(var Params: TCreateParams); override
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}




procedure TForm1.CreateParams(var Params: TCreateParams);
begin
  inherited;
  // Flags setzen
  Params.Style     := Params.Style or WS_OVERLAPPED;

  // Parent auf "Desktop" setzen
  Params.WndParent := GetDesktopWindow;             
end;



jetzt funktioniert zwar die zweite sache, aber dafür hab ich das proggi wieder in der taskleiste.


versteht ihr mein problem?
gruß und danke
benedikt


jaenicke - Mo 06.10.08 14:22

Der Unterschied dürfte sein, dass einmal alle Fenster minimiert werden und einmal der Desktop angezeigt wird, was vermutlich auch Dialogfelder verschwinden lässt.

Was passiert denn jetzt bei dem ShowWindow-Befehl? Nichts? Hast du mal versucht auch das Handle deines Formulars zum Verstecken anzugeben und nicht nur das des versteckten Application-Fensters? Schließlich veränderst du ja die Parameter deines Fensters.


Beibo - Mo 06.10.08 18:59

was mit dem befehl wirklich passiert weiß ich nicht, jedenfalls bewirkt er nicht mehr das, was er einmal bewirkt hat! so wie es aussieht, bewirkt er gar nichts!

du sprichst für mich schon sehr hoch, ich kenne mich ehrlich gesagt mit "handle" nicht aus, könntest du das ein wenig erläutern, oder führt das schon zu weit?
gruß und danke