AGB  ·  Datenschutz  ·  Impressum  







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

showmessage

Ein Thema von jangbu · begonnen am 11. Sep 2017 · letzter Beitrag vom 12. Sep 2017
Antwort Antwort
jangbu

Registriert seit: 6. Apr 2006
171 Beiträge
 
Delphi 10.3 Rio
 
#1

showmessage

  Alt 11. Sep 2017, 16:06
Hallo, kann ich ermitteln ob eine Showmessage sichtbar ist.
Ich lese von einer seriellen Schnittstelle Daten ein. Die Daten werden automatisch gesendet und sollen aber nur
ausgelesen werden, wenn diese tatsächlich angfordert wurden also z.b. wenn der Benutzer vorher (shomessage)
aufgefordert wurde den Transfer anzustoßen. Auf der COM-Schnittstelle kommen immer wieder merkwürdige nicht bewusst
gesendetet Daten an.
Wie kann ich eine aktive Message abfragen?
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: showmessage

  Alt 11. Sep 2017, 16:09
ShowMessage "hält" den Code quasi an. D.h. nach dem ShowMessage('...'); kannst du eine Variable auf true/false setzen o.ä. um dir zu merken ob die Message schon weggeklickt wurde oder nicht.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.051 Beiträge
 
Delphi 2009 Professional
 
#3

AW: showmessage

  Alt 11. Sep 2017, 21:58
Möglicherweise hat OP auch ein Problem mit Threading, das geht aus seinem Post nicht hervor. Wie Neutral General schon sagte, braucht man bei einem einzigen Thread nicht prüfen, ob Showmessage da ist, denn während Showmessage da ist, läuft das Programm nicht weiter.
Anders ist es, wenn man einen weiteren Thread hat. Hier kann man ein Boolean auf True setzen, bevor man die Nachricht anzeigt, und es danach wieder auf False setzen.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
jangbu

Registriert seit: 6. Apr 2006
171 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: showmessage

  Alt 12. Sep 2017, 08:29
Genau, die COM-Schnittstelle wird in einem separaten Thread abgefragt und der wartet nicht bis die Message bestätigt wurde.
Ich werde bei ShowMessage eine Variable setzen. Aber trotzdem: kann man die existenz einer Message abfragen?
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.890 Beiträge
 
Delphi 12 Athens
 
#5

AW: showmessage

  Alt 12. Sep 2017, 09:12
Ein ShowMessage öffnet ein Modales Fenster. Das Vorhandensein aktiver modaler Fenster kannst Du über Application.ModalLevel abfragen.
Ein Wert > 0 bedeutet, dass ein Modales Fenster aktiv ist.
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: showmessage

  Alt 12. Sep 2017, 10:32
Verwende doch einfach die Windows-Funktion MessageBox und frage das Klickergebnis (Rückgabewert ab):

Delphi-Quellcode:
var
  DialogBoxType: UINT;
  ModalResult: TModalResult;
begin
  DialogBoxType := 0; // OK button only;
  ModalResult := MessageBox(Application.Handle, 'Hello', 'World', DialogBoxType);
  if IsPositiveResult(ModalResult) then
  begin
    // mach hier deinen Kram!
    raise EProgrammerNotFound.Create('Möp');
  end;
end;
https://msdn.microsoft.com/de-de/lib...(v=vs.71).aspx
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: showmessage

  Alt 12. Sep 2017, 10:47
Da hier auch MessageBox erwähnt wurde.

Application.ModalLevel betrifft nur die modalen VCL-Formulare, welche auf TCustomForm aufbauen
und für gekapselte Windows-APIs, wo dieser Wert ebenfalls gesetzt wird (Application.ModalStarted und Application.ModalFinished).

Eine MessageBox ist ein direkter WinAPI-Aufruf, der zwar sowas wie einen modalen Dialog anzeigt, aber ohne dass ModalLevel darauf reagiert.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  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 06:43 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