Вверх ↑
Ответов: 832
Рейтинг: 181
#1: 2025-02-12 14:34:17 ЛС | профиль | цитата
Создание графического элемента "Выбор даты" (date-picker control)
Работают колесо прокрутки, ПКМ, ЛКМ и т.д
Выберите любой диапазон дат и нажмите Enter

Add(MainForm,8845070,91,84)
{
Width=596
Height=201
Point(onClose)
link(onCreate,10187446:doString,[])
link(onClose,5447582:doConsoleTerminate,[])
}
Add(WinExec,5447582,196,84)
{
FileName="powershell.exe"
Mode=0
Point(doConsoleExec)
Point(onConsoleResult)
Point(onConsoleError)
Point(onConsoleTerminate)
Point(doConsoleTerminate)
link(onConsoleResult,14679305:doWork1,[(256,104)])
link(onConsoleError,14679305:doWork2,[])
}
Add(Memo,14325343,371,105)
{
Width=580
Height=162
Align=5
Font=[Lucida Console,12,0,0,204]
ScrollBars=3
}
Add(Charset,5372131,273,105)
{
link(onCharset,2685738:doReplace,[])
}
Add(FormatStr,10187446,140,98)
{
Mask="[void] [System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms')\r\n[System.Windows.Forms.Application]::EnableVisualStyles()\r\n\r\n$form = new-object Windows.Forms.Form \r\n$form.text = 'Calendar' \r\n$form.Size = new-object Drawing.Size @(1000,800) \r\n\r\n$btnSelect = new-object System.Windows.Forms.Button\r\n$btnSelect.Size = '1,1'\r\n$btnSelect.add_Click({ \r\n $form.close() \r\n }) \r\n$form.Controls.Add($btnSelect ) \r\n$form.AcceptButton = $btnSelect\r\n\r\n$cal = new-object System.Windows.Forms.MonthCalendar \r\n$cal.ShowWeekNumbers = $true \r\n$cal.MaxSelectionCount = 356\r\n$cal.Dock = 'Fill' \r\n$form.Controls.Add($cal) \r\n$Form.Add_Shown({$form.Activate()})\r\n\r\n$code = '[DllImport("""user32.dll""")] public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);'\r\n$type = Add-Type -MemberDefinition $code -Name myAPI -PassThru\r\n[void]$type::ShowWindowAsync($Form.Handle, 1)\r\n[void]$form.showdialog() \r\n\r\n\r\n# $cal.SelectionRange | Out-GridView -Wait\r\nWrite-Host 'Сегодня: ' $cal.TodayDate.ToShortDateString()\r\nWrite-Host 'Начальная дата: ' $cal.SelectionStart.ToShortDateString()\r\nWrite-Host 'Конечная дата: ' $cal.SelectionEnd.ToShortDateString()\r\n# Write-Host $cal.SelectionRange.ToString()\r\n\r\n"
link(onFString,5447582:doConsoleExec,[])
}
Add(HubEx,14679305,252,105)
{
link(onEvent,5372131:doCharset,[])
}
Add(Replace,2685738,322,105)
{
SubStr="\n"
DestStr="\r\n"
link(onReplace,14325343:doAdd,[])
}


Проверено на
- Windows 10 (x64)
- Hiasm v4.05 build 186 (delphi) rev - 2423
карма: 16

0