AGB  ·  Datenschutz  ·  Impressum  







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

Wie Dialogs.CreateMessageDialog abfangen

Ein Thema von QuickAndDirty · begonnen am 19. Aug 2022 · letzter Beitrag vom 19. Aug 2022
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.542 Beiträge
 
Delphi 12 Athens
 
#1

AW: Wie Dialogs.CreateMessageDialog abfangen

  Alt 19. Aug 2022, 19:27
Indirekt doch.
VCL-Dialoge stehen in Screen.Forms und dort sollte es der Neuste sein, bzw. soooo viel sollte dort auch nicht existieren.

Aber da das Zeug eh aus dem Service raus gehört, kannst dort schön eine Exception werfen und den Dialog abbrechen.
Der Code wo es dann knallt ... der gehört letztendlich repariert.



Man könnte vielleicht auch noch in TApplicationEvents.OnMessage auf sowas wie WM_SHOWWINDOW und vielleicht WM_CREATE reagieren.
Delphi-Referenz durchsuchenFindControl Delphi-Referenz durchsuchenIsVCLControl


Zitat:
Wenn ich es auf FALSE setze dann würden immer die "zufuss"-Dialoge genutzt werden oder?
Jupp.

Die ganz neuen TaskDialog-APIs bieten nun auch eine Übersetzung,
aber das CreateMessageDialog und Co. haben einen Vorteil ... es sind da drauf z.B. VCL-Buttons, bei denen man schön die Captions ändern kann, ohne sich nicht komplett selbst um den Dialog kümmern zu müssen.
bzw. es lassen sich leicht weitere VCL-Controls draufpappen.



Bei uns hab ich nun die letzten 3 Windows 7 entsorgt. (das eine Windows 7 Embedded ... da ist das Display kaputt und es hat sich leider selbst disqualifiziert )
PS: Selbst die ersten Versionen von Windows 10 sind bereits "offiziell" tot.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (19. Aug 2022 um 19:43 Uhr)
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
2.056 Beiträge
 
Delphi 12 Athens
 
#2

AW: Wie Dialogs.CreateMessageDialog abfangen

  Alt 19. Aug 2022, 22:39
Indirekt doch.
VCL-Dialoge stehen in Screen.Forms und dort sollte es der Neuste sein, bzw. soooo viel sollte dort auch nicht existieren.

Aber da das Zeug eh aus dem Service raus gehört, kannst dort schön eine Exception werfen und den Dialog abbrechen.
Der Code wo es dann knallt ... der gehört letztendlich repariert.



Man könnte vielleicht auch noch in TApplicationEvents.OnMessage auf sowas wie WM_SHOWWINDOW und vielleicht WM_CREATE reagieren.
Delphi-Referenz durchsuchenFindControl Delphi-Referenz durchsuchenIsVCLControl


Zitat:
Wenn ich es auf FALSE setze dann würden immer die "zufuss"-Dialoge genutzt werden oder?
Jupp.

Die ganz neuen TaskDialog-APIs bieten nun auch eine Übersetzung,
aber das CreateMessageDialog und Co. haben einen Vorteil ... es sind da drauf z.B. VCL-Buttons, bei denen man schön die Captions ändern kann, ohne sich nicht komplett selbst um den Dialog kümmern zu müssen.
bzw. es lassen sich leicht weitere VCL-Controls draufpappen.



Bei uns hab ich nun die letzten 3 Windows 7 entsorgt. (das eine Windows 7 Embedded ... da ist das Display kaputt und es hat sich leider selbst disqualifiziert )
PS: Selbst die ersten Versionen von Windows 10 sind bereits "offiziell" tot.
Wir beide wissen, dass technical debt sucked und man sich davon befreien sollte.
Dieser Befreiungschlag, konvertierug zu unicode und Delphi XE 10.3, ist auch geplant, sobald ich mit einem anderen Projekt an dem ich sitze und das immer größer wird , fertig bin.

Da es ja nur um das verhindern der Dialoge für den Dienst, der auch als Desktop tray Anwendung laufen kann, geht es ja erstmal wenn ich die Messageboxen verhindere.
Andreas
Nobody goes there anymore. It's too crowded!
  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 04:37 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