Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi [UDP] Nachricht an alle Teilnehmer senden (Zeitverzögerung) (https://www.delphipraxis.net/87620-%5Budp%5D-nachricht-alle-teilnehmer-senden-zeitverzoegerung.html)

Yheeky 3. Mär 2007 00:08


[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:
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;
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 ;-)

Danke schonmal!

yörsch 3. Mär 2007 00:27

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... :???:

Yheeky 3. Mär 2007 10:58

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:

Yheeky 3. Mär 2007 19:39

Re: [UDP] Nachricht an alle Teilnehmer senden (Zeitverzögeru
 
Delphi-Quellcode:

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

Yheeky 5. Mär 2007 13:41

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 04:21 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