AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Prism Dialogfenster bei click auserhalb des Fensters schließen
Thema durchsuchen
Ansicht
Themen-Optionen

Dialogfenster bei click auserhalb des Fensters schließen

Ein Thema von Taladan · begonnen am 19. Jul 2005 · letzter Beitrag vom 20. Jul 2005
Antwort Antwort
Benutzerbild von Taladan
Taladan

Registriert seit: 5. Aug 2003
Ort: Osnabrück
505 Beiträge
 
Delphi 2005 Professional
 
#1

Dialogfenster bei click auserhalb des Fensters schließen

  Alt 19. Jul 2005, 23:33
Hallo. Ich habe ein Dialogfeld, was eigendlich mehr nur ne bessere Eingabebox ist, welches Modal geöffnet wird. also per winform.showdialog. Nun möchte ich gern dieses Fenster schließen, falls man NICHT auf das Fenster oder seinen Inhalt clickt, also irgendwo auserhalb. Also wenn Windows dieses "Ding" per Sound ausgibt. Ist das möglich?
Marco
Wer Rechtschreibfehler findet, der darf sie behalten

Carpe Diem - Nutze den Tag (und zwar den ganzen!)
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#2

Re: Dialogfenster bei click auserhalb des Fensters schließen

  Alt 19. Jul 2005, 23:36
Nichts ist unmöglich. Nur leider mußt du, um einen Klick außerhalb deines Fensters zu registrieren a.) die Maus fangen (Mouse Capturing) oder b.) einen globalen Hook installieren.

An deiner Stelle würde ich lieber auf WM_KILLFOCUS reagieren. Will heißen, wenn ein anderes Fenster als deines aktiviert wird und deins damit den Fokus verliert, schließt du deins.

Wenn jetzt einer kommt und sagt, es sei doch Delphi.NET, jage ich euch Luckie oder Alci mit der Trollklatsche auf den Hals! Natürlich ist es das. Aber .NET ist ja nur ein Wrapper um die Win32-API! (Zumindest bei den Forms usw.)
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#3

Re: Dialogfenster bei click auserhalb des Fensters schließen

  Alt 20. Jul 2005, 05:55
Bei einer mit ShowModal gezeigten Form geht das nicht.
Es geht aber mit Show und dann das Deactivate der TForm ueberschreiben.
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#4

Re: Dialogfenster bei click auserhalb des Fensters schließen

  Alt 20. Jul 2005, 09:37
Zitat von Robert Marquardt:
Bei einer mit ShowModal gezeigten Form geht das nicht.
Ah, verstehe, wenn zB ein Fenster App-Modal oder Sys-Modal angezeigt wird, und zB die App den ganzen Workspace belegt, dann kann kein anderes Fenster aktiviert und damit das modale nicht deaktiviert werden. Hatte auch erst etwa ungläubig geguckt. Aber hast recht ... dann bliebe noch der globale Hook *rofl*
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#5

Re: Dialogfenster bei click auserhalb des Fensters schließen

  Alt 20. Jul 2005, 10:41
Nein, bei ShowModal ist es schwer bis unmoeglich die Maus zu fangen.
Man setzt stattdessen den OnDeactivate-Event oder leitet eine Klasse ab und ueberschreibt Deactivate.
Jedesmal wenn man eine Form per Klick oder sonstwie verlaesst, so bekommt man ein OnDeactivate.
Dort macht man einfach ein Close der Form. Damit erhaelt man genau das gewuenschte Ergebnis.

Ich habe das genutzt um fuer einen Auftrag einen kleinen Popup-Editor zu realisieren.
  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 03:31 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