Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi simples Meldungsfenster (https://www.delphipraxis.net/80426-simples-meldungsfenster.html)

JSch 8. Nov 2006 20:27


simples Meldungsfenster
 
Hallo,

... und wieder eine Anfängerfrage:
Ich möchte, während das Hauptprogramm auf Schnittstellenaktivität wartet, ein simples Meldungsfenster ohne Buttons usw ausgeben. Dazu müßte ich die Meldung vor Eintritt in die "Warteschleife" aktivieren und sobald ein Ereignis auftritt wieder deaktivieren. Also:

...
Meldungsfenster erzeugen (z.B: "Warte auf Schnittstelle")
Ereignis abwarten
Meldungsfenster schließen
...

Wie kann ich das realisieren? Mir geht es dabei nur um das Meldungsfenster (erzeugen/schließen); das Warten funktioniert schon.

Vielen Dank für eure Hilfe.

Mfg,

JSch

Thorben_K 8. Nov 2006 20:30

Re: simples Meldungsfenster
 
vielleicht versteh ich die frage nicht ganz, aber wäre

ShowMessage net das was du suchst?

JSch 8. Nov 2006 20:38

Re: simples Meldungsfenster
 
...im Prinzip schon, aber wie entferne ich die Message wieder vom Bildschirm ohne irgendwelche Buttons anklicken zu müssen?

Nils_13 8. Nov 2006 20:40

Re: simples Meldungsfenster
 
Eine Methode wäre es, einfach das Fenster abzuknallen bzw. Enter oder Alt+F4 drücken.

Thorben_K 8. Nov 2006 20:52

Re: simples Meldungsfenster
 
oder du nimmst MessageDlg die Buttons solltest du ja auslösen können...

sonnst nimm halt nen extra formular, das kannst ja einfach schliesen ;)

JSch 8. Nov 2006 21:02

Re: simples Meldungsfenster
 
... na ja, drücken und klicken wollte ich ja eben vermeiden. Nur erschien mir ein eigenes Formular für eine simple Meldung reichlich aufwändig.

Hawkeye219 8. Nov 2006 21:17

Re: simples Meldungsfenster
 
Hallo Jsch,

als schnelle Lösung reicht vielleicht das:

Delphi-Quellcode:
// uses Forms, Dialogs

function CreateMessageWindow (const aMsg: string): TForm;
begin
  Result := CreateMessageDialog(aMsg, mtInformation, []);
  Result.BorderIcons := [];
  Result.Height := 88;
  Result.FormStyle := fsStayOnTop;
  Result.Show;
  Application.ProcessMessages;
end;

procedure Test;
var
  Dlg : TForm;
begin
  // Fenster erzeugen und anzeigen
  Dlg := CreateMessageWindow('Warte auf Schnittstelle...');
  try
    // Ereignis abwarten (hier stellvertretend ein Sleep)
    Sleep (5000);
  finally
    // Fenster schließen und freigeben
    Dlg.Release;
  end;
end;
Gruß Hawkeye

JSch 8. Nov 2006 22:29

Re: simples Meldungsfenster
 
... das sieht richtig gut aus! Werd's gleich mal ausprobieren.

Vielen Dank!!!

JSch

TBx 9. Nov 2006 09:24

Re: simples Meldungsfenster
 
@JSch: CreateMessageDialog erstellt übrigens ein Form (diese Anmerkung nur, weil Du für mich völlig unverständlicherweise geschrieben hast, dass ein Form Dir für die Anzeige einer simplen Meldung zum aufwändig wäre).
@Thorben_K: MessageDlg und Showmessage sind hier völlig ungeeignet, da das Programm bis zur nächsten Nutzeraktion (Klicken auf einen Button, Schließen des Dialogfensters) unterbrochen wird.
@Nils_13
Zitat:

Eine Methode wäre es, einfach das Fenster abzuknallen bzw. Enter oder Alt+F4 drücken.
Tastatur- bzw. Mauseingaben waren nicht gewünscht.
Und was verstehst Du unter abknallen? Wenn Du nicht zusätzliche Threads abspaltest, wird es Dir wohl kaum möglich sein, ein Showmessage programmseitig zu beenden.

Insofern dürfte also Hawkeye219s Lösung hier das beste sein.

Gruß

Thomas


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:34 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