Hallo,
wie so viele andere zuvor wollte ich einen kleinen lan chat basteln.
leider hänge ich nun an der thread verarbeitung. habe mich bereits etwas eingelesen nur finde ich irgendwie nicht den "aha" effekt.
die indy demos habe ich auch benutzt und bin der meinung das diese nicht genug mit threadauslagerung gearbeitet haben. nun gut, zu meinem problem:
folgender code liegt vor:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31:
| ... uses ... IdGlobal, IdContext, IdSync ... ... private procedure ThreadMsgGet; ... var ThreadMsg: string; ... procedure TFormChatServerControlPanel.IdTCPServer1Execute(AContext: TIdContext); var LLine: String; begin LLine := AContext.Connection.IOHandler.ReadLn(IndyTextEncoding_OSDefault);
ThreadMsg := TimeToStr(now) + ' - Nachricht empfangen: ' + Copy(LLine, 8, Length(LLine)-7 ); TIdNotify.NotifyMethod( ThreadMsgGet ); AContext.Connection.IOHandler.WriteLn('msg:::OK'); end; end;
procedure TFormChatServerControlPanel.ThreadMsgGet; begin Memo1.Lines.Add( ThreadMsg + '000'); gbClients.Caption := 'Connected Clients (' + IntToStr(GetClientCount) + '):'; ThreadMsg := ''; end;
end. |
Bei mir im Memo erscheinen lediglich die '000', das heißt das die globale variable 'ThreadMsg' keinen inhalt hat.
gelöscht wird die variable ja erst nach der übergabe an das memo.
Weiß da jemand mehr?
ist das so schon korrekt mit der threadauslagerung?
VG