![]() |
Delphi-Version: 2010
MessageDialog-Text nach Erzeugen ändern
Guten Abend!
Gibt es eine Möglichkeit, einen MessageDialog-Text zu ändern, NACHDEM die Nachricht bereits erzeugt wurde? Bisher habe ich folgendes:
Code:
Wie oben zu sehen wird eine Message erzeugt und ausgegeben. Ich möchte während der Laufzeit dann den Text dieser Nachricht ändern. Ist das möglich oder muss ich mir selbst ein Nachrichtenfenster über ein eigenes Formular basteln?
function ErzeugeNachrichtenfenster(const aMsg: string): TForm;
begin Result := CreateMessageDialog(aMsg, mtInformation, []); Result.BorderIcons := []; Result.Height := 80; Result.FormStyle := fsStayOnTop; Result.Show; Application.ProcessMessages; end; procedure TFoMain.FormShow(Sender: TObject); var Dlg : TForm; begin // Warte-Fenster anzeigen Dlg := ErzeugeNachrichtenfenster('Lade Personendaten vom Server...'); try { (Hier werden verschiedene Dateien herunter geladen.) -> Ich möchte darum dem Nutzer mitteilen, welche das sind und würde dazu gern den Text der Nachricht merhfach ändern. } finally // Warte-Fenster schließen und freigeben Dlg.Release; end; Gruß, Thorsten |
AW: MessageDialog-Text nach Erzeugen ändern
Du könntest mit dem Handle des Fenster und der Windows Message
![]() |
AW: MessageDialog-Text nach Erzeugen ändern
CreateMessageDialog erstellt ein Delphi-VCL-Formular und da kann man natürlich alles direkt ändern, wie man will.
Dafür muß man nicht erst über die WinAPI gehn. Vorallem, an was soll er denn den Text senden? Dafür müßte man erstmal daas Handle des Label (oder was zur Anzeige verwendet wird) finden. Und VCL-Componenten haben standardmäßig keine feste Dialog-ID, welche man verwenden könnte. Da aber die interne TMessageForm nicht öffentlich ist: - Dlg.Components nach einem TLabel durchsuchen - diesem den neuen Text zuweisen Aber bedenke, daß die Größe der Form nicht automatisch an den neuen Text angepaßt werden. Tipp: Die alten Doalog freigeben und einfach einen Neuen erstellen. :stupid: (oder erst erstellen und danach freibegen) |
AW: MessageDialog-Text nach Erzeugen ändern
Alles klar. Vielen Dank!
|
AW: MessageDialog-Text nach Erzeugen ändern
Ich hätte es beinah vergessen, aber die WinAPI kann man hier sowieso vergessen.
Denn ein TLabel hat kein Handle, da es keine eigenständige Windows-Komponente darstellt. Das Windows-Label (STATIC) ist ![]() |
AW: MessageDialog-Text nach Erzeugen ändern
Mein Avast randaliert bei Luckies
![]() zu Unrecht sehr heftig :evil: GG |
AW: MessageDialog-Text nach Erzeugen ändern
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Dafür habe ich mir in einigen Programmen einfach ein TPanel auf die Form gelegt, Visible auf FALSE gestellt und zeige bei Bedarf dieses TPanel anstatt einer MessageBox an. Am geschicktesten ist es, die anderen visuellen Komponenten auf einem anderen Panel (wenn du nicht sowieso bereits ein PageControl oder ähnliches verwendest) zu platzieren (Align := alClient), weil man so einfach mit Enabled := false dieses Panel so lange stillegen kann, wie die Aktion dauert. |
AW: MessageDialog-Text nach Erzeugen ändern
Zitat:
Leider wird viel Schadsoftware in Delphi geschrieben, so daß einige Virenscanner immer mal wieder ein bissl zu heftig reagieren und zuviel erkennen, da sie eine zu schlechte lasche Virensignatur benutzen. Gibt genügend Threads im Forum, bzw der Fehlererkennung (vorallem bei ![]() ![]() |
AW: MessageDialog-Text nach Erzeugen ändern
@himitsu: Beim Herunterladen der zip-Datei wird die Demoechse darin als Malware klassifiziert.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:05 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