AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi bei GWL_HWNDPARENT wird MessageDlg im falschen Fenster angez
Thema durchsuchen
Ansicht
Themen-Optionen

bei GWL_HWNDPARENT wird MessageDlg im falschen Fenster angez

Ein Thema von vsti · begonnen am 19. Okt 2005 · letzter Beitrag vom 19. Okt 2005
Antwort Antwort
Benutzerbild von vsti
vsti

Registriert seit: 20. Sep 2004
Ort: Syke
70 Beiträge
 
Delphi 2005 Architect
 
#1

bei GWL_HWNDPARENT wird MessageDlg im falschen Fenster angez

  Alt 19. Okt 2005, 10:09
Moin,

sehr schön habe ich hier schon erfahren, dass ich mit

SetWindowLong(Handle, GWL_HWNDPARENT, 0); eine Form als zusätzlichen Eintrag in der Taskleiste anzeigen lassen kann.
Klasse Sache, nur jetzt fällt eines auf, das ich noch gerne behoben haben würde.

Wenn ich jetzt im neuen Formular (das, das zusätzlich in der Taskleiste erscheint) nen MessageDlg ausführe, wir dieser im Haupt-Fenster ausgeführt und das neue Formular ist nicht mehr sichtbar, bis man den MessageDlg wieder schließt...

Wie kann ich dem Formular die Eigenschaft geben, dass alle folgenden Fenster (z.B. MessageDlg, Form3.show...) in diesem Formular ausgeführt werden und nicht im Haupt-Fenster?
Thorsten
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#2

Re: bei GWL_HWNDPARENT wird MessageDlg im falschen Fenster a

  Alt 19. Okt 2005, 10:26
Zitat von vsti:
Moin,

sehr schön habe ich hier schon erfahren, dass ich mit

SetWindowLong(Handle, GWL_HWNDPARENT, 0); eine Form als zusätzlichen Eintrag in der Taskleiste anzeigen lassen kann.
[...]
Das wird nur zu diversen unerwünschten Nebenwirkungen führen. Das Erzwingen eines Eintrags in der Taskbar wird durch den erweiterten Fensterstil WS_EX_APPWINDOW erreicht. Um das Flag hinzuzufügen sollte man die CreateParams des Fensters überschreiben:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Classes, Controls, Forms;

type
  TForm1 = class(TForm)
  protected
    procedure CreateParams(var Params: TCreateParams); override;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  // Force a Taskbar entry by adding WS_EX_APPWINDOW to the extended style
  Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
end;

end.
  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 10:59 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