Textarea aktualisieren
Übersicht

GuillemotBetreff: Textarea aktualisieren |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo, ich bin Anfänger und hab ein Problem mit einem Textarea in meinem Chatprogramm.
Und zwar hab ich es so programmiert, das der eingehende String direkt in ein Textarea hinzugefügt wird. Da sich aber das Textarea nicht aktualisiert, wenn eine neue Nachricht reinkommt, ist diese auch nicht zu erkennen. Es aktualisiert sich nur wenn man auf eine Maustaste drückt. Gibt es irgendeinen Weg um dieses Textarea zu aktualisieren ? Falls es euch hilft, hier noch der Code : Code: [AUSKLAPPEN] ; Ermittelt die Auflösung des Desktops
DBreite = ClientWidth (Desktop()) DHoehe = ClientHeight (Desktop()) ; Erstellt das Chat Hauptfenster CF = CreateWindow ("Chat" ,DBreite/3,DHoehe/3,500,300,0,49) ; Erstellt die Buttons IPButton = CreateButton ("IP-Adresse" , 0,130,100, 20,CF,1) Einstellungen = CreateButton ("Mein Name" , 0,150,100, 20,CF,1) NotAus = CreateButton ("Not Aus" ,100,130,300, 40,CF,1) Senden = CreateButton ("Senden" ,400,130, 90, 40,CF,1) Seite = CreateButton ("" ,490, 0, 10,302,CF,1) ; Textfelder erstellen ankommend = CreateTextArea (0, 0,490,130,CF,1) ausgehend = CreateTextArea (0,170,490,130,CF,1) ;DisableGadget ankommend ; Variablen Global Tiefer2x$ = Chr$(13)+Chr$(10)+Chr$(13)+Chr$(10) Const Port = 90 ; Server erstellen Server = CreateTCPServer (Port) ;erstellt den Server damit ich nachrichten empfangen kann If Server = 0 Then AddTextAreaText ankommend,"Server konnte nicht erstellt werden..." Else AddTextAreaText ankommend,"Server erfolgreich erstellt..." ; Hauptschleife Repeat ; ausgehenden Daten aus dem ausgehendem Textfeld VersandDaten$ = TextAreaText (ausgehend) ; stellt die emfpangenen Daten dar Antwort$ = AcceptTCPStream (Server) If Antwort$ Then AddTextAreaText ankommend, ReadString$ (Antwort$) Antwort$ = 0 EndIf ; zum schließen auf oben rechts X If WaitEvent()=$803 Then CloseTCPServer Server End EndIf ; dient der Auswahl der Buttons Select EventSource() Case NotAus CloseTCPServer Server End Case Senden If IP$ <> "" Or "0" Then ;für Fehlermeldung, wenn keine IP adresse eingegeben wurde Client = OpenTCPStream (IP$,Port) ;prüft ob verbindung hergestellt ist, und sendet wenn text vorhanden ist If Client <> 0 Then WriteString Client,Tiefer2x$ + MeinName$+ " --> " + VersandDaten$ AddTextAreaText ankommend,Tiefer2x$ + MeinName$+ " --> " + VersandDaten$ SetGadgetText ausgehend,"" CloseTCPStream Client Else AddTextAreaText ankommend,Tiefer2x$ + "Nachricht konnte nicht versand werden!" +Chr$(13)+Chr$(10) + "Es konnte keine Verbindung aufgebaut werden!" EndIf Else AddTextAreaText ankommend,Tiefer2x$ + "Nachricht konnte nicht versand werden!" +Chr$(13)+Chr$(10) + "Es konnte keine Verbindung aufgebaut werden!" EndIf Case Einstellungen MeinName$ = VersandDaten$ SetGadgetText ausgehend,"" AddTextAreaText ankommend,Tiefer2x$ + "Dein Name wurde zu: "+MeinName$+" geändert..." Case IPButton IP$ = VersandDaten$ SetGadgetText ausgehend,"" AddTextAreaText ankommend,Tiefer2x$ + "Neue IP-Adresse eingestellt (" + IP$ + ")" End Select Forever |
||
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: ...WaitEvent hält das prorgam solange an, bis ein neues Event zur verfügung steht...
mache am anfang Code: [AUSKLAPPEN] tm = CreateTimer(60) ;... If PeekEvent() > 0 Event = WaitEvent() ;... EndIf ;am ende (vor Until) WaitTimer tm Peekevent gibt True zurück, ob ein Event vorhanden ist, ansonsten False. Damit hält man das program nicht an... [/quote] |
||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
Guillemot |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke für die schnelle Antwort.
Deine Lösung ist durchaus logisch, aber dadurch funktionieren aus irgendeinem Grund meine Buttons nicht mehr. Hast du dafür auch eine Lösung ? |
||
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hast du auch das WAITEVENT noch drinne ?
PeekEvent gibt _NUR_ true oder False zurück.- kein Event! |
||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Waitevent() wartet immer auf ein Event, hält das Programm dann auch solange an!
Waitevent(0) wartet nie! Waitevent (50) wartet max. 50 Millisekunden und lastet das System nicht 100% aus! |
||
[BB2D | BB3D | BB+]
|
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
trotzdem geht es auch mit timer und PeekEvent... | ||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
Guillemot |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also ich hab es mit beidem mal probiert.
Mit WaitEvent(50) hat es dann funktioniert. Bei PeekEvent hatte ich das Problem das die Buttons dann nicht mehr wollten oder das Programm sehr instabil lief. Ich habe das mit PeekEvent so verstanden: Code: [AUSKLAPPEN] If PeekEvent() > 0 Then
If WaitEvent()=$803 Then CloseTCPServer Server End EndIf EndIf Bitte korrigiert mich, wenn ich falsch liege. |
||
AMD Athlon XP 2800+
Asrock K7S8X R3.0 1GB Corsair RAM NVIDIA 5900ZT Windows Vista RC1 Build 5728 BB+ und BB3D |
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
-.-'
Deine buttons können nich richtig gehn.... Event = WaitEvent() Select Event case $803 CloseTcpserver... !! nicht WaitEvent = xyz |
||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
Guillemot |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ohh...ok, Danke.
Diese kombination hatte ich nicht probiert. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group