09-11-2018, 06:17 PM
So, I'm in the process of writing an HP Prime app, more to see how well I understand the process than anything else. I have a solid background in RPN and RPL so HP-PPL is new to me.
As I understand it, STARTVIEW(view, redraw) in an app when view>0 should bring up the view that's displayed when the app is the active app and the user presses on one of Symb, Plot, Num, Shift-SymbSetup etc. according to p648 of the current user guide timestamped Jan 12th 2018.
In particular, if view is 3 then you get the SymbSetup page.
Now consider this program that is generated when you create a new app that inherits from no others -- an empty app, basically -- and uncomment everything:
Note the change that I made to the START() function.
Now, if I hit Shift-SymbSetup, I get the following screen, as expected given the SymbSetup() function in the program:
Note that my START() function calls STARTVIEW(3,1), which should give me the same thing as above when I start the app given that it's supposed to open the SymbSetup view, right?
Wrong.
It gives me the SymbSetup view that I would get if I had not defined my own function to override it:
Is this the intended behaviour or am I missing something here?
As I understand it, STARTVIEW(view, redraw) in an app when view>0 should bring up the view that's displayed when the app is the active app and the user presses on one of Symb, Plot, Num, Shift-SymbSetup etc. according to p648 of the current user guide timestamped Jan 12th 2018.
In particular, if view is 3 then you get the SymbSetup page.
Now consider this program that is generated when you create a new app that inherits from no others -- an empty app, basically -- and uncomment everything:
Code:
#pragma mode( separator(.,;) integer(h32) )
Symb()
BEGIN
MSGBOX("Symb");
END;
Plot()
BEGIN
MSGBOX("Plot");
END;
Num()
BEGIN
MSGBOX("Num");
END;
SymbSetup()
BEGIN
MSGBOX("SymbSetup");
END;
PlotSetup()
BEGIN
MSGBOX("PlotSetup");
END;
NumSetup()
BEGIN
MSGBOX("NumSetup");
END;
Info()
BEGIN
MSGBOX("Info");
END;
START()
BEGIN
STARTVIEW(3,1);
END;
RESET()
BEGIN
MSGBOX("RESET");
END;
VIEW "Views", Views()
BEGIN
MSGBOX("Views");
END;
Note the change that I made to the START() function.
Now, if I hit Shift-SymbSetup, I get the following screen, as expected given the SymbSetup() function in the program:
Note that my START() function calls STARTVIEW(3,1), which should give me the same thing as above when I start the app given that it's supposed to open the SymbSetup view, right?
Wrong.
It gives me the SymbSetup view that I would get if I had not defined my own function to override it:
Is this the intended behaviour or am I missing something here?