AGB  ·  Datenschutz  ·  Impressum  







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

API DIALOGBOXPARAMW

Ein Thema von bioser · begonnen am 22. Sep 2005 · letzter Beitrag vom 23. Sep 2005
 
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

Re: API DIALOGBOXPARAMW

  Alt 23. Sep 2005, 15:19
Zitat von bioser:
Ich habe in meinem Projekt ein Hauptformular und eine unit mit der DialogBox.
In dieser unit rufe ich die Box im begin...end-Teil so auf:

DialogBoxParamW(hinstance, MAKEINTRESOURCEW(1000), 0, @dlgfunctionW, 0);

Beim Starten erscheint aber nur die DialogBox, ohne das Formular.
Für mich sah das aus wie die Deklaration der Funktion dlgfunctionW, die sich selbst wieder als Dialogprozedur übergibt.

Erzeuge deinen Dialog mit CreateDialogParamW im FormShow-Ereignis deines Hauptprogramms und teile dies der Anwendung mit, also etwa so (ungetestet):

Wird an die Eigenschaft DialogHandle etwas zugewiesen dann prüft die Anwendung in der Meldungsschleife selbst mit IsDialogMessage, ob die Meldung für den Dialog bestimmt ist.

//EDIT:

Nachgelesen:
Zitat:
Verwenden Sie DialogHandle bei der Anzeige eines nichtmodalen Dialogfeldes, das über die API-Funktion CreateDialog erzeugt wurde. Wenn Sie der Eigenschaft DialogHandle das Handle des nichtmodalen Dialogfeldes zuweisen, können im Dialogfeld Meldungen aus der Meldungsschleife der Anwendung angezeigt werden.,

Das Handle des nichtmodalen Dialogfeldes muss dann an die Eigenschaft DialogHandle übergeben werden, wenn dieses eine Aktivierungsbotschaft empfängt (WM_NCACTIVATE). Wenn das Dialogfeld eine Deaktivierungsbotschaft erhält, muss DialogHandle auf den Wert 0 gesetzt werden.
-> die Dialogprozedur erweitern um die Meldung WM_NCACTIVATE.

Delphi-Quellcode:
procedure dlgfunctionW(...);
begin
  ...
  case ... of
    ...
    WM_NCACTIVATE:
      if wParam <> 0 then
        Application.DialogHandle := hDlg
      else
        Application.DialogHandle := 0;
    ...
  end;
end;
Delphi-Quellcode:
begin
  CreateDialogParamW(...);
end.
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
 


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 01:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz