diff --git a/SMILEBASIC/builtinfunctions.d b/SMILEBASIC/builtinfunctions.d index cfcccb1..097b991 100644 --- a/SMILEBASIC/builtinfunctions.d +++ b/SMILEBASIC/builtinfunctions.d @@ -3051,6 +3051,13 @@ class BuiltinFunction throw new OutOfRange("KEY", 1); key = new Array!wchar(cast(wchar[])p.functionKey[index]); } + import otya.smilebasic.dialog; + import otya.smilebasic.project; + static void DIALOG(PetitComputer p, wstring text) + { + auto dialog = new Dialog(p); + p.project.result = cast(DialogResult)dialog.show(text); + } //alias void function(PetitComputer, Value[], Value[]) BuiltinFunc; static BuiltinFunctions[wstring] builtinFunctions; static wstring getBasicName(BFD)(const wstring def) diff --git a/SMILEBASIC/petitcomputer.d b/SMILEBASIC/petitcomputer.d index 8e0c3a0..11754fc 100644 --- a/SMILEBASIC/petitcomputer.d +++ b/SMILEBASIC/petitcomputer.d @@ -1626,8 +1626,9 @@ class PetitComputer return currentDisplay.rect[1]; } auto rect = currentDisplay.rect[0]; - rect.y += rect.h; + rect.y = 0; currentDisplay.windowSize.height += rect.h; + currentDisplay.yoffset = currentDisplay.windowSize.height; updateWindowSize(); return rect; } @@ -1639,6 +1640,7 @@ class PetitComputer } auto rect = currentDisplay.rect[0]; currentDisplay.windowSize.height -= rect.h; + currentDisplay.yoffset = currentDisplay.windowSize.height; updateWindowSize(); } //プチコン内部表現はRGB5_A1