Autor Beitrag
jimbo_ger
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Fr 26.11.10 10:42 
Hallo zusammen,
ich finde leider nichts zu diesem "Problem". Ich hänge momentan einer Stelle fest und weiß nicht so Recht wie ich das bewerkstelligen soll.
Erstmal ein wenig zu meinem Programm. Es ersetzt im grunde bei Windows 7 die msg.exe bzw. kann Betriebssystem übergreifend (WinXP zu Win7 und umgekehrt) arbeiten was die msg.exe anscheinend nicht kann (zumindest in unserer Firma nicht, wegen der Firewall oder so).
Es besteht aus 2 Teilen. Der Server, der sieht, bei welchen Usern grade der Client "online" ist und der Client halt selber. Der Client kann eigentlich nix machen außer empfangen. Der Server kann bestimmte User auswählen und diesen eine bestimme Nachricht schicken.
Wenn die Nachricht beim Client via Broadcast auf einem bestimmten Port ankommt öffnet sich eine application.messagebox mit der Nachricht. Soweit so gut...
Das Problem ist jetzt, wenn jemand die Messagebox nicht mit OK bestätigt oder das Fenster einfach nicht schließt, neue Nachrichten nicht zugestellt werden.Das Programm hängt ja noch im Ereigniss "OnUDPRead" sozusagen und kann momentan noch nicht empfangen weil das Programm halt noch an der Stelle der Messagebox hängt.
Jetzt wäre die Frage wie sich das am besten lösen lässt? Ich habe überlegt eine neue Form einzubringendie sich dann in den "Foreground" schiebt mit der Nachricht aber diese Lösung erscheint mir relativ "unschön".
hat jemand eventuell eine bessere Idee?
Ich bin übrigens Anfänger also habt bitte Nachsicht mit mir :)...
Danke schonmal
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Fr 26.11.10 12:14 
Die Nachrichten in einer Stringlist sammeln und eine Routine Display aufrufen.
Hier solltest Du in keinem Fall etwas Blockierens machen da der UDP-Thread sonst nicht weiterarbeiten kann.

Du könntest vom Benutzer einstellbar ein Form in den Vordergrund schießen mit einer Checklistbox, in der der Benutzer gelesenes abhaken kann, oder eine kleinen Sound abgeben wenn etwas ankommt, oder ein sich selbst wieder ausblendendes Notifyfenster in der rechten unteren Bildschirmecke anzeigen etc.

Alles was blockieren konnte entweder in einen Thread packen oder über einen FlipFloptimer anzeigen lassen.

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS