Вверх ↑
Этот топик читают: Гость
Ответов: 117
Рейтинг: 1
#1: 2026-09-30 17:27:53 ЛС | профиль | цитата
Всем привет. понадобилось мне данные получать через API, а на HiAsm решения не нашел. Через имеющиеся компоненты полноценно реализовать не получилось. Так и решил попробовать написать свой компонент. Протестировав и несколько раз переделав весь получился неплохой компонент.

Code


Пример схемы

Add(MainForm,2953706,21,14)
{
Width=397
Caption="ApiInfo"
BorderStyle=3
Position=1
}
Add(Button,8186454,21,119)
{
Left=20
Top=20
Width=70
Height=30
Caption="GET"
link(onClick,10524069:doEvent1,[])
}
Add(Button,5046044,21,203)
{
Left=20
Top=70
Width=70
Height=25
Caption="POST"
link(onClick,2597589:doEvent1,[])
}
Add(Memo,11197742,210,126)
{
Left=100
Top=20
Width=275
Height=200
}
Add(ApiInfo,9851530,98,126)
{
link(onResult,15858458:doWork2,[])
link(onError,7638269:doWork1,[(165,139)])
link(onStatus,1438925:doWork1,[(173,146)])
link(onMethod,3101651:doWork1,[(155,153)])
link(URL,1031474:Text,[])
link(Method,9305094:Text,[(111,93)(237,93)])
link(Headers,3913627:Text,[(118,104)(279,104)])
}
Add(VisualStrings,1031474,98,63)
{
Lines=#23:https://httpbin.org/get|
Width=130
}
Add(StatusBar,842252,210,182)
{
}
Add(VisualStrings,9305094,231,63)
{
@Hint=#3:GET|
Lines=#1:0|
AddHint(8,-24,37,13,@Hint)
}
Add(VisualStrings,3913627,273,63)
{
Lines=#24:accept: application/json|
Width=123
}
Add(Label,123884,280,161)
{
Left=270
Top=245
Caption="Статус"
}
Add(Label,7508768,329,168)
{
Left=330
Top=245
Caption="Метод"
}
Add(Hub,10524069,63,119)
{
link(onEvent1,3289687:doWork1,[(193,125)])
link(onEvent2,9851530:doApi,[])
}
Add(Hub,2597589,63,203)
{
link(onEvent1,3289687:doWork3,[(193,209)])
link(onEvent2,14120767:doApi,[(87,216)(87,314)])
}
Add(VisualStrings,9915957,273,245)
{
Lines=#24:accept: application/json|
Width=123
}
Add(ApiInfo,14120767,98,308)
{
link(onResult,15858458:doWork3,[(179,314)])
link(onError,7638269:doWork3,[(165,321)])
link(onStatus,1438925:doWork3,[(173,328)])
link(onMethod,3101651:doWork3,[(155,335)])
link(URL,3599811:Text,[])
link(Method,10280190:Text,[(111,275)(237,275)])
link(Headers,9915957:Text,[(118,286)(279,286)])
link(Body,6534836:Text,[(125,295)(412,295)])
}
Add(VisualStrings,3599811,98,245)
{
Lines=#24:https://httpbin.org/post|
Width=130
}
Add(VisualStrings,10280190,231,245)
{
@Hint=#4:POST|
Lines=#1:1|
AddHint(8,-24,44,13,@Hint)
}
Add(HubEx,3289687,189,133)
{
link(onEvent,11197742:doClear,[])
}
Add(HubEx,15858458,175,126)
{
link(onEvent,11197742:doAdd,[])
}
Add(HubEx,7638269,161,182)
{
link(onEvent,842252:doText,[])
}
Add(HubEx,1438925,169,161)
{
link(onEvent,123884:doText,[])
}
Add(HubEx,3101651,151,168)
{
link(onEvent,7508768:doText,[])
}
Add(VisualStrings,6534836,406,210)
{
@Hint=#4:BODY|
Width=144
Height=53
AddHint(3,-38,45,13,@Hint)
}
Add(VisualStrings,1465325,413,63)
{
Lines=#14: 0 = 'GET';|15: 1 = 'POST';|14: 2 = 'PUT';|16: 3 = 'PATCH';|17: 4 = 'DELETE';|15: 5 = 'HEAD';|18: 6 = 'OPTIONS';|
Width=144
Height=102
}





Редактировалось 7 раз(а), последний 2026-09-30 17:45:49
карма: 0
well done turner
0
файлы: 1ApiInfo.zip [3.8KB] [20]
Ответов: 4677
Рейтинг: 768
#2: 2026-09-30 18:57:39 ЛС | профиль | цитата
Эти компоненты, вероятно, умеют то же самое
карма: 26

0
Ответов: 117
Рейтинг: 1
#3: 2026-10-01 09:24:04 ЛС | профиль | цитата
ну вот не нашел я этих компонентов, да и форум был не доступен. вот и сделал
карма: 0
well done turner
0
3
Сообщение
...
Прикрепленные файлы
(файлы не залиты)