![]() |
Message nur kurz anzeigen
Gibt es irgend etwas fertiges, um eine Nachricht nur ein paar Sekunden anzuzeigen und dann wieder automatisch auszublenden, ohne dass der User auf "Ok" klicken muss?
Oder muss ich da mit einem Timer herumfrickeln (Bin da vom Programmieren mit Autohotkey verwöhnt :) )? |
AW: Message nur kurz anzeigen
So etwas wie einen BalloonHint oder Toast?
|
AW: Message nur kurz anzeigen
Hint, BallonHint, MessageBoxTimeout, ..........
![]() |
AW: Message nur kurz anzeigen
Oder man baut sich einmal ein Dialog-Formular mit einem AutoCloseTimer und legt sich das in die Objekt-Ablage (da freut sich aber jetzt einer) und leitet sich davon die gewünschten ab und/oder erstellt sich davon selber ein paar Standard-Dialoge ... und schon ist es wie zu Hause ...
|
AW: Message nur kurz anzeigen
@himitsu
Ja, genau, so etwas: die MessageBoxTimeout werde ich verwenden, danke für den Link. |
AW: Message nur kurz anzeigen
Ich weiß nicht, ob das eine gute Idee. Eine Messagebox will den Benutzer ja auf was hinweisen. Ich starte ein Programm. Das arbeitet. Ich gehe ka**en. Komme wieder. Und dann? Das Programm hat was angezeigt, die Nachricht ist weg.... Also warum denn was anzeigen, wenn es eh nicht wichtig war. Denn wenn es wirklich wichtig war, dann müsste man die Nachricht nicht automatisch schließen. Dann reicht auch ein Eintrag im Log oder so.
|
AW: Message nur kurz anzeigen
|
AW: Message nur kurz anzeigen
Luckie, wichtig ist es eben nur, wenn man vor dem Computer sitzt, wartet und sich langweilt, anstatt sich das nächste Bierchen aus dem Kühlschrank zu besorgen und/oder das vorige woanders abzulassen.
|
AW: Message nur kurz anzeigen
@Luckie: Manchmal ist das eine gute Idee :wink:
Es gibt einen Button PDF, beim Klick auf diesen Button füllt das Programm automatisch ein paar PDF Formulare mit Daten aus der Datenbank aus und legt die in einem Verzeichnis für späteren automatischen Mailversand ab. Das dauert ca 1/10 Sekunde, in der Zeit schafft der User es wahrscheinlich nur schwer, sich zum Ka**en zu verabschieden. Irgendwie möchte ich ihm aber sagen, dass der Job erfolgreich erledigt worden ist, ohne ihn dabei dazu zu zwingen, vor dem Weiterarbeiten die Meldung mit Tastatur oder Maus zu quittieren. Programme, die auf den Klick auf einen Button keine unmittelbar erkennbare Reaktion zeigen, finde ich grauslich. |
AW: Message nur kurz anzeigen
Ja, aber warum dann eine Messegabox, die ein Interaktion impliziert, wenn doch gar keine erforderlich ist? Schreib irgendwo was in grün hin, dass die Aktion erfolgreich war. Statusleiste. Fenstercaption. Oder sonst wo. Wenn du die Messagebox automatisch schleißt, habe ich ja gar so gut wie keine Rückmeldung, wenn ich sie nicht sehe. Wenn ich sie nicht sehe, warum auch immer, bin ich auch nicht schlauer als vorher.
|
AW: Message nur kurz anzeigen
Also ich kenne auch Anzeigen, die nur für eine bestimmte Zeit auftauchen und dann wieder verschwinden (z.B. Email empfangen). Diese kann man wegklicken oder ignorieren und die verschwinden von alleine.
Wenn man den Verschwinden-Timer erst dann startet, wenn eine Maus-Aktion oder Tastendruck erfolgt (egal wo), denn hat man eigentlich so gut wie alles abgetütet. |
AW: Message nur kurz anzeigen
Naja, ob solche Messages sinnvoll sind oder nicht, das muss der Programmierer selber entscheiden.
Ich werde übriges seit etwa zwei Monaten von Kaspersky-Antivirus mit Massages terrorisiert. Wobei die ersten sechs Wochen es drum ging, dass die Testversion abgelaufen ist. Hier musste ich die Messages quittieren. Vor zwei Wochen habe ich einen Lizenzschlüssel eingetragen, doch der Terror geht weiter. Denn ich habe es gewagt einige Schutzmechanismen zu deaktivieren, ich werde somit nicht zu 100% von Kaspersky geschützt. Ich befinde mich in permanenter Gefahr. Das zumindest Teilt mit eine Messagebox für etwa 3 Sekunden mit. Das wird von einem lauten Warnton begleitet, so dass ich jedes Mal einen Schrecken bekomme und immer fast von Stuhl falle. Dei Messagebox schließt sich nach drei Sekunden, drauf folgt eine zweite Messagebox ohne den Krach, die mir ebenfalls etwas mitteilen will. In der Regel bin ich noch von der ersten Messagebox so aufgewühlt und erschrocken, dass ich bisher nicht dazu gekommen bin zu lesen was da steht. Die schließt sich nach zwei Sekunden. Dann habe ich Ruhe bis zum nächsten Computerstart. Das ist ein Beispiel für Messages die man nur kurz sehen kann :-D |
AW: Message nur kurz anzeigen
Soll die kurz angezeigte Nachricht modal oder nonmodal sein?
Ich würde mir -wie hier schon bemerkt- die UI-Metapher noch einmal gründlich überlegen: WAS soll damit dargestellt werden? Fehlt Dir die Möglichkeit, ein nonmodales Fenster anzuzeigen und dann aus der laufenden Anwendung heraus mit Informationen zu besorgen? Ich kann mir vorstellen, das Du einfach nur einzelne Schritte einer längeren Operation darstellen willst. Korrekt? |
AW: Message nur kurz anzeigen
Zitat:
|
AW: Message nur kurz anzeigen
Ich verwende für solche Zwecke dxAlertWindows von DevExpress - das ist so ähnlich wie die Mailbenachrichtigungen von Outlook. Falls du kein DevEx hast, gibt's sowas sicher auch bei den Jedis.
|
AW: Message nur kurz anzeigen
Zitat:
Betreibt man Windows 2000 mit abgeschaltetem Swapspeicher, kommt bei dessen Start eine Meckermeldung, daß der virtuelle Speicher nicht ausreiche - betreiben kann man Windows 2000 natürlich dennoch. Diese Meldung sieht wie eine (große) Messagbox aus. Ob es eine ist, weiß ich nicht. Jedenfalls verschwindet diese auch bei Nichtklicken nach wenigen Minuten von allein, und Windows 2000 startet vollständig. |
AW: Message nur kurz anzeigen
Ich glaube, das was Sir Rufo meint, ist sowas wie
![]() |
AW: Message nur kurz anzeigen
Zitat:
In diesem konkreten Fall (Arbeit ist erledigt) würde ich die Meldung - wenn es denn über ein Meldungs-Fenster kommen soll - in einem nicht modalen Fenster anzeigen. Ein modales Fenster findet man sehr häufig, wenn z.B. eine Aktion ablaufen soll und der Benutzer die Möglichkeit zum Abbruch haben soll, weil das z.B. seine Arbeit stört. Der Möglichkeiten gibt es viele und eben auch unterschiedliche Szenarien, wo jede einzelne Möglichkeit gut oder schlecht ist. Das gilt es eben abzuwägen. |
AW: Message nur kurz anzeigen
Ich hab auch noch einen Vorschlag, nein sogar mehrere.
Die Idee finde ich gut (Button, Feedback, ohne "Störung") Also wenn es so flott geht,
|
AW: Message nur kurz anzeigen
Ich glaube Idefix2 hat bereits seine Lösung. Die Diskussion hier geht nur noch drum ob sowas sinnvoll ist oder nicht.
|
AW: Message nur kurz anzeigen
Beinahe.
Aber irgendwie komme ich mit den verschiedenen Stringtypen, die man an Windows übergeben muss, nicht zu Rande. So funktioniert es jedenfalls nicht:
Delphi-Quellcode:
Und so auch nicht:
MessageBoxTimeOut(Handle, PWideChar(WideString('Die PDF-Formulare wurden ausgefüllt und abgelegt')),
PWideChar(WideString('PDF ausfüllen')), MB_OK or MB_ICONINFORMATION, 0, 3000);
Delphi-Quellcode:
MessageBoxTimeOut(Handle, PChar('Die PDF-Formulare wurden ausgefüllt und abgelegt'),
PChar('PDF ausfüllen'), MB_OK or MB_ICONINFORMATION, 0, 3000); Es erscheint in beiden Fällen eine wunderschöne Messagebox, die nach drei Sekunden wieder verschwindet, die zeigt aber in der Caption nur ein "P", und als Meldung nur ein "D". Die anderen Zeichen der auszugebenden Strings werden verschluckt. :evil: Diverse andere Varianten, die ich probiert habe, lassen sich wegen eines Typkonflikts gar nicht kompilieren. |
AW: Message nur kurz anzeigen
MessageBoxTimeOutA oder MessageBoxTimeOutW :stupid:
Eigentlich sollte das doch verständlich sein? Beispiel: MessageBox + PChar MessageBoxA + PAnsiChar MessageBoxW + PWideChar Und es kommt natürlich nicht auf den Namen im Delphi an, sondern auf den Namen bei External, wenn er definiert wurde. |
AW: Message nur kurz anzeigen
Danke, jetzt klappt es.
Und du hast ja recht, eigentlich sollte es verständlich sein. :wink: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:35 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