hi tmax1,
here the code with "online update" of the DRO during Input.
Global value As String
Global DroNum As Integer
Sub Main
'declare variables
Dim YPos As Double
Dim OldDroValue As Double
Dim YMinPos As Double
Dim YMaxPos As Double
'preset the variables
YMinPos = 1.0
YMaxPos = 50.0
DroNum = 1201
'get the actual DRO value
OldDroValue = GetOemDro(DroNum)
'show the virtual keyboard
call NumericKeyboard(DroNum,YMinPos,YMaxPos)
'get the new DRO value
YPos = GetOEMDro(DroNum)
'check that the entered value has changed
If YPos <> OldDroValue Then
'doe the move
Code "G0Y"+CStr(YPos)
Message "driving Y to: " & YPos
End If
End Sub
'TPS 01.12.2017
'numerische Eingabe
Function NumericKeyboard(ByVal DRONum as Integer , ByVal Min as Double , ByVal Max as Double) As Double
Dim title as String
value = "" 'GetOemDRO(DRONum)
title = Header
Begin Dialog UserDialog1 60,60, 105, 210, "input value:" , .Enable
PushButton 10, 10, 25, 25, "7", .but7
PushButton 40, 10, 25, 25, "8", .but8
PushButton 70, 10, 25, 25, "9", .but9
PushButton 10, 40, 25, 25, "4", .but4
PushButton 40, 40, 25, 25, "5", .but5
PushButton 70, 40, 25, 25, "6", .but6
PushButton 10, 70, 25, 25, "1", .but1
PushButton 40, 70, 25, 25, "2", .but2
PushButton 70, 70, 25, 25, "3", .but3
PushButton 10, 100, 25, 25, ".", .butD
PushButton 40, 100, 25, 25, "0", .but0
PushButton 70, 100, 25, 25, "<-", .butB
PushButton 10, 130, 25, 25, "+/-", .butN
PushButton 40, 130, 25, 25, "Del", .butDel
TextBox 10, 160, 85, 18, .FText
PushButton 10, 185, 40, 21,"OK", .OK
CancelButton 55, 185, 40, 21
End Dialog
Dim Dlg1 As UserDialog1
Dlg1.FText = CStr(value)
x = Dialog( Dlg1 )
NumericKeyboard = CDbl(Dlg1.FText)
If CDbl(Dlg1.FText) < Min Then NumericKeyboard = Min
If CDbl(Dlg1.FText) > Max Then NumericKeyboard = Max
SetOEMDro(DRONum,NumericKeyboard)
End Function
Function Enable( ControlID$, Action%, SuppValue%)
Select Case Action%
Case 1
Case 2 'Button wurde gerückt
If ControlID$ = "but0" Then
value = CStr(value) + "0"
DlgText "FText", CStr(value)
SetOEMDro(DRONum,CDbl(value))
Enable =1
End If
If ControlID$ = "but1" Then
value = CStr(value) + "1"
DlgText "FText", CStr(value)
SetOEMDro(DRONum,CDbl(value))
Enable =1
End If
If ControlID$ = "but2" Then
value = CStr(value) + "2"
DlgText "FText", CStr(value)
SetOEMDro(DRONum,CDbl(value))
Enable =1
End If
If ControlID$ = "but3" Then
value = CStr(value) + "3"
DlgText "FText", CStr(value)
SetOEMDro(DRONum,CDbl(value))
Enable =1
End If
If ControlID$ = "but4" Then
value = CStr(value) + "4"
DlgText "FText", CStr(value)
SetOEMDro(DRONum,CDbl(value))
Enable =1
End If
If ControlID$ = "but5" Then
value = CStr(value) + "5"
DlgText "FText", CStr(value)
SetOEMDro(DRONum,CDbl(value))
Enable =1
End If
If ControlID$ = "but6" Then
value = CStr(value) + "6"
DlgText "FText", CStr(value)
SetOEMDro(DRONum,CDbl(value))
Enable =1
End If
If ControlID$ = "but7" Then
value = CStr(value) + "7"
DlgText "FText", CStr(value)
SetOEMDro(DRONum,CDbl(value))
Enable =1
End If
If ControlID$ = "but8" Then
value = CStr(value) + "8"
DlgText "FText", CStr(value)
SetOEMDro(DRONum,CDbl(value))
Enable =1
End If
If ControlID$ = "but9" Then
value = CStr(value) + "9"
DlgText "FText", CStr(value)
SetOEMDro(DRONum,CDbl(value))
Enable =1
End If
If ControlID$ = "butD" Then
If InStr(1,value,".") = 0 Then
value = CStr(value) + "."
DlgText "FText", CStr(value)
SetOEMDro(DRONum,CDbl(value))
Enable =1
End If
End If
If ControlID$ = "butB" Then
value = Left(value,Len(value)-1)
DlgText "FText", CStr(value)
SetOEMDro(DRONum,CDbl(value))
Enable =1
End If
If ControlID$ = "butN" Then
If Left(value,1) = "-" Then
value = "+" + CStr(Right(value,Len(value)-1))
Else
If Left(value,1) = "+" Then
value = "-" + CStr(Right(value,Len(value)-1))
Else
value = "-" + CStr(value)
End If
End If
DlgText "FText", CStr(value)
SetOEMDro(DRONum,CDbl(value))
Enable =1
End If
If ControlID$ = "butDel" Then
value = ""
DlgText "FText", CStr(value)
SetOEMDro(DRONum,CDbl(value))
Enable =1
End If
If ControlID$ = "OK" Then
Enable = -1
End If
Case 3 'Text verändert
'MsgBox Dlg1.FText
Case Else
End Select
'Wert zurückgeben
If Enable = -1 Then
Enable = value
End If
End Function