Что нового

AboutBox - Диалог «О программе» с прокруткой текста

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
AutoIt: 3.3.6.1+
Версия: 0.9

Категория: Окна и диалоги, Элементы GUI

Описание: Функция для отображения диалога «О программе» в вашем скрипте.
Имеется возможность ручной прокрутки текста (потяните текст мышкой :smile:), а также проигрывание фонового звука.

Код/Пример:
Код:
;This one needed to avoid problems after compilation
#Au3Stripper_Ignore_Funcs=__ST_Handler,__SoundPlay_Proc

#include <GUIConstantsEx.au3>
#include <Sound.au3>
#include <AboutBox.au3>

Global $hSound

_Example()

Func _Example()
	Local $hParent_GUI, $iMainMenu, $iAbout_MenuItem, $aAccelKeys
	
	$hParent_GUI = GUICreate('Parent For "About Program" Demo', 330, 100)
	
	$iMainMenu = GUICtrlCreateMenu('Help')
	$iAbout_MenuItem = GUICtrlCreateMenuItem('About...	(F1)', $iMainMenu)
	
	Dim $aAccelKeys[1][2] = [['{F1}', $iAbout_MenuItem]]
	GUISetAccelerators($aAccelKeys, $hParent_GUI)
	
	GUISetState(@SW_SHOW, $hParent_GUI)
	
	$hSound = _SoundOpen(@ScriptDir & '\Resources\About.mid') ;@WindowsDir & '\Media\cssamp1.mid'
	
	While 1
		Switch GUIGetMsg()
			Case $GUI_EVENT_CLOSE
				_SoundClose($hSound)
				Exit
			Case $iAbout_MenuItem
				Local $sTitle, $iLinkColor, $iBkColor, $aHyperLinks[4], $aData[5]
				
				$sTitle = 'About Info'
				
				$aData[0] = 'My program name'
				$aData[1] = 'Version: ' & @CRLF & 'v1.0'
				$aData[2] = 'I want to express special gratitude to:(Georgia,12,0x000000)\n\n\n\nAutoIt Team(Impact,16)\nAutoIt Community(Impact,16)\nAutoIt Russian Community(Impact,16)\n\n\n\n... and many other good people'
				$aData[3] = 'Copyright © ' & @YEAR & ' Company/Author. All rights reserved.'
				$aData[4] = 'Play sound'
				
				$iLinkColor = 0x0000FF
				$iBkColor = 0xFFFFFF
				
				$aHyperLinks[0] = UBound($aHyperLinks) - 1
				$aHyperLinks[1] = 'App Web Page|http://www.autoitscript.com'
				$aHyperLinks[2] = 'Email|mailto:[email protected]'
				$aHyperLinks[3] = 'Some additional link|http://personalwebpafe.com'
				
				_AboutBox($sTitle, $aData, $aHyperLinks, $hParent_GUI, @AutoItExe, $iLinkColor, $iBkColor, 1, -1, -1, '', '__SoundPlay_Proc')
				
				_SoundStop($hSound)
		EndSwitch
	WEnd
EndFunc

Func __SoundPlay_Proc($sAction)
	If Not IsArray($hSound) Then
		Return
	EndIf
	
	Switch $sAction
		Case $ABX_SOUND_PLAY
			_SoundResume($hSound)
			If @error Then _SoundPlay($hSound)
		Case $ABX_SOUND_PAUSE
			_SoundPause($hSound)
	EndSwitch
EndFunc

Файл: AboutBox.zip

Снимок:


История версий:
v0.9
* Убраны неиспользуемые библиотеки и переменные.
* Убрано использование BassMod.dll.
* Убрана пользовательская переменная $ABX_PLAYSOUND (см. далее).
* Изменена логика обработки проигрывания фоновой музыки,
в связи с чем добавлен опциональный параметр $sSoundPlayFunc в функцию _AboutBox для вызова указанной в параметре функции при событий проигрыша/паузы (см. пример и описание параметра).
* Исправлена проблема с мерцанием курсора.
* Исправлены проблемы связанные с проверкой на ошибки.

v0.8
* Добавлена заметка в информацию о библиотеке:
"При запуске x64 скрипта, опция проигрывания мелодии (Sound Play) будет использовать _SoundOpen/Play для проигрывания файла About64.mid."
* Добавлен дополнительный параметр $sHLErrFunc (имя вызываемой функции при ошибке открытия элемента ссылки).
* Улучшена обработка функционала проигрывания мелодии (упрощён код).
* Улучшена обработка ошибок в коде.

v0.7
* Библиотека больше не регистрирует сообщения $WM_ACTIVATE и $WM_MOVE.
* Прокрутка текста теперь реализована используя библиотеку ScrollText UDF (с GDI+).
* Изменена проигрываемая мелодия в фоне.
* Внутренние имена функции изменены с __AboutBox_* на __ABx_*.
* Пользовательская переменная $ABOUTBOX_PlaySound заменена на $ABX_PLAYSOUND.

v0.6
* Полностью переписан механизм прокрутки текста.
* Изменён способ затухания прокручиваемого текста (спасибо Yashied).

Источник: autoit-script.ru
Автор(ы): G.Sandler (CreatoR)
 

Arei

Скриптер
Сообщения
938
Репутация
115
Шикарная штука, буду использовать.
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Обновление...

v0.7
* Библиотека больше не регистрирует сообщения $WM_ACTIVATE и $WM_MOVE.
* Прокрутка текста теперь реализована используя библиотеку ScrollText UDF (с GDI+).
* Изменена проигрываемая мелодия в фоне.
* Внутренние имена функции изменены с __AboutBox_* на __ABx_*.
* Пользовательская переменная $ABOUTBOX_PlaySound заменена на $ABX_PLAYSOUND.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
CreatoR,
Красиво! :thanks:
 

k790

Новичок
Сообщения
239
Репутация
1
Ну вот, обновился и сразу "баг", в общем в динамиках трещит, а если проигрывать не программой, а проигрывателем, то идеально. Как исправить?
 

k790

Новичок
Сообщения
239
Репутация
1
CreatoR [?]
Файл мелодии "из коробки"?
Да, мелодия которая новее, а не старая. Хотя создаётся ощущение, что программа громче воспроизводит, чем проигрыватель, хотя делая тише, хрип не уходит.

Посмотрю на другом пк, с другими колонками (проверял на нетбуке, а хочу на обычных колонках, для ПК)
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
OffTopic:
CreatoR, Объясни пожалуйста зачем нужны файлы BASSMOD.dll и About.xm, если для воспроизведения музыки используется функция SoundPlay?
 

k790

Новичок
Сообщения
239
Репутация
1
alex33
About.xm - сам файл музыки

CreatoR
На других колонках нормально играет, странно
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
alex33 [?]
для чего же тогда функция SoundPlay и файл title.wma?
Используется на случай если BassMod не загрузится.
В любом случае, файл который поставляется вместе с библиотекой, не будет воспроизводиться с SoundPlay, на этот случай нужен другой медиа файл.
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Обновление...

v0.8
* Добавлена заметка в информацию о библиотеке:
"При запуске x64 скрипта, опция проигрывания мелодии (Sound Play) будет использовать _SoundOpen/Play для проигрывания файла About64.mid."
* Добавлен дополнительный параметр $sHLErrFunc (имя вызываемой функции при ошибке открытия элемента ссылки).
* Улучшена обработка функционала проигрывания мелодии (упрощён код).
* Улучшена обработка ошибок в коде.
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Обновление:

v0.9
* Убраны неиспользуемые библиотеки и переменные.
* Убрано использование BassMod.dll.
* Убрана пользовательская переменная $ABX_PLAYSOUND (см. далее).
* Изменена логика обработки проигрывания фоновой музыки,
в связи с чем добавлен опциональный параметр $sSoundPlayFunc в функцию _AboutBox для вызова указанной в параметре функции при событий проигрыша/паузы (см. пример и описание параметра).
* Исправлена проблема с мерцанием курсора.
* Исправлены проблемы связанные с проверкой на ошибки.

Проигрывание фоновой музыки теперь возлагается на пользователя, чтобы предотвратить лишние проблемы с совместимостью и вложением файлов, а также чтобы позволить пользователю решать, какой использовать для этого метод.

Внимание: данная версия "ломает" обратную совместимость.
 
Верх