Вверх ↑
Этот топик читают: Гость
Ответов: 1103
Рейтинг: 224
#76: 2024-01-13 23:06:33 ЛС | профиль | цитата
prostov писал(а):
можно ли что то стороннее использовать, чтоб не быть привязанным Powershell

Конечно можно. Вот собрал пример на основе zbar.
https://github.com/mmalecki/zbar

Из-за размера dll-лок выкладываю архив на yandex диске.
https://disk.yandex.ru/d/lEtCVbPtLHyxbA
карма: 20

1
Голосовали:prostov
Ответов: 35
Рейтинг: 0
#77: 2024-01-14 14:26:19 ЛС | профиль | цитата
Gunta писал(а):

Конечно можно. Вот собрал пример на основе zbar.
https://github.com/mmalecki/zbar

Из-за размера dll-лок выкладываю архив на yandex диске.
https://disk.yandex.ru/d/lEtCVbPtLHyxbA

спасибо, у меня возник глупый вопрос, каким софтом по́льзуешься для компиляции исходников с github?
я только начал в это всё изучать.

Редактировалось 1 раз(а), последний 2024-01-14 14:26:37
карма: 0

0
Ответов: 8995
Рейтинг: 825
#78: 2024-01-14 16:28:10 ЛС | профиль | цитата
Gunta, вот программка для создания QR, библиотека всего ~100 кБ (Автор не отметился, а я к сожалению уже не помню кто )
https://forum.hiasm.com/getfile/39655
карма: 19

0
Ответов: 1103
Рейтинг: 224
#79: 2024-01-14 17:18:12 ЛС | профиль | цитата
prostov писал(а):
у меня возник глупый вопрос, каким софтом по́льзуешься для компиляции исходников с github?
я только начал в это всё изучать.

На этот не такой уж и глупый вопрос не так легко ответить.
Всё зависит от того на каком языке написана программа.
А посоветовать изучать Visual Studio Code рука не поднимается.

--- Добавлено в 2024-01-14 17:22:58

Леонид писал(а):
вот программка для создания QR, библиотека всего ~100 кБ (Автор не отметился, а я к сожалению уже не помню кто

Автор этой схемы andrestudio.
Создавать QR-код немного легче чем читать и декодировать с видеокамеры.
Но тем не менее, я тоже добавлю немного в эту копилку.
https://forum.hiasm.com/getfile/39656
или
Add(MainForm,2953706,70,112)
{
link(onCreate,11334542:doString,[])
}
Add(FormatStr,11334542,133,126)
{
Mask="If(-not(Get-InstalledModule QRCodeGenerator -ErrorAction silentlycontinue))\r\n{\r\nInstall-Module QRCodeGenerator -Scope CurrentUser -Force\r\n}\r\n\r\n New-PSOneQRCodeText -Text '%1' -Width 200 -Show -OutPath "$home\Desktop\qr.png"\r\n"
link(onFString,3295982:doConsoleExec,[])
link(Str1,5347148:Text,[])
}
Add(WinExec,3295982,196,112)
{
FileName="powershell"
Mode=0
Point(doConsoleExec)
Point(onConsoleResult)
Point(onConsoleError)
Point(onConsoleTerminate)
link(onConsoleResult,3404984:doWork2,[])
link(onConsoleError,3404984:doWork3,[(249,139)])
link(onConsoleTerminate,10302060:doLoadFrom,[(263,146)(263,181)])
}
Add(Memo,5347148,133,77)
{
Top=80
Width=463
Height=354
Align=5
Strings=#40:Я не могу прослушать голосовое сообщение|
ScrollBars=3
}
Add(Charset,7312248,273,126)
{
link(onCharset,5347148:doAdd,[(312,132)(312,69)(123,69)(123,83)])
}
Add(HubEx,3404984,245,126)
{
link(onEvent,7312248:doCharset,[])
}
Add(Image,1728603,329,175)
{
Left=300
Top=195
Align=5
}
Add(Img_GDIFileProcessor,10302060,273,175)
{
FileName="qr.png"
link(onLoad,1728603:doLoad,[])
}


через Google (https://developers.google.com/chart/infographics/docs/qr_codes?hl=ru)
Add(MainForm,16582835,56,91)
{
Caption="Google QR-Encoder"
}
Add(Edit,9797136,112,91)
{
Left=140
Top=10
Width=240
Align=2
Text="Привет Hiasm!"
ClearAfterEnter=1
link(onEnter,8913171:doWork2,[])
}
Add(HTTP_Get,3284981,287,98)
{
link(onDownload,16365162:doEvent1,[])
}
Add(PNG,11521707,392,91)
{
FileName="QRcode.png"
Point(doLoadFromStream)
Point(doBitmap)
Point(Bitmap)
link(onBitmap,6965738:doLoad,[])
}
Add(Hub,16365162,343,105)
{
OutCount=3
link(onEvent1,11521707:doLoadFromStream,[])
link(onEvent2,11521707:doBitmap,[])
link(onEvent3,11521707:doSave,[(368,125)(368,104)])
}
Add(Image,6965738,455,91)
{
Left=10
Top=45
Width=370
Height=220
Align=5
AutoSize=0
}
Add(Charset,13887912,231,98)
{
Type=6
link(onCharset,3284981:doDownload,[])
}
Add(FormatStr,1876016,182,98)
{
Mask="https://chart.googleapis.com/chart?cht=qr&chs=512x512&choe=UTF-8&chl="%1""
Point(FString)
link(onFString,13887912:doCharset,[])
}
Add(Menu,5418054,49,147)
{
Menu=#16:Сгенерировать QR|
link(onSelectStr,7483447:doData,[])
}
Add(HubEx,8913171,154,98)
{
link(onEvent,1876016:doString,[])
}
Add(DoData,7483447,112,147)
{
link(onEventData,8913171:doWork3,[(158,153)])
link(Data,9797136:Text,[])
}


Редактировалось 7 раз(а), последний 2024-01-15 13:03:41
карма: 20

0
файлы: 1QrCodeGenerator.zip [105.5KB] [740]
Ответов: 1103
Рейтинг: 224
#80: 2024-01-15 13:09:57 ЛС | профиль | цитата
Google API перестал выдавать QR code. Поэтому выкладываю схему при использовании https://goqr.me/api/doc/create-qr-code/


Add(MainForm,16582835,196,196)
{
Caption="api.qrserver.com QR-Encoder"
}
Add(Edit,9797136,252,196)
{
Left=140
Top=10
Width=240
Align=2
Text="Привет Hiasm!"
ClearAfterEnter=1
link(onEnter,8913171:doWork2,[])
}
Add(HTTP_Get,3284981,448,203)
{
link(onDownload,16365162:doEvent1,[])
}
Add(Hub,16365162,504,210)
{
link(onEvent1,12948547:doLoadFromStream,[])
link(onEvent2,12948547:doBitmap,[])
}
Add(Image,6965738,588,196)
{
Left=10
Top=45
Width=370
Height=220
Align=5
AutoSize=0
}
Add(Charset,13887912,399,203)
{
Type=6
link(onCharset,3284981:doDownload,[])
}
Add(FormatStr,1876016,322,203)
{
DataCount=7
Mask="http://api.qrserver.com/v1/create-qr-code/?data=%1&ecc=%2&size=%3&qzone=%4&color=%5&bgcolor=%6&format=%7"
Point(FString)
link(onFString,13887912:doCharset,[])
link(Str2,11474747:Text,[])
link(Str3,12212135:Text,[])
link(Str4,10325946:Value,[])
link(Str5,16238986:Text,[])
link(Str6,12704565:Text,[])
link(Str7,7214357:Text,[])
}
Add(Menu,5418054,196,273)
{
Menu=#16:Сгенерировать QR|
link(onSelectStr,12266315:doData,[])
}
Add(HubEx,8913171,294,203)
{
link(onEvent,1876016:doString,[])
}
Add(Jpeg,12948547,539,196)
{
Point(doLoadFromStream)
Point(doBitmap)
link(onBitmap,6965738:doLoad,[])
}
Add(VisualStrings,7214357,364,168)
{
Lines=#3:jpg|
}
Add(VisualStrings,12704565,357,140)
{
Lines=#6:ffffff|
}
Add(VisualStrings,16238986,350,112)
{
Lines=#6:000000|
}
Add(Memory,10325946,343,70)
{
Default=Integer(1)
}
Add(VisualStrings,11474747,329,21)
{
Lines=#1:M|
}
Add(VisualStrings,12212135,336,49)
{
Lines=#7:500x500|
Width=60
}
Add(DoData,12266315,252,273)
{
link(onEventData,8913171:doWork3,[(298,279)])
link(Data,9797136:Text,[])
}

карма: 20

0
Ответов: 8995
Рейтинг: 825
#81: 2024-01-15 17:39:18 ЛС | профиль | цитата
Gunta, правильно ориентировать квадрат сложно, но можно и средствами HiAsm, а уж перебрать "1" "0" и выкинуть опознавательные квадратики тем более можно
Остаётся выяснить кодировку
карма: 19

0
Ответов: 1103
Рейтинг: 224
#82: 2024-06-29 14:31:30 ЛС | профиль | цитата
Круговая диаграмма (PieChart )
Вариант 1

Add(MainForm,2953706,70,119)
{
Width=549
Height=316
Point(onClose)
link(onCreate,4794102:doString,[])
link(onClose,10162556:doConsoleTerminate,[])
}
Add(FormatStr,4794102,126,133)
{
Mask="Add-Type -AssemblyName System.Windows.Forms.DataVisualization\r\n[System.Windows.Forms.DataVisualization.Charting.Chart]::new()\r\n\r\nFunction Out-PieChart {\r\n [CmdletBinding()]\r\n param (\r\n [Parameter(ValueFromPipeline)]\r\n [psobject] $inputObject,\r\n [Parameter()]\r\n [string] $PieChartTitle,\r\n [Parameter()]\r\n [int] $ChartWidth = 800,\r\n [Parameter()]\r\n [int] $ChartHeight = 400,\r\n [Parameter()]\r\n [string[]] $NameProperty,\r\n [Parameter()]\r\n [string] $ValueProperty,\r\n [Parameter()]\r\n [switch] $Pie3D,\r\n [Parameter()]\r\n [switch] $DisplayToScreen,\r\n [Parameter()]\r\n [string] $saveImage\r\n )\r\n begin {\r\n Add-Type -AssemblyName System.Windows.Forms.DataVisualization\r\n # Frame\r\n $Chart = [System.Windows.Forms.DataVisualization.Charting.Chart]@{\r\n Width = $ChartWidth\r\n Height = $ChartHeight\r\n BackColor = 'White'\r\n BorderColor = 'Black'\r\n }\r\n # Body\r\n $null = $Chart.Titles.Add($PieChartTitle)\r\n $Chart.Titles[0].Font = 'segoeuilight,20pt'\r\n $Chart.Titles[0].Alignment = 'TopCenter'\r\n # Create Chart Area\r\n $ChartArea = [System.Windows.Forms.DataVisualization.Charting.ChartArea]::new()\r\n $ChartArea.Area3DStyle.Enable3D = $Pie3D.ToBool()\r\n $ChartArea.Area3DStyle.Inclination = 50\r\n $Chart.ChartAreas.Add($ChartArea)\r\n # Define Chart Area\r\n $null = $Chart.Series.Add('Data')\r\n $Chart.Series['Data'].ChartType = [System.Windows.Forms.DataVisualization.Charting.SeriesChartType]::Pie\r\n # Chart style\r\n $Chart.Series['Data']['PieLabelStyle'] = 'Outside'\r\n $Chart.Series['Data']['PieLineColor'] = 'Black'\r\n $Chart.Series['Data']['PieDrawingStyle'] = 'Concave'\r\n\r\n $chart.Series['Data'].IsValueShownAsLabel = $true\r\n $chart.series['Data'].Label = '#PERCENT\n#VALX'\r\n # Set ArrayList\r\n $XColumn = [System.Collections.ArrayList]::new()\r\n $yColumn = [System.Collections.ArrayList]::new()\r\n }\r\n process {\r\n if (-not $valueProperty) {\r\n $numericProperties = foreach ($property in $inputObject.PSObject.Properties) {\r\n if ([Double]::TryParse($property.Value, [Ref]$null)) {\r\n $property.Name\r\n }\r\n }\r\n if (@($numericProperties).Count -eq 1) {\r\n $valueProperty = $numericProperties\r\n }\r\n else {\r\n throw 'Unable to automatically determine properties to graph'\r\n }\r\n }\r\n if (-not $LabelProperty) {\r\n if ($inputObject.PSObject.Properties.Count -eq 2) {\r\n $LabelProperty = $inputObject.Properties.Name -ne $valueProperty\r\n }\r\n elseif ($inputObject.PSObject.Properties.Item('Name')) {\r\n $LabelProperty = 'Name'\r\n }\r\n else {\r\n throw 'Cannot convert Data'\r\n }\r\n }\r\n # Bind chart columns\r\n $null = $yColumn.Add($InputObject.$valueProperty)\r\n $null = $xColumn.Add($inputObject.$LabelProperty)\r\n }\r\n end {\r\n # Add data to chart\r\n $Chart.Series['Data'].Points.DataBindXY($xColumn, $yColumn)\r\n # Save file\r\n if ($psboundparameters.ContainsKey('saveImage')) {\r\n try{\r\n if (Test-Path (Split-Path $saveImage -Parent)) {\r\n $SaveImage = $pscmdlet.GetUnresolvedProviderPathFromPSPath($saveImage)\r\n $Chart.SaveImage($saveImage, 'png')\r\n } else {\r\n throw 'Invalid path, the parent directory must exist'\r\n }\r\n } catch {\r\n throw\r\n }\r\n }\r\n # Display Chart to screen\r\n if ($DisplayToScreen.ToBool()) {\r\n $Form = [Windows.Forms.Form]@{\r\n Width = 800\r\n Height = 450\r\n AutoSize = $true\r\n FormBorderStyle = 'FixedDialog'\r\n MaximizeBox = $false\r\n MinimizeBox = $false\r\n KeyPreview = $true\r\n }\r\n $Form.controls.add($Chart)\r\n $Chart.Anchor = 'Bottom, Right, Top, Left'\r\n $Form.Add_KeyDown({\r\n if ($_.KeyCode -eq 'Escape') { $Form.Close() }\r\n })\r\n $Form.Add_Shown( {$Form.Activate()})\r\n $form.Handle | Set-Clipboard\r\n $Form.ShowDialog() | Out-Null\r\n }\r\n }\r\n}\r\n\r\n@'\r\n%1\r\n'@ | ConvertFrom-Csv -Delimiter ';' |\r\n Out-PieChart -PieChartTitle '%2' -DisplayToScreen\r\n\r\n"
link(onFString,10162556:doConsoleExec,[])
link(Str1,3128668:Text,[])
link(Str2,13553777:Text,[(139,117)(174,117)])
}
Add(WinExec,10162556,182,119)
{
FileName="powershell"
Mode=0
Action="runas"
Point(doConsoleExec)
Point(onConsoleResult)
Point(onConsoleError)
Point(doConsoleTerminate)
Point(onConsoleTerminate)
link(onConsoleTerminate,4020321:doSetText,[])
}
Add(StrList,3128668,126,77)
{
Strings=#15:Name;Population|16:Индия;1428167000|16:Китай;1411750000|13:США;334233854|19:Индонезия;274900000|18:Пакистан;241499431|17:Нигерия;226826390|18:Бразилия;220165780|19:Бангладеш;169828911|16:Россия;146447400|17:Мексика;133649565|
}
Add(ClipboardHook,4020321,238,147)
{
link(onChange,11749786:doVisible,[])
}
Add(WinTools,11749786,294,147)
{
}
Add(VisualStrings,13553777,168,77)
{
Lines=#39:Топ 10 стран с самым большим населением|
Width=228
}

Вариант 2

Add(MainForm,7880538,140,168)
{
Width=549
Height=316
Point(onClose)
link(onCreate,4794102:doString,[])
link(onClose,10162556:doConsoleTerminate,[])
}
Add(FormatStr,4794102,196,182)
{
Mask="Add-Type -AssemblyName System.Windows.Forms.DataVisualization\r\n[System.Windows.Forms.DataVisualization.Charting.Chart]::new()\r\n\r\nFunction Out-PieChart {\r\n [CmdletBinding()]\r\n param (\r\n [Parameter(ValueFromPipeline)]\r\n [psobject] $inputObject,\r\n [Parameter()]\r\n [string] $PieChartTitle,\r\n [Parameter()]\r\n [int] $ChartWidth = 800,\r\n [Parameter()]\r\n [int] $ChartHeight = 400,\r\n [Parameter()]\r\n [string[]] $NameProperty,\r\n [Parameter()]\r\n [string] $ValueProperty,\r\n [Parameter()]\r\n [switch] $Pie3D,\r\n [Parameter()]\r\n [switch] $DisplayToScreen,\r\n [Parameter()]\r\n [string] $saveImage\r\n )\r\n begin {\r\n Add-Type -AssemblyName System.Windows.Forms.DataVisualization\r\n # Frame\r\n $Chart = [System.Windows.Forms.DataVisualization.Charting.Chart]@{\r\n Width = $ChartWidth\r\n Height = $ChartHeight\r\n BackColor = 'White'\r\n BorderColor = 'Black'\r\n }\r\n # Body\r\n $null = $Chart.Titles.Add($PieChartTitle)\r\n $Chart.Titles[0].Font = 'segoeuilight,20pt'\r\n $Chart.Titles[0].Alignment = 'TopCenter'\r\n # Create Chart Area\r\n $ChartArea = [System.Windows.Forms.DataVisualization.Charting.ChartArea]::new()\r\n $ChartArea.Area3DStyle.Enable3D = $Pie3D.ToBool()\r\n $ChartArea.Area3DStyle.Inclination = 50\r\n $Chart.ChartAreas.Add($ChartArea)\r\n # Define Chart Area\r\n $null = $Chart.Series.Add('Data')\r\n $Chart.Series['Data'].ChartType = [System.Windows.Forms.DataVisualization.Charting.SeriesChartType]::Pie\r\n # Chart style\r\n $Chart.Series['Data']['PieLabelStyle'] = 'Outside'\r\n $Chart.Series['Data']['PieLineColor'] = 'Black'\r\n $Chart.Series['Data']['PieDrawingStyle'] = 'Concave'\r\n\r\n $chart.Series['Data'].IsValueShownAsLabel = $true\r\n $chart.series['Data'].Label = '#PERCENT\n#VALX'\r\n # Set ArrayList\r\n $XColumn = [System.Collections.ArrayList]::new()\r\n $yColumn = [System.Collections.ArrayList]::new()\r\n }\r\n process {\r\n if (-not $valueProperty) {\r\n $numericProperties = foreach ($property in $inputObject.PSObject.Properties) {\r\n if ([Double]::TryParse($property.Value, [Ref]$null)) {\r\n $property.Name\r\n }\r\n }\r\n if (@($numericProperties).Count -eq 1) {\r\n $valueProperty = $numericProperties\r\n }\r\n else {\r\n throw 'Unable to automatically determine properties to graph'\r\n }\r\n }\r\n if (-not $LabelProperty) {\r\n if ($inputObject.PSObject.Properties.Count -eq 2) {\r\n $LabelProperty = $inputObject.Properties.Name -ne $valueProperty\r\n }\r\n elseif ($inputObject.PSObject.Properties.Item('Name')) {\r\n $LabelProperty = 'Name'\r\n }\r\n else {\r\n throw 'Cannot convert Data'\r\n }\r\n }\r\n # Bind chart columns\r\n $null = $yColumn.Add($InputObject.$valueProperty)\r\n $null = $xColumn.Add($inputObject.$LabelProperty)\r\n }\r\n end {\r\n # Add data to chart\r\n $Chart.Series['Data'].Points.DataBindXY($xColumn, $yColumn)\r\n # Save file\r\n if ($psboundparameters.ContainsKey('saveImage')) {\r\n try{\r\n if (Test-Path (Split-Path $saveImage -Parent)) {\r\n $SaveImage = $pscmdlet.GetUnresolvedProviderPathFromPSPath($saveImage)\r\n $Chart.SaveImage($saveImage, 'png')\r\n } else {\r\n throw 'Invalid path, the parent directory must exist'\r\n }\r\n } catch {\r\n throw\r\n }\r\n }\r\n # Display Chart to screen\r\n if ($DisplayToScreen.ToBool()) {\r\n $Form = [Windows.Forms.Form]@{\r\n Width = 800\r\n Height = 450\r\n AutoSize = $true\r\n FormBorderStyle = 'FixedDialog'\r\n MaximizeBox = $false\r\n MinimizeBox = $false\r\n KeyPreview = $true\r\n }\r\n $Form.controls.add($Chart)\r\n $Chart.Anchor = 'Bottom, Right, Top, Left'\r\n $Form.Add_KeyDown({\r\n if ($_.KeyCode -eq 'Escape') { $Form.Close() }\r\n })\r\n $Form.Add_Shown( {$Form.Activate()})\r\n $form.Handle | Set-Clipboard\r\n $Form.ShowDialog() | Out-Null\r\n }\r\n }\r\n}\r\n\r\n\r\n\r\n@'\r\n%1\r\n'@ | ConvertFrom-Csv -Delimiter ';' |\r\n Out-PieChart -PieChartTitle '%2' -Pie3D -saveImage .\pie_chart.png\r\n\r\n\r\n"
link(onFString,10162556:doConsoleExec,[])
link(Str1,4364501:Text,[])
link(Str2,7146705:Text,[(209,159)(258,159)])
}
Add(WinExec,10162556,252,168)
{
FileName="powershell"
Mode=0
Action="runas"
Point(doConsoleExec)
Point(onConsoleResult)
Point(onConsoleError)
Point(doConsoleTerminate)
Point(onConsoleTerminate)
link(onConsoleTerminate,10612163:doEvent1,[])
}
Add(Image,13903628,392,196)
{
Width=533
Height=277
Align=5
}
Add(PNG,14777831,343,196)
{
FileName="pie_chart.png"
Point(doBitmap)
link(onBitmap,13903628:doLoad,[])
}
Add(Hub,10612163,301,196)
{
link(onEvent1,14777831:doLoad,[])
link(onEvent2,14777831:doBitmap,[(333,209)(333,216)])
}
Add(VisualStrings,7146705,252,126)
{
Lines=#39:Топ 10 стран с самым большим населением|
Width=228
}
Add(StrList,4364501,196,119)
{
Strings=#15:Name;Population|16:Индия;1428167000|16:Китай;1411750000|13:США;334233854|19:Индонезия;274900000|18:Пакистан;241499431|17:Нигерия;226826390|18:Бразилия;220165780|19:Бангладеш;169828911|16:Россия;146447400|17:Мексика;133649565|
}


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

1
Голосовали:sla8a
Ответов: 1103
Рейтинг: 224
#83: 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
карма: 20

0
Ответов: 289
Рейтинг: 1
#84: 2026-05-17 13:48:20 ЛС | профиль | цитата
Леонид писал(а):
Gunta, вот программка для создания QR, библиотека всего ~100 кБ (Автор не отметился, а я к сожалению уже не помню кто )
https://forum.hiasm.com/getfile/39655

Какой то мелкий QR получается, но с увеличением количества строк - вырастает.
Если растягивать его на всю картинку, то появляются серые квадратики, сканер не читает.
Есть способ в нормальный размер привести квадрат qr кода?
карма: 1

0
Ответов: 8995
Рейтинг: 825
#85: 2026-05-17 18:22:28 ЛС | профиль | цитата
Gitarist писал(а):
мелкий QR получается
Исключительно на элементах, не быстро, На IC было бы гораздо проворнее
Схемка


Add(MainForm,2953706,126,56)
{
Width=465
Height=280
Caption="Кратное увеличение"
}
Add(Button,9899459,147,294)
{
Left=150
Top=5
Enabled=1
Caption="--->"
Point(doEnabled)
link(onClick,3057039:doFor,[])
}
Add(Image,15033202,364,203)
{
Left=20
Top=40
Width=100
Height=100
link(Bitmap,9858288:Var2,[])
}
Add(Image,1581791,567,294)
{
Left=215
Width=200
Height=200
link(Bitmap,3077523:Var2,[])
}
Add(Button,5984021,140,133)
{
Left=10
Top=10
Caption="Open"
link(onClick,5804947:doEvent1,[])
}
Add(RadioButton,15509381,420,28)
{
Left=150
Top=35
Width=45
Selected=0
Caption="x2"
Flat=0
link(onSelect,4018872:doWork2,[])
}
Add(RadioButton,13261484,427,35)
{
Left=150
Top=60
Width=40
Caption="x3"
link(onSelect,14311501:doWork2,[])
}
Add(RadioButton,4163380,434,42)
{
Left=150
Top=90
Width=45
Caption="x5"
link(onSelect,14311501:doWork3,[(478,48)])
}
Add(Button,6411692,161,182)
{
Left=150
Top=125
Enabled=1
Caption="Save"
Point(doEnabled)
link(onClick,9787488:doExecute,[])
}
Add(MathParse,9493804,420,84)
{
DataCount=3
MathStr="%1*2 + %2*3 +%3*5"
ResultType=0
Default=2
link(onResult,5295051:doWork1,[(459,90)(459,139)(403,139)])
link(X1,15509381:Selected,[])
link(X2,13261484:Selected,[])
link(X3,4163380:Selected,[])
}
Add(HubEx,14311501,474,35)
{
Angle=3
link(onEvent,4018872:doWork3,[])
}
Add(HubEx,4018872,474,28)
{
Angle=3
link(onEvent,9493804:doCalc,[(478,20)(410,20)(410,90)])
}
Add(ODialog,1267716,224,140)
{
link(onExecute,7789984:doLoad,[])
}
Add(PictureStream,7789984,273,140)
{
link(onLoad,6363003:doEvent1,[])
link(Bitmap,3077523:Var3,[(286,131)(587,131)(587,264)])
}
Add(SDialog,9787488,217,182)
{
Filter="All|*.bmp"
link(onExecute,7789984:doSave,[(266,188)(266,153)])
}
Add(ChanelToIndex,8578981,84,182)
{
link(onIndex,6411692:doEnabled,[])
}
Add(Hub,5804947,182,133)
{
link(onEvent1,8578981:doWork1,[(207,139)(207,128)(75,128)(75,188)])
link(onEvent2,1267716:doExecute,[])
}
Add(Bitmap,6724895,364,140)
{
Point(Width)
Point(Height)
}
Add(Bitmap,14598734,567,189)
{
FillColor=16777215
Point(doCreate)
Point(HWidth)
Point(HHeight)
link(HWidth,15456691:Result,[(573,180)(517,180)(517,250)(419,250)])
link(HHeight,13135467:Result,[(580,173)(510,173)(510,243)(475,243)])
}
Add(Hub,6363003,315,140)
{
OutCount=3
link(onEvent1,6724895:doLoad,[])
link(onEvent2,15033202:doLoad,[(354,153)(354,209)])
link(onEvent3,5295051:doWork2,[])
}
Add(Math,15456691,413,203)
{
OpType=2
ResultType=0
link(onResult,13135467:doOperation,[])
link(Op1,1042652:Var3,[(419,188)])
link(Op2,15849017:Var2,[])
}
Add(Math,13135467,469,203)
{
OpType=2
ResultType=0
link(onResult,12594756:doEvent1,[])
link(Op1,13936152:Var3,[(475,180)])
link(Op2,14340300:Var3,[(482,159)])
}
Add(GetDataEx,15849017,420,154)
{
link(Data,9493804:Result,[])
}
Add(Hub,12594756,525,203)
{
OutCount=3
link(onEvent1,14598734:doCreate,[])
link(onEvent2,2527139:doWork1,[(559,216)])
link(onEvent3,16249198:doWork2,[(550,223)(550,258)(81,258)(81,307)])
}
Add(ChanelToIndex,16249198,91,294)
{
link(onIndex,9899459:doEnabled,[])
}
Add(For,3057039,196,294)
{
IncludeEnd=1
link(onEvent,498296:doFor,[])
link(onStop,204165:doEvent1,[])
link(End,13936152:Var1,[(209,222)(272,222)(272,180)])
}
Add(GetDataEx,13936152,378,175)
{
link(Data,6724895:Height,[])
}
Add(For,498296,287,294)
{
IncludeEnd=1
link(onEvent,15543140:doGetPixel,[])
link(End,1042652:Var1,[(300,188)])
}
Add(GetDataEx,1042652,371,183)
{
link(Data,6724895:Width,[])
}
Add(Img_GetPoint,15543140,343,294)
{
link(onGetPixel,11778147:doFor,[])
link(Bitmap,9858288:Var1,[(349,194)])
link(X,1391026:Var3,[(356,285)(328,285)(328,334)])
link(Y,15332727:Var3,[(363,278)(279,278)(279,334)])
}
Add(GetDataEx,9858288,364,189)
{
link(Data,6724895:Bitmap,[])
}
Add(For,11778147,392,294)
{
IncludeEnd=1
link(onEvent,3920888:doFor,[])
link(End,15907190:Var1,[(405,285)])
}
Add(For,3920888,448,294)
{
IncludeEnd=1
link(onEvent,884357:doCalc,[(487,300)(487,335)(368,335)(368,370)])
link(End,15907190:Var3,[(461,285)])
}
Add(MathParse,884357,378,364)
{
DataCount=3
MathStr="%1*%2+%3"
ResultType=0
link(onResult,15206011:doCalc,[])
link(X1,15332727:Var2,[(384,355)(202,355)])
link(X2,16440852:Var1,[(391,355)])
link(X3,11778147:Position,[])
}
Add(MathParse,15206011,434,364)
{
DataCount=3
MathStr="%1*%2+%3"
ResultType=0
link(onResult,5812558:doDraw,[])
link(X1,1391026:Var2,[(440,348)(293,348)])
link(X2,16440852:Var2,[])
link(X3,3920888:Position,[])
}
Add(GetDataEx,15332727,196,329)
{
link(Data,3057039:Position,[])
}
Add(GetDataEx,1391026,287,329)
{
link(Data,498296:Position,[])
}
Add(GetDataEx,14340300,441,154)
{
Angle=3
link(Data,15849017:Var3,[])
}
Add(GetDataEx,16440852,441,350)
{
link(Data,15907190:Var2,[])
}
Add(Img_Point,5812558,490,364)
{
Point(X)
Point(Y)
Point(Color)
link(Bitmap,3077523:Var1,[(496,264)])
link(X,15206011:Result,[(503,348)(475,348)(475,404)(440,404)])
link(Y,884357:Result,[(510,355)(482,355)(482,411)(384,411)])
link(Color,15543140:Color,[(517,341)(349,341)])
}
Add(GetDataEx,3077523,567,259)
{
link(Data,14598734:Bitmap,[])
}
Add(HubEx,2527139,555,294)
{
link(onEvent,1581791:doLoad,[])
}
Add(GetDataEx,15907190,441,280)
{
link(Data,14340300:Var2,[])
}
Add(Hub,4087848,42,231)
{
link(onEvent1,8578981:doWork2,[(67,237)(67,195)])
link(onEvent2,16249198:doWork1,[(74,244)(74,300)])
}
Add(Hub,204165,238,301)
{
link(onEvent1,2527139:doWork2,[(263,307)(263,272)(501,272)(501,300)])
link(onEvent2,4087848:doEvent1,[(270,314)(270,286)(32,286)(32,237)])
}
Add(HubEx,5295051,399,154)
{
Angle=1
link(onEvent,15456691:doOperation,[(403,209)])
}

карма: 19

0
Ответов: 289
Рейтинг: 1
#86: 2026-05-17 19:01:37 ЛС | профиль | цитата
Леонид писал(а):
Gitarist писал(а):
мелкий QR получается
Исключительно на элементах, не быстро, На IC было бы гораздо проворнее
Схемка

Спасибо, Леонид, сейчас прикручу к той схеме, оставлю только X2. Этого вполне хватает. Выглядит громоздко, пугающе, но справимся )))))

Красота)


Add(SimpleForm,2953706,329,168)
{
Width=557
Height=315
Caption="QR-Encoder demo"
}
Add(Image,1581791,966,427)
{
Left=315
Top=60
Width=180
Height=180
link(Bitmap,3077523:Var2,[])
}
Add(Hub,5804947,518,273)
{
link(onEvent1,6363003:doEvent1,[])
link(onEvent2,3057039:doFor,[(560,286)(560,433)])
}
Add(Bitmap,6724895,735,273)
{
Point(Width)
Point(Height)
}
Add(Bitmap,14598734,966,322)
{
FillColor=16777215
Point(doCreate)
Point(HWidth)
Point(HHeight)
link(HWidth,15456691:Result,[(972,313)(909,313)(909,383)(811,383)])
link(HHeight,13135467:Result,[(979,306)(902,306)(902,376)(867,376)])
}
Add(Hub,6363003,686,273)
{
link(onEvent1,6724895:doLoad,[])
link(onEvent2,15456691:doOperation,[(723,286)(723,342)])
}
Add(Math,15456691,805,336)
{
OpType=2
Op2=2
ResultType=0
link(onResult,13135467:doOperation,[])
link(Op1,1042652:Var3,[(811,321)])
}
Add(Math,13135467,861,336)
{
OpType=2
Op2=2
ResultType=0
link(onResult,12594756:doEvent1,[])
link(Op1,13936152:Var3,[(867,313)])
}
Add(Hub,12594756,917,336)
{
link(onEvent1,14598734:doCreate,[])
link(onEvent2,2527139:doWork1,[(951,349)])
}
Add(For,3057039,609,427)
{
IncludeEnd=1
link(onEvent,498296:doFor,[])
link(onStop,2527139:doWork2,[(655,440)(655,405)(893,405)(893,433)])
link(End,13936152:Var1,[(622,313)])
}
Add(GetDataEx,13936152,749,308)
{
link(Data,6724895:Height,[])
}
Add(For,498296,679,427)
{
IncludeEnd=1
link(onEvent,15543140:doGetPixel,[])
link(End,1042652:Var1,[(692,321)])
}
Add(GetDataEx,1042652,742,316)
{
link(Data,6724895:Width,[])
}
Add(Img_GetPoint,15543140,735,427)
{
link(onGetPixel,11778147:doFor,[])
link(Bitmap,6724895:Bitmap,[])
link(X,1391026:Var3,[(748,418)(720,418)(720,467)])
link(Y,15332727:Var3,[(755,411)(668,411)(668,467)])
}
Add(For,11778147,777,427)
{
End=2
IncludeEnd=1
link(onEvent,3920888:doFor,[])
}
Add(For,3920888,833,427)
{
End=2
IncludeEnd=1
link(onEvent,884357:doCalc,[(879,433)(879,468)(760,468)(760,510)])
}
Add(MathParse,884357,770,504)
{
MathStr="%1*2+%2"
ResultType=0
link(onResult,15206011:doCalc,[])
link(X1,15332727:Var2,[(776,488)(615,488)])
link(X2,11778147:Position,[])
}
Add(MathParse,15206011,826,504)
{
MathStr="%1*2+%2"
ResultType=0
link(onResult,5812558:doDraw,[])
link(X1,1391026:Var2,[(832,481)(685,481)])
link(X2,3920888:Position,[])
}
Add(GetDataEx,15332727,609,462)
{
link(Data,3057039:Position,[])
}
Add(GetDataEx,1391026,679,462)
{
link(Data,498296:Position,[])
}
Add(Img_Point,5812558,882,504)
{
Point(X)
Point(Y)
Point(Color)
link(Bitmap,3077523:Var1,[(888,397)])
link(X,15206011:Result,[(895,488)(867,488)(867,544)(832,544)])
link(Y,884357:Result,[(902,495)(874,495)(874,551)(776,551)])
link(Color,15543140:Color,[(909,474)(741,474)])
}
Add(GetDataEx,3077523,966,392)
{
link(Data,14598734:Bitmap,[])
}
Add(HubEx,2527139,947,427)
{
link(onEvent,1581791:doLoad,[])
}
Add(InlineCode,1093476,455,273)
{
WorkPoints=#10:doCreateQR|
EventPoints=#8:onCreate|7:onWidth|8:onHeight|
DataPoints=#7:strCode|11:idxEncoding|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|29:uses kol,Share,Debug,QRCoder;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|27: QRCodeBitmap: PBitmap;|9: public|13: onCreate,|12: onWidth,|13: onHeight,|12: strCode,|27: idxEncoding: THI_Event;|51: procedure doCreateQR(var dt: TData; idx: word);|5: end;|0:|14:implementation|0:|33:procedure THiAsmClass.doCreateQR;|3:var|19: QRCode: TQRCoder;|23: Row, Column: Integer;|5:begin|35: QRCodeBitmap := NewBitmap(50,50);|28: QRCode := TQRCoder.Create;|5: try|45: QRCode.Data := ReadString(dt,strCode,'');|70: QRCode.Encoding := TQRCodeEncoding(ReadInteger(dt,idxEncoding,0));|35: QRCode.QuietZone := 1; //бордюр|38: QRCodeBitmap.Width := QRCode.Rows;|42: QRCodeBitmap.Height := QRCode.Columns;|37: _hi_onEvent(onWidth,QRCode.Rows);|42: _hi_onEvent(onHeight,QRCode.Columns); |38: for Row := 0 to QRCode.Rows - 1 do|9: begin|46: for Column := 0 to QRCode.Columns - 1 do|11: begin|45: if (QRCode.IsBlack[Row, Column]) then|13: begin|61: QRCodeBitmap.Canvas.Pixels[Column, Row] := clBlack;|16: end else|13: begin|61: QRCodeBitmap.Canvas.Pixels[Column, Row] := clWhite;|12: end;|10: end;|8: end;|9: finally|39: _hi_onEvent(onCreate,QRCodeBitmap);|16: QRCode.Free;|22: QRCodeBitmap.Free;|6: end;|4:end;|0:|0:|0:|4:end.|
link(onCreate,5804947:doEvent1,[])
link(strCode,3570647:Text,[])
link(idxEncoding,10680397:Index,[])
}
Add(Button,11129552,378,273)
{
Left=165
Top=10
Width=75
Caption="ToQR code"
link(onClick,1093476:doCreateQR,[])
}
Add(ComboBox,10680397,448,133)
{
Left=15
Top=10
Width=135
Height=21
Strings=#4:Auto|7:Numeric|12:Alphanumeric|10:ISO-8859-1|17:UTF-8 without BOM|14:UTF-8 with BOM|
Text="Выбрать!"
Point(Index)
Point(doSelect)
}
Add(Memo,3570647,455,210)
{
Left=80
Top=60
Width=175
Height=180
Strings=#8:31231231|2:13|3:123|14:asddasdasdasda|5:12312|16:3123123123123123|
}
Add(Timer,4975733,399,161)
{
Interval=100
AutoStop=1
link(onTimer,10680397:doSelect,[])
}

[/spoiler]
Редактировалось 2 раз(а), последний 2026-05-17 19:19:17
карма: 1

0
Ответов: 8995
Рейтинг: 825
#87: 2026-05-29 10:19:27 ЛС | профиль | цитата
Gitarist, позавчера бессоница мучала, пришлось ночью сесть за компьютер, а что бы сделать? Вспомнил про QR и набросал IC
IC


Add(MainForm,2953706,98,35)
{
Width=645
Height=454
Caption="Кратное увеличение картинок"
}
Add(InlineCode,2865515,189,147)
{
@Hint=#14:Картинка 8 бит|
WorkPoints=#7:doScale|
EventPoints=#8:onResult|7:onError|
DataPoints=#35:Abmp=Картинка для изменения размера|26:Mode=Масштаб (целое число)|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|30:uses kol,Share,Debug,Img_Draw;|0:|4:type|28: THiAsmClass = class(TDebug)|1: |10: private|0:|9: public|21: Abmp: THI_Event;|21: Mode: THI_Event;|25: onResult: THI_Event;|24: onError: THI_Event;|5: |52: procedure doScale(var _Data:TData; Index:word);|5: end;|0:|14:implementation|0:|30:procedure THiAsmClass.doScale;|3:var|23: A_bmp, B_bmp:PBitmap;|24: AA, BB,CC: pByteArray;|44: i, j, k, m, n, Sc, AW, AH, BW, BH:integer;|2: |5:begin|35: Sc:=Readinteger(_Data, Mode, 2);;|40: A_bmp:= ReadBitmap(_Data, Abmp, nil);;|27: if A_bmp = nil then exit;|29: A_bmp.PixelFormat:=pf24Bit;|18: AW:=A_bmp.Width;|19: AH:=A_bmp.Height;|33: B_bmp:=NewBitmap(AW*Sc, AH*Sc);|29: B_bmp.PixelFormat:=pf24Bit;|2: |22: for i:=0 to AH-1 do|9: begin|27: AA:=A_bmp.ScanLine[i];|30: BB:=B_bmp.ScanLine[i*Sc];|10: n:=0;|25: for j:=0 to AW-1 do|12: begin|27: for k:=0 to Sc-1 do|14: begin|20: for m:=0 to 2 do|10: begin|23: BB[n]:=AA[j*3+m];|13: n:=n+1;|9: end;|9: end; |11: end;|24: for j:=1 to Sc-1 do|12: begin |32: CC:=B_bmp.ScanLine[i*Sc];|34: BB:=B_bmp.ScanLine[i*Sc+j];|46: for k:=0 to AW*3*Sc-1 do BB[k]:=CC[k];|8: end; |8: end;|31: _hi_onEvent(onResult, B_bmp);|4:end;|4:end.|
link(onResult,14772453:doEvent1,[])
link(Abmp,12192896:Var2,[])
link(Mode,12531093:Var1,[(202,138)(104,138)])
}
Add(Image,9499685,238,84)
{
Left=5
Top=65
Width=180
Height=180
Point(ImageWidth)
Point(ImageHeight)
link(Bitmap,12192896:Var3,[(244,68)(230,68)(230,131)])
}
Add(ChildPanel,12531093,98,91)
{
link(onEvent1,7157720:doEvent1,[])
link(onEvent2,2865515:doScale,[(137,104)(137,153)])
link(Data1,8975917:Var1,[(104,82)(77,82)(77,187)])
}
BEGIN_SDK
Add(EditMulti,2975408,28,21)
{
EventCount=2
WorkCount=2
DataCount=1
VarCount=1
Width=426
Height=165
VOffset=20
HOffset=20
link(Var1,2280190:Var1,[(54,166)])
}
Add(Panel,3285920,49,70)
{
Width=629
Height=61
Align=2
}
Add(Button,1213873,280,49)
{
Left=5
Top=15
Caption="Open"
link(onClick,10512743:doExecute,[])
}
Add(Button,3159525,279,91)
{
Left=315
Top=25
Caption="Save"
Point(doEnabled)
link(onClick,16143975:doExecute,[])
}
Add(Button,10933533,279,140)
{
Left=185
Top=20
Caption=">>>"
Point(doEnabled)
link(onClick,11126918:doData,[])
}
Add(RadioButton,14002231,119,70)
{
Left=105
Selected=0
Caption="x2"
link(onSelect,4127326:doWork3,[(158,76)])
}
Add(RadioButton,9595598,168,70)
{
Left=105
Top=20
Caption="x3"
link(onSelect,6028928:doWork3,[(207,76)])
}
Add(RadioButton,1423140,217,70)
{
Left=105
Top=40
Caption="x5"
link(onSelect,6028928:doWork2,[(255,76)(255,53)])
}
Add(MathParse,9912772,119,126)
{
DataCount=3
MathStr="%1*2 + %2*3 + %3*5"
Default=2
link(X1,14002231:Selected,[])
link(X2,9595598:Selected,[(132,110)(174,110)])
link(X3,1423140:Selected,[(139,117)(223,117)])
}
Add(PictureStream,9937444,385,49)
{
Quality=100
link(onLoad,2975408:onEvent1,[(424,55)(424,47)])
link(Bitmap,2975408:Data1,[(398,33)(54,33)])
}
Add(ODialog,10512743,336,49)
{
Filter="All|*.*bmp"
link(onExecute,9937444:doLoad,[])
}
Add(SDialog,16143975,336,91)
{
Filter="All|*.bmp"
link(onExecute,9937444:doSave,[(382,97)(382,62)])
}
Add(HubEx,6028928,203,47)
{
Angle=2
link(onEvent,4127326:doWork2,[])
}
Add(HubEx,4127326,154,47)
{
Angle=2
link(onEvent,9912772:doCalc,[(109,53)(109,132)])
}
Add(DoData,11126918,336,140)
{
link(onEventData,2975408:onEvent2,[(431,146)(431,54)])
link(Data,2280190:Var3,[(342,131)(272,131)(272,166)])
}
Add(GetDataEx,2280190,119,161)
{
link(Data,9912772:Result,[])
}
END_SDK
Add(Bitmap,1521491,189,91)
{
}
Add(Bitmap,13998933,273,147)
{
Point(Width)
Point(Height)
}
Add(Hub,14772453,238,147)
{
link(onEvent1,13998933:doLoad,[])
link(onEvent2,5428383:doWork1,[(263,160)(263,209)])
}
Add(GetDataEx,8975917,273,182)
{
link(Data,13998933:Bitmap,[])
}
Add(Hub,7157720,147,91)
{
link(onEvent1,1521491:doLoad,[])
link(onEvent2,9499685:doLoad,[(172,104)(172,90)])
}
Add(GetDataEx,12192896,189,126)
{
link(Data,1521491:Bitmap,[])
}
Add(ChildScrollBox,5428383,273,203)
{
link(Data1,8975917:Var2,[])
link(Data2,13998933:Width,[])
link(Data3,13998933:Height,[])
}
BEGIN_SDK
Add(EditMulti,15652076,14,21)
{
WorkCount=1
DataCount=3
Width=209
Height=137
VOffset=42
HOffset=84
link(doWork1,11002620:doEvent1,[])
}
Add(ScrollBox,5580575,35,105)
{
Left=195
Top=60
Width=430
Height=350
}
Add(Image,15312054,168,49)
{
Width=430
Height=350
Point(doWidth)
Point(doHeight)
link(Bitmap,15652076:Data1,[(174,40)(104,40)])
}
Add(DoData,10757131,105,63)
{
link(onEventData,15312054:doWidth,[])
link(Data,15652076:Data2,[])
}
Add(DoData,8411944,112,70)
{
link(onEventData,15312054:doHeight,[])
link(Data,15652076:Data3,[])
}
Add(Hub,11002620,70,63)
{
OutCount=3
link(onEvent1,10757131:doData,[])
link(onEvent2,8411944:doData,[])
link(onEvent3,15312054:doLoad,[(95,83)(95,55)])
}
END_SDK

карма: 19

0
Ответов: 1103
Рейтинг: 224
#88: 2026-05-29 11:46:09 ЛС | профиль | цитата
Создать QR-код можно немного попроще.
https://forum.hiasm.com/getfile/40625
Если нужен именно BMP. Свойство Visible в компоненте WebBrowser: можно установить в False
https://forum.hiasm.com/getfile/40626
Проверил. Телефон прекрасно распознаёт “зашифрованные” данные.
P.S. Плохо переваривает пробелы в кириллице, с латиницей таких проблем не заметил.

--- Добавлено в 2026-05-29 11:48:04

Если нужен именно русский язык то можно заменить некоторые знаки на соответствующие но с кодом > 127
https://forum.hiasm.com/getfile/40628

--- Добавлено в 2026-05-29 11:50:51

Создание QR-кода для платежей.
https://forum.hiasm.com/getfile/40632

Откройте мобильное приложение любого крупного банка (Сбербанк, Т-Банк, ВТБ и др.), выберите «Оплата по QR-коду» и наведите камеру на получившуюся картинку.
Использована dll - https://www.nuget.org/packages/QRCoder
Разархивируйте всё в одну папку.

Редактировалось 3 раз(а), последний 2026-05-29 11:59:20
карма: 20

0
файлы: 3QR_encoder_JScript.zip [7.4KB] [5], QR_encoder_JScript_BMP.zip [8.2KB] [4], QR_encoder_JScript RU.zip [7.8KB] [5]
Ответов: 230
Рейтинг: 7
#89: 2026-05-29 14:02:56 ЛС | профиль | цитата
Создание и распознание QR-кодов, в том числе платежки тут выкладывал варианты: https://vk.com/topic-234634991_55734499. Внизу в комментах по с
ссылке andrestudio выложил схему распознания кода с библиотекой zbarimg.exe и примером для платежек

Редактировалось 3 раз(а), последний 2026-05-29 14:11:01
карма: 1
Сообщество Hiasm в VK https://vk.com/club_hiasm (компоненты, статьи, схемы).
0
Ответов: 1103
Рейтинг: 224
#90: 2026-05-29 15:14:48 ЛС | профиль | цитата
strannik_nebes писал(а):
Создание и распознание QR-кодов, в том числе платежки тут выкладывал варианты:

Чем больше разных вариантов, тем лучше.
карма: 20

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)