Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - showmessage ohne programmunterbruch...
Fighti - Mo 19.12.05 15:46
Titel: showmessage ohne programmunterbruch...
Hallo
ich habe ein problem mit showmessage. denn ich habe eine applikation in der eine meldung ausgegeben werden soll ohne dass das programm blockiert wird. (also dass es im hintergrund weiterläuft)
kann mir da jemand weiter helfen?
Danke!
gruss fighti
Seraph - Mo 19.12.05 15:49
Ja die Lösung liegt auf der Hand:
Erstelle eine neue Form, die den gewünschten Text in einem Label ausgiebt!
Die andere Form wird weiter ausgeführt, wenn du nix änderst! :wink:
Seraph
toms - Mo 19.12.05 15:51
oder mit CreateMessageDialog(...).Show
Fighti - Mo 19.12.05 16:28
nun ja, gibt es keine variante bei der man kein neues form erstellen muss....
und CreateMessageDialog funktioniert zwra, aber wenn man auf dem ok button clickt schliesst sich die meldung nicht mehr...
Stefan.Buchholtz - Mo 19.12.05 16:35
Ja klar, normalerweise setzt der OK-Button einfach ModalResult auf mrOK. Da das Fenster aber nicht modal ist, hat das keine Auswirkungen. Der OK-Button muss einfach Close aufrufen.
Stefan
Fighti - Mo 19.12.05 17:05
@Stefan.Buchholtz
und wie mach ich das?
UGrohne - Mo 19.12.05 21:53
Fighti hat folgendes geschrieben: |
@Stefan.Buchholtz
und wie mach ich das? |
So wie man immer Ereignis-Behandlungsroutingen schreibt. Doppelt draufklicken und
Close; reinschreiben :roll:
Seraph - Di 20.12.05 09:19
Also ich weiß garnicht, was du für ein Problem mit dem Selberbauen einer MessageBox hast?!?
Die Arbeit ist echt minimal:
1. Du erstellst ein neues Formular unter Datei\Neu >\Formular
2. Du setzt auf das neue Formular (nennen wir es Form2) ein Label (label1)
und einen Button (Button1)
3. Design anpassen...
4. In der Form, von dem die MessageBox aufgerufen werden soll, musst du
Form2 "includen":
oben bei uses
Delphi-Quelltext
1: 2: 3:
| uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Dialogs, Controls, Forms, StdCtrls, Form2; |
5. Du musst eine Funktion in der Form erstellen, von der aus du die MessageBox
aufrufen willst! Die kann so aussehen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| function SelfmMessageBox(MessageText: String; MessageCaption:String):String; begin with Form2 do begin Caption := MessageCaption; Label1.Caption := MessageText; Show(); end; end; |
6. Jetzt benötigst du noch einen Funktionsaufruf, den machst du in dem Event,
in dem die Box aufgerufen wird! Beispielsweise so:
Delphi-Quelltext
1: 2: 3: 4:
| procedure TForm1.Button1Click(Sender: TObject); begin SelfmMessageBox('Sie haben eine Messagebox gebaut!', 'MessageBox'); end; |
7. Am Schluss musst du natürlich noch dran denken, dass sich die MessageBox
bei einem Click auf den Button1 wieder schliesst!
Delphi-Quelltext
1: 2: 3: 4:
| procedure TForm2.Button1Click(Sender: TObject); begin Close; end; |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!