AGB  ·  Datenschutz  ·  Impressum  







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

MessageDialog-Text nach Erzeugen ändern

Ein Thema von ThorZten · begonnen am 17. Apr 2012 · letzter Beitrag vom 18. Apr 2012
Antwort Antwort
ThorZten
(Gast)

n/a Beiträge
 
#1

MessageDialog-Text nach Erzeugen ändern

  Alt 17. Apr 2012, 22:10
Delphi-Version: 2010
Guten Abend!
Gibt es eine Möglichkeit, einen MessageDialog-Text zu ändern, NACHDEM die Nachricht bereits erzeugt wurde?
Bisher habe ich folgendes:

Code:
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;
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?

Gruß,
Thorsten

Geändert von ThorZten (17. Apr 2012 um 22:14 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: MessageDialog-Text nach Erzeugen ändern

  Alt 17. Apr 2012, 22:30
Du könntest mit dem Handle des Fenster und der Windows Message MSDN-Library durchsuchenWM_SETTEXT den Text ändern.
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: MessageDialog-Text nach Erzeugen ändern

  Alt 17. Apr 2012, 22:55
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. (oder erst erstellen und danach freibegen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (17. Apr 2012 um 23:02 Uhr)
  Mit Zitat antworten Zitat
ThorZten
(Gast)

n/a Beiträge
 
#4

AW: MessageDialog-Text nach Erzeugen ändern

  Alt 17. Apr 2012, 23:53
Alles klar. Vielen Dank!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: MessageDialog-Text nach Erzeugen ändern

  Alt 18. Apr 2012, 00:09
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 Delphi-Referenz durchsuchenTStaticText und das Ding verwendet fast Keiner (in Delphi), aber dieses hätte dann ein HWND.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Gustav.R
(Gast)

n/a Beiträge
 
#6

AW: MessageDialog-Text nach Erzeugen ändern

  Alt 18. Apr 2012, 00:51
Mein Avast randaliert bei Luckies

http://www.michael-puff.de/Programmi...imedMsgBox.zip

zu Unrecht sehr heftig

GG
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#7

AW: MessageDialog-Text nach Erzeugen ändern

  Alt 18. Apr 2012, 03:38
Gibt es eine Möglichkeit, einen MessageDialog-Text zu ändern, NACHDEM die Nachricht bereits erzeugt wurde?
Wenn ich das richtig verstanden habe, benötigst du keinen MessageDialog, sondern lediglich eine Anzeige, daß dein Programm gerade etwas tut und der Anwender auf das Ende dieser Aktion warten soll. Da der Anwender keine Eingabe zu tätigen hat, ist es kein Dialog, sondern einfach nur ein Hinweis.

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.
Miniaturansicht angehängter Grafiken
panel.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: MessageDialog-Text nach Erzeugen ändern

  Alt 18. Apr 2012, 09:43
Mein Avast randaliert bei Luckies http://www.michael-puff.de/Programmi...imedMsgBox.zip zu Unrecht sehr heftig
Meinst du die MsgBox innerhalb deines Programms oder bei einer seiner Demos?

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 Hier im Forum suchenAviras Hier im Forum suchenAntiVir) ... suchen und dort steht dann die Lösung (oder einfach ignorieren oder den Scanner wechseln).
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Gustav.R
(Gast)

n/a Beiträge
 
#9

AW: MessageDialog-Text nach Erzeugen ändern

  Alt 18. Apr 2012, 11:00
@himitsu: Beim Herunterladen der zip-Datei wird die Demoechse darin als Malware klassifiziert.
  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 08:31 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