Jup danke.
Der Cursor bleibt dauernd in der 1. Zeile ganz links.
Er schreibt den Text dort hin den ich über die Tastatur eingebe und der wird dann dahin übertragen wo die letzten
Eingabe von der seriellen Schnittstelle war. Das find ich so komisch. Ich möchte den Cursor dort haben wo der letzte
Buchstabe von der seriellen Schnittstelle ist.
Danke.
Code: Alles auswählen
Global text_e.s,text_s.s,files.s, files1.s,result.s
Global port.l,s_byte.c,r_byte.c
Declare Datei_senden()
Enumeration
#Window_0
#b_seriell_an
#b_seriell_aus
#b_cls_edit
#b_datei
#b_senden
#str_seriell
#str_datei
#Editor_0
EndEnumeration
InitKeyboard()
OpenWindow(#Window_0, 400, 150, 550,570, "KIM", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
ButtonGadget( #b_seriell_an, 10,10, 80, 25, "Seriell ein")
ButtonGadget(#b_seriell_aus, 10,40, 80, 25, "Seriell aus")
ButtonGadget( #b_datei, 10,70, 80, 25, "Datei laden")
ButtonGadget( #b_senden, 10,100, 80, 25, "Datei senden")
ButtonGadget( #b_cls_edit, 10,170, 80, 25, "Cls Edit")
StringGadget(#str_seriell, 120, 10, 150, 22, "")
StringGadget(#str_datei, 120, 70, 150, 22, "")
EditorGadget(#Editor_0, 120, 170, 400,350,#PB_Editor_WordWrap)
port=-1
Repeat
Event = WaitWindowEvent(2)
ExamineKeyboard()
result=KeyboardInkey()
If result
s_byte=Asc(result)
If s_byte=13
s_vyte=10
EndIf
WriteSerialPortData(port, @s_byte, 1)
EndIf
Select Event
Case #PB_Event_Gadget
EventGadget = EventGadget()
EventType = EventType()
If EventGadget = #b_seriell_an
If port=-1
port=OpenSerialPort(#PB_Any, "COM4", 1200, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 1024,1024)
If port
text_s=""
text_s + "...geöffnet "+Str(port)
SetGadgetText(#str_seriell, text_s)
Else
text_s=""
text_s + "...nichts"
SetGadgetText(#str_seriell, text_s)
port=-1
EndIf
EndIf
EndIf
If EventGadget = #b_seriell_aus
If port > 0
CloseSerialPort(port)
text_s=""
text_s + "...geschlossen"
SetGadgetText(#str_seriell, text_s)
port=-1
EndIf
EndIf
If EventGadget = #b_cls_edit
text_e=""
SetGadgetText(#Editor_0, text_e)
EndIf
If EventGadget = #b_datei
Pattern$ = "Alle Dateien (*.*)|*.*"
Pattern = 0
files = SaveFileRequester("Dateiname zum Speichern eingeben", StandardFile$, Pattern$, Pattern)
If files=""
Goto weiter2
EndIf
files1=GetFilePart(files)
SetGadgetText(#str_datei, files1)
weiter2:
EndIf
If EventGadget = #b_senden
Datei_senden()
EndIf
Case #PB_Event_CloseWindow
EventWindow = EventWindow()
If EventWindow = #Window_0
CloseWindow(#Window_0)
Break
EndIf
EndSelect
If port > 0
While AvailableSerialPortInput(port)
ReadSerialPortData(port, @r_byte, 1)
text_e + Chr(r_byte)
SetGadgetText(#Editor_0, text_e)
Wend
EndIf
ForEver
Procedure Datei_senden()
If Len(files) < 4
Goto weiter4
EndIf
If ReadFile(0, files)
While Eof(0) = 0
s_byte=ReadByte(0)
WriteSerialPortData(port, @s_byte, 1)
Delay(10)
Wend
CloseFile(0)
EndIf
weiter4:
files1=""
files=""
SetGadgetText(#str_datei,"...")
EndProcedure