tavria2
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору lorents Что-то мне не очень этот ProgressBar. Первый можно сделать средствами AMS, а у третьего проблема с пропорциями высоты и ширины, такое ощущение, что ширина задается в твипах, а высота в пикселях или наоборот. Для isProgressBar v1.00 Global Functions Код: -- Обертки Dll-функций function LoadLibrary(sFileName) local hDll = DLL.CallFunction("kernel32.dll", "LoadLibraryA", "\""..sFileName.."\"", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL); return hDll end function InitProgressBar(hWnd, nLeft, nTop, nWidth, nHeight, nSpeed) DLL.CallFunction("IsProgressBar.dll", "InitProgressBar", hWnd..","..nLeft..","..nTop..","..nWidth..","..nHeight..","..nSpeed, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL); end function InitProgressBar2(hWnd, nLeft, nTop, nWidth, nHeight, nSpeed, nAnim) DLL.CallFunction("IsProgressBar.dll", "InitProgressBar2", hWnd..","..nLeft..","..nTop..","..nWidth..","..nHeight..","..nSpeed..","..nAnim, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL); end function InitCircularProgressBar(hWnd, nLeft, nTop, nWidth, nHeight, nSpeed, nBgCol, nActCol, nInActCol, nTransCol) DLL.CallFunction("IsProgressBar.dll", "InitCircularProgressBar", hWnd..","..nLeft..","..nTop..","..nWidth..","..nHeight..","..nSpeed..","..nBgCol..","..nActCol..","..nInActCol..","..nTransCol, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL); end function DeInitProgressBar() DLL.CallFunction("IsProgressBar.dll", "DeinitProgressBar", "", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL); end function DeInitProgressBar2() DLL.CallFunction("IsProgressBar.dll", "DeinitProgressBar2", "", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL); end function DeInitCircularProgressBar() DLL.CallFunction("IsProgressBar.dll", "DeinitCircularProgressBar", "", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL); end function FreeLibrary(hDll) DLL.CallFunction("kernel32.dll", "FreeLibrary", hDll, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL); return hDll end | Создаем ProgressBar: Код: -- Загружаем Dll в память hDll = LoadLibrary("AutoPlay\\Docs\\IsProgressBar.dll"); -- получаем дескриптор Dll hWnd = Application.GetWndHandle(); -- дескриптор окна в котором будет отображен ProgressBar -- ProgressBar 1 nLeft = 40; nTop = 114; nWidth = 418; nHeight = 21; nSpeed = 100; InitProgressBar(hWnd, nLeft, nTop, nWidth, nHeight, nSpeed); -- ProgressBar 2 nLeft = 40; nTop = 154; nWidth = 418; nHeight = 21; nSpeed = 10; nAnim = 1; InitProgressBar2(hWnd, nLeft, nTop, nWidth, nHeight, nSpeed, nAnim); -- ProgressBar 3 nLeft = 220; nTop = 184; nWidth = 120; nHeight = 65; nSpeed = 100; nBgCol = Math.HexColorToNumber("ffffff"); nActCol = Math.HexColorToNumber("ff0000"); nInActCol = Math.HexColorToNumber("00ff00"); nTransCol = Math.HexColorToNumber("0000ff"); InitCircularProgressBar(hWnd, nLeft, nTop, nWidth, nHeight, nSpeed, nBgCol, nActCol, nInActCol, nTransCol); | Удаляем ProgressBar: Код: -- Уничтожаем ProgressBar'ы DeInitProgressBar(); DeInitProgressBar2(); DeInitCircularProgressBar(); -- Выгружаем Dll из памяти FreeLibrary(hDll); | Для isProgressBar v1.01 можешь сам адаптировать код, но по-моему здесь автор перестарался, заменив системный скин ProgressBar на пользовательские цвета. По поводу ISDone0.4.2.5... Извини, но заниматься им не буду - отбирает много времени. |