Про модальность молчу, так баловство, просто эффект "раскручивания" окна из высоты = 0
X++:
Args args = New Args();
int handleForm, mainwin;
FormRun FormRun;
TreeNode TreeNode;
FormStaticTextControl FormSTControl;
FormBuildDesign FormDesign;
Form Form;
int i, rightPointer, topPointer;
Binary data = new Binary(32);
DLL _winApiDLL = new DLL('user32');
DLLFunction _function = new DLLFunction(_winApiDLL, 'GetWindowRect');
;
//FormRun = classFactory.formRunClass(new Args("Form18"));
Form = new Form('EmptyForm');
args.object(form);
formRun = classFactory.formRunClass(args);
FormDesign = Form.design();
FormDesign.frame(FormFrame::Border);
//FormDesign.windowType(FormWindowType::PopUp);
FormDesign.colorScheme(2);
FormDesign.backgroundColor(WinApi::RGB2int(112, 208, 250));
FormDesign.columns(1);
FormRun.init();
_function.returns(ExtTypes::DWord);
_function.arg(ExtTypes::DWord, ExtTypes::Pointer);
_function.call(infolog.hWnd(), data);
rightPointer = data.dWord(8)-4-22;
topPointer = data.dWord(12);
FormRun.design().width(180);
FormRun.design().height(0);
FormRun.design().left(rightPointer-180);
FormRun.design().top(topPointer);
FormSTControl = FormRun.design().addControl(FormControlType::StaticText, "TitleTextForm");
FormSTControl.widthMode(FormWidth::ColumnWidth);
FormSTControl.text("Çàãîëîâîê");
FormSTControl.colorScheme(2);
FormSTControl.backgroundColor(WinApi::RGB2int(255, 0, 0));
FormSTControl.foregroundColor(WindowsPalette::Desktop);
FormRun.run();
FormRun.formOnTop();
topPointer = FormRun.design().topValue();
for (i = 1; i<=200; i++)
{
FormRun.design().top( FormRun.design().topValue() - 1 );
if (FormRun.design().heightValue() <= 165)
FormRun.design().height( FormRun.design().heightValue() + 1 );
sleep(5);
}
sleep(4000);
//FormRun.wait();
FormRun.close();