$sMsg=' !ShowMes "1 параметр" "2 параметр" "3 параметр" "4 параметр"' ; MsgBox(64,"Результат вызова функции",_CreateMessage_bot($sMsg)) ;~~~~~~~~~~~~~~ ; функция _CreateMessage_bot показывает сообщение. ; команда для вызова этой функции: !ShowMes "1 параметр" "2 параметр" "3 параметр" "4 параметр" ;где: ;1 параметр - это вид окна сообщения (0-окно,без значка; 1-окно,значок информации; 2-окно,значок ошибки; 3-окно,значок вопроса; 4-окно, значок предупреждения).Если параметра в кавычках не будет.то будет установлен по умолчанию - 0. Атрибуты у всех сообщений - поверх всех окон. ;2 параметр - это заголовок окна (Если в кавычках текста не будет, то заголовок будет, соответственно выбранному 1 параметру) ;3 параметр - это текст сообщения (Если текста в кавычках не будет, то не будет и сообщения) ;4 параметр - это время показа окна в секундах, тоесть 1 - одна секунда. (Если не нужно, то этот параметр можно не указывать.) ;~~~~~~~~~~~~~~ Func _CreateMessage_bot($sMsg) $sMes=StringRegExp($sMsg, '(?:"(.*?)")+?', 3); Получение всех параметров из всего текста сообщения ; если результат является массивом; и имеется по крайней мере 3 параметра, так как 3 параметр это текст; и если текст хоть какой то для вывода вобще имеется,, то продолжаем работу с файлом If IsArray ($sMes) And (UBound($sMes) - 1)>=2 And $sMes[2]<>'' Then Switch $sMes[0] ;обрабатываем значение 1 параметра Case 1 ;Informational $sMes[0]="262208" If $sMes[1]="" Then $sMes[1]="Information" Case 2 ;Critical $sMes[0]="262160" If $sMes[1]="" Then $sMes[1]="Critical" Case 3;Question $sMes[0]="262176" If $sMes[1]="" Then $sMes[1]="Question" Case 4;Warning $sMes[0]="262192" If $sMes[1]="" Then $sMes[1]="Warning" Case Else ;0 $sMes[0]="262144" If $sMes[1]="" Then $sMes[1]="Message" EndSwitch ; ;Если время показа не указано (даже нету кавычек), то чтоб небыло ошибки, так как в показе сообщения этот параметр должен присуствовать, добавляем еще 1 ячейку в массив, и это будет $sMes[3], и присваиваем значение - 0. If (UBound($sMes) - 1)=2 Then Local $iUBound $iUBound = UBound($sMes) ReDim $sMes[$iUBound + 1] $sMes[$iUBound] = "0" EndIf $sMes[3]=Number($sMes[3]) ; если по ошибке введен в поле для 3 параметра текст, то эта функция возвратит -0, но если в этом поле присуствует и текст и число, то функция возвратит это число. ; MsgBox($sMes[0],$sMes[1],$sMes[2],$sMes[3]) Return "message was showed" ;возвращает, если все пройшло гуд. Else Return "message was not showed";Нет сообщения, нет окна! EndIf EndFunc ;_CreateMessage($sMsg) |