mirror of
https://github.com/QB64-Phoenix-Edition/QB64pe.git
synced 2024-09-28 11:17:46 +00:00
New prototype for manually entering UDT elements to watch.
Allows user to type element to watch; uses `udtreference()` to fetch the element offset to access. Non-functional yet, just shows a messagebox with the result. Looks promising.
This commit is contained in:
parent
9c15901b23
commit
4fed87994b
1 changed files with 7 additions and 17 deletions
|
@ -8000,24 +8000,14 @@ FUNCTION idevariablewatchbox$(currentScope$, filter$, selectVar, returnAction)
|
||||||
nativeDataTypes$ = "@_BYTE@_UNSIGNED _BYTE@BYTE@UNSIGNED BYTE@INTEGER@_UNSIGNED INTEGER@UNSIGNED INTEGER@LONG@_UNSIGNED LONG@UNSIGNED LONG@_INTEGER64@INTEGER64@_UNSIGNED _INTEGER64@UNSIGNED INTEGER64@SINGLE@DOUBLE@_FLOAT@FLOAT@STRING@"
|
nativeDataTypes$ = "@_BYTE@_UNSIGNED _BYTE@BYTE@UNSIGNED BYTE@INTEGER@_UNSIGNED INTEGER@UNSIGNED INTEGER@LONG@_UNSIGNED LONG@UNSIGNED LONG@_INTEGER64@INTEGER64@_UNSIGNED _INTEGER64@UNSIGNED INTEGER64@SINGLE@DOUBLE@_FLOAT@FLOAT@STRING@"
|
||||||
IF INSTR(nativeDataTypes$, varType$) = 0 THEN
|
IF INSTR(nativeDataTypes$, varType$) = 0 THEN
|
||||||
'It's a UDT
|
'It's a UDT
|
||||||
elementIndexes$ = ""
|
temp$ = usedVariableList(varDlgList(y).index).name + "."
|
||||||
thisUDT = 0
|
v$ = ideinputbox$("Watch UDT", "#Element to watch", temp$, "", 45, 0, ok)
|
||||||
E = 0
|
|
||||||
FOR i = 1 TO lasttype
|
|
||||||
IF RTRIM$(udtxcname(i)) = varType$ THEN thisUDT = i: EXIT FOR
|
|
||||||
NEXT
|
|
||||||
|
|
||||||
i = 0
|
|
||||||
DO
|
|
||||||
IF E = 0 THEN E = udtxnext(thisUDT) ELSE E = udtenext(E)
|
|
||||||
IF E = 0 THEN EXIT DO
|
|
||||||
elementIndexes$ = elementIndexes$ + MKL$(E)
|
|
||||||
i = i + 1
|
|
||||||
LOOP
|
|
||||||
PCOPY 0, 4
|
|
||||||
v$ = ideelementwatchbox$(usedVariableList(varDlgList(y).index).name + ".", elementIndexes$, ok)
|
|
||||||
PCOPY 4, 0
|
|
||||||
IF ok THEN
|
IF ok THEN
|
||||||
|
IF LEFT$(v$, LEN(temp$)) = temp$ THEN v$ = MID$(v$, LEN(temp$))
|
||||||
|
v$ = lineformat$(UCASE$(v$))
|
||||||
|
getid usedVariableList(varDlgList(y).index).id
|
||||||
|
result$ = udtreference$("", v$, typ)
|
||||||
|
result = idemessagebox("Result", v$ + "\n" + result$ + "\n" + STR$(typ), "#OK")
|
||||||
ELSE
|
ELSE
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
|
|
Loading…
Reference in a new issue