![]() |
[UDP] Nachricht an alle Teilnehmer senden (Zeitverzögerung)
Hi,
ich weiss, dass ich den ein oder anderen nerve, aber ich verstehe die Thematik einfach noch nicht, weil ich´s noch nie richtig angewendet habe. Ich denke es geht wieder um mein Lieblingsthema Threads. Ich will bei Button1Click eine Info an alle Teilnehmer schicken, deren IP-Adressen in der ListView1 stehen. Bisher geht das zwar, aber es dauert ca. 5 Sekunden, ehe das Programm wieder reagiert. Die Funktion sieht so aus:
Delphi-Quellcode:
Wie mache ich das jetzt richtig? Das Thread Tutorial von Luckie hilft mir da irgendwie nicht weiter...vielleicht kann´s mir einer nochmal auf mein Thema zugeschnitten zeigen und erklären. Ich wäre euch sehr dankbar...so langsam muss ich das Thema doch mal kapieren ;-)
for User := 0 to frmMain.ListView1.Items.Count - 1 do
begin UDPSockUtil1.RemoteHost := frmMain.ListView1.Items[User].SubItems[1]; UDPSockUtil1.SendText(Username + '#' + IntToStr(User)); end; Danke schonmal! |
Re: [UDP] Nachricht an alle Teilnehmer senden (Zeitverzögeru
Moin Moin,
hast du schon mit Threads gearbeitet??? versuchs erst mal mit was gannz einfachem, wie ein Label das über ein thread verändert wird! das Tutorial von Luckie ist da mehr als ausreichend... wenn das geht, dann vielleicht mal ne´datei in einem thread laden... Aber die Arbeit des lernens kann dir keiner abnehmen... :???: |
Re: [UDP] Nachricht an alle Teilnehmer senden (Zeitverzögeru
Ich weiss ja nicht mal wie einer korrekt erstellt und ausgeführt wird und mit dem Tutorial komme ich irgendwie nicht klar :roll:
|
Re: [UDP] Nachricht an alle Teilnehmer senden (Zeitverzögeru
Delphi-Quellcode:
So, hier mal der Code. Das Programm bleibt immer noch beim Verbinden "hängen", weil an mehrere Hosts ein SendText übermittelt werden soll. Erst wenn er fertig ist, taut das Programm wieder auf. Hab ich mit Hilfe es Tutorials gemacht, aber ohne Erfolg. Kann mir jemand helfen?type TThread_SendStatus = class(TThread) private ThreadID : Integer; User : SmallInt; protected procedure Execute; override; end; procedure GetAllUsersStatus; var User: Integer; SendStatus : TThread_SendStatus; ThreadID: Cardinal; begin frmMain.UDPSockUtil1.Broadcast := False; for User := 0 to frmMain.Users.Items.Count - 1 do begin SendStatus := TThread_SendStatus.Create(False); SendStatus.ThreadID := 0; ThreadID := SendStatus.ThreadID; SendStatus.User := User; SendStatus.Execute; Inc(SendStatus.ThreadID); end; end; procedure TThread_SendStatus.Execute; begin CoInitialize(nil); try frmMain.UDPSockUtil1.RemoteHost := frmMain.Users.Items[User].SubItems[4]; frmMain.UdpSockUtil1.SendText('#AskForStatus#' + IntToStr(frmMain.StatusComboBox.ImageIndex) + '##' + LowerCase(frmMain.OwnComputername)); finally CoUninitialize; end; end; |
Re: [UDP] Nachricht an alle Teilnehmer senden (Zeitverzögeru
Leider habe ich es immer noch nicht hinbekommen.
Kann vielleicht jemand mal über den Code gucken und mir sagen, wo der Fehler liegt? Wäre echt nett, danke! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:03 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