Autor: Steven Scheidler (---.dyn.telefonica.de)
Datum: 30.09.19 11:29
Hallo
ich habe mal eine Frage!
Wie könnte ich in einem EDIT Feld rechnen?
Bsp. 3+5-((2*2)/2)
Ergebnis: 2
Mein Ansatz:
$P+
SET("ERRORLEVEL",0)
$I C:\XPROFANX2\LIB\PROFALT.INC
DECLARE EDIT1&,BUTTON1&,TEXT1&,ENDE%,A$[],e1$
DEF GETSYSCOLOR(1) !"USER32","GetSysColor"
WINDOWSTYLE 63
WINDOWTITLE "Test"
WINDOW 481,158-640,500
CLS GETSYSCOLOR(15)
USEFONT "MS Sans Serif",13,0,0,0,0
SETDIALOGFONT 1
Proc rechnen
WhileLoop 0, SizeOf(A$[]) - 1
Print A$[&loop]
EndWhile
EndProc
EDIT1& = CREATE("EDIT",%HWND,"1,25",0082,0045,0120,0020)
BUTTON1& = CREATE("BUTTON",%HWND,"BUTTON",0233,0046,0070,0030)
TEXT1& = CREATE("TEXT",%HWND,"TEXT",0084,0113,0070,0020)
SETFOCUS(%HWND)REPAINT
WHILENOT ENDE%
WAITINPUT
If %KEY=2
ENDE%= 1
ELSEIF %KEY=4
ELSEIF CLICKED(EDIT1&) 'EDIT
ELSEIF CLICKED(BUTTON1&) 'BUTTON
A$[] = Explode(GetText$(EDIT1&), "+")
rechnen
ENDIF
ENDWHILE
So geht addieren schon mal, vielleicht ist mein Ansatz ja auch verkehrt
als Parameter würde ich dann die ( , + - * / ) übergeben wollen
$P+
SET("ERRORLEVEL",0)
$I C:\XPROFANX2\LIB\PROFALT.INC
DECLARE EDIT1&,BUTTON1&,TEXT1&,ENDE%,A$[],e1$,tmp!,temp!,m$
DEF GETSYSCOLOR(1) !"USER32","GetSysColor"
WINDOWSTYLE 63
WINDOWTITLE "Test"
WINDOW 481,158-640,500
CLS GETSYSCOLOR(15)
USEFONT "MS Sans Serif",13,0,0,0,0
SETDIALOGFONT 1
Proc rechnen
clear temp!
Parameters m$
WhileLoop 0, SizeOf(A$[]) - 1
tmp!=str$(A$[&loop])
temp!=temp!+tmp!
EndWhile
Print temp!
EndProc
EDIT1& = CREATE("EDIT",%HWND,"1,25",0082,0045,0120,0020)
BUTTON1& = CREATE("BUTTON",%HWND,"BUTTON",0233,0046,0070,0030)
TEXT1& = CREATE("TEXT",%HWND,"TEXT",0084,0113,0070,0020)
SETFOCUS(%HWND)REPAINT
WHILENOT ENDE%
WAITINPUT
If %KEY=2
ENDE%= 1
ELSEIF %KEY=4
ELSEIF CLICKED(EDIT1&) 'EDIT
ELSEIF CLICKED(BUTTON1&) 'BUTTON
A$[] = Explode(GetText$(EDIT1&), "+")
rechnen
ENDIF
ENDWHILE
Nachricht bearbeitet (30.09.19 12:16)