Zitat von
calculon:
Gibt's hierfür nicht eine anständige oder von mir aus auch eine Mega-Dirty-Lösung, die funktioniert?
Viel mehr als Dein Ergebnis reproduzieren konnte ich leider auch nicht. Selbst ein Sleep(2000)
nach dem Execute sorgt dafür, daß die Meldung 2s später angezeigt wird. Ich verstehe das merkwürdige Verhalten von dem Ding nicht.
Vielleicht solltest Du was anderes nehmen? Ich bin beim suchen über das hier gestolpert:
http://www.delphipraxis.net/internal...=517040#517040
EDIT: Ich Hirsch, Sleep blockiert scheinbar. Das kommt davon, wenn man sowas nie benutzt
Ich hab da einfach mal ganz naiv weiter rumprobiert, und festgestellt:
Delphi-Quellcode:
JvDesktopAlert1.Execute;
for i := 0 to 100 do Application.ProcessMessages;
Sleep(2000);
Damit erscheint der DesktopAlert sofort. Das ist natürlich auch ein Workaround mit Risiken und Nebenwirkungen, den ich persönlich nur ungern einsetzen würde.
EDIT2: Das obige Experiment liefert lustige, nichtreproduzierbare Phänomene
Aber das Rätsel ist gelöst: Die Komponente benutzt Einblend-Effekte (TJvAlertStyle) und verwendet dafür einen Timer (die Zeiten kann man in Properties einstellen). Deine Idee, auch einen Timer zu verwenden, um abzuwarten, bis der DesktopAlert komplett sichtbar ist, ist also gar nicht so abwegig. Aber wieso benutzt Du dafür ein unsichtbares Form?
Klaus M. Hoffmann