Ich habe seit langem mal wieder ein VBA Programm geschrieben.
Es handelt sich um ein Net Send Chat Programm mit dem man Nachrichten an eine fixe Anzahl von Usern verschicken kann und das im 1sec Intervall die erhaltenen Nachrichten ausliest und in eine TextBox einträgt.
Genau da setzt mein Problem an.
Das eintragen neuer Nachrichten in die TextBox mit Zeilenumbruch (vbNewLine, vbCrLf) etc. funktioniert soweit ganz gut aber da dann neue Nachrichten immer am Ende der TextBox stehen und ich noch keine Funktionen kenne/gefunden habe die z.B. immer dafür sorgt dass die TextBox automatisch ans Ende scrollt, hab ich einen Vorschlag eines anderen InternetUsers (beim googlen darüber gestoßen) aufgefangen und versucht die neuen Nachrichten immer am Anfang der TextBox einzutragen.
In einem Testprogramm funktioniert dies auch problemlos, nur bei mir mit meinem Timer gibt es anscheinend ein Problem das ich aber nicht erkenne.
Hier mal der Code des Timer Moduls:
Dim VerGleich As String
Dim iTimerSet As Double
Public Sub Auslesen()
Dim sText As String
iTimerSet = Now + TimeValue("00:00:01")
Application.OnTime iTimerSet, "Auslesen"
sText = mdlFunctionLesen.NDLesen()
If Len(sText) > 0 Then
If VerGleich = sText Then
Else
frmNetSend.txtAusgabe.Text = sText & vbCrLf & frmNetSend.txtAusgabe.Text
VerGleich = sText
End If
End If
End Sub
Public Sub ZeitAbschalten()
Application.OnTime iTimerSet, "Auslesen", , False
End Sub
Warum funktioniert
frmNetSend.txtAusgabe.Text = frmNetSend.txtAusgabe.Text & vbCrLf & sText
problemlos aber
frmNetSend.txtAusgabe.Text = sText & vbCrLf & frmNetSend.txtAusgabe.Text
nicht?
Er überschreibt immer die komplette TextBox mit dem zuletzt empfangenen Text.
Vielen Dank für eure Hilfe!
lg
Rene