KerberX

Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Pahuchiy1 Не будет там ничего. Отчасти из-за того, что сказал CryptoUsbtor, отчасти из-за того что используется Lua. Для нормального написания GUI очень удобно наличие в языке ООП из коробки, чего в Lua нет (то что есть никуда не годится). Текущая идея построения программ в AMS статическая: вот тебе страницы, создавать новые в рантайме нельзя (как и диалоги). Нет неблокирующих окон просто потому что для ссылок на объекты используются строки, а они уникальны только в пределах одной страницы/диалога, если сделать активным другой диспатчинг функций к объектам тупит. Множество объектов в AMS являются окнами (xButton, Input, ListBox, Grid, PDF, Web, CheckBox, RadioButton, ComboBox, Tree, Progress, RichText и большинство плагинов). Но не смотря на это практически ни один из этих контролов не имеет полного набора обработчиков событий для реакции на оконные события. Но если здесь можно решить проблему через Subclass так как можно получить HWND, то с плагинами вообще никак, так как функции Plugin.GetHWND() просто нет и если автор плагина не предусмотрел такую функцию сам, то мы не сможем ничего сделать. В общем AMS это кастрированный GUI фреймворк, который подойдёт только для обучения (в этом он хорош), для "по быстрому" сделать что-то простое с GUI или собственно само меню автозапуска. Для чего либо сложнее нужен C++ и нормальный фреймфорк Qt там или wxWidgets. На них можно и полностью свои контролы писать, если требуется. На wxWidgets у меня написаны контролы для кнопки, аналоги ImageScroller и ThumbListEx. Нехватки контролов я больше не испытываю. |