Вверх ↑
Этот топик читают: Гость
Ответов: 58
Рейтинг: 1
#1: 2015-10-25 00:54:59 ЛС | профиль | цитата
Чтобы загрузить картинку из интернета,не сохраняя ее на диск,для обычного компонента HTTP_Get такая схема:
Add(MainForm,2953706,21,105)
{
Width=260
Height=233
link(onCreate,3232123:doDownload,[(111,125)(111,195)])
}
Add(HTTP_Get,3232123,182,189)
{
URL="http://forum.hiasm.net/xx/fmain2.png"
link(onDownload,12243692:doEvent1,[])
}
Add(PNG,3145304,294,175)
{
Point(doLoadFromStream)
Point(doBitmap)
link(onBitmap,5984040:doLoad,[])
}
Add(Hub,12243692,238,196)
{
link(onEvent1,3145304:doLoadFromStream,[(273,202)(273,195)])
link(onEvent2,3145304:doBitmap,[(273,209)(273,202)])
}
Add(Image,5984040,427,175)
{
Left=40
Top=15
Width=185
Height=175
}


А как сделать тоже самое для компонента HTTPClient?
Add(HTTPClient,11366782,259,189)
{
}
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 4622
Рейтинг: 746
#2: 2015-10-25 17:44:59 ЛС | профиль | цитата
Схемы не видно. Если на словах, то используя метод doLoadStream загрузить картинку в компонент MemoryStream, и в компонентах картинок загрузить картинку из MemoryStream.
карма: 26

0
Ответов: 58
Рейтинг: 1
#3: 2015-10-25 22:34:11 ЛС | профиль | цитата
Netspirit, простите. Вот:
code_36435.txt
------------ Дoбавленo в 22.34:
у меня не получается
карма: 0

0
файлы: 2code_36423.txt [589B] [221], code_36435.txt [556B] [229]
Ответов: 4622
Рейтинг: 746
#4: 2015-10-26 11:33:41 ЛС | профиль | цитата
code_36440.txt
карма: 26

1
файлы: 1code_36440.txt [2.2KB] [391]
Голосовали:Jonson
Ответов: 58
Рейтинг: 1
#5: 2015-10-26 21:27:15 ЛС | профиль | цитата
Netspirit, Спасибо!
------------ Дoбавленo в 21.27:
Еще один вопрос ,а как для bmp картинок сделать?
карма: 0

0
Ответов: 4622
Рейтинг: 746
#6: 2015-10-27 10:58:43 ЛС | профиль | цитата
Вместо PNG - компонент BitmapStream
карма: 26

0
Ответов: 58
Рейтинг: 1
#7: 2015-10-27 21:35:48 ЛС | профиль | цитата


Add(Image,5984040,532,224)
{
Left=40
Top=15
Width=185
Height=175
}
Add(HTTPClient,3108342,329,217)
{
Point(doLoadStream)
Point(Stream)
link(onFinish,9467491:doRead,[])
link(Stream,12972062:Var2,[])
}
Add(Button,15365725,224,238)
{
Left=25
Top=200
link(onClick,13506793:doEvent1,[])
}
Add(MemoryStream,11197660,343,133)
{
}
Add(Hub,13506793,280,238)
{
link(onEvent1,11197660:doClear,[(318,244)(318,146)])
link(onEvent2,3108342:doLoadStream,[])
}
Add(GetDataEx,12972062,343,182)
{
link(Data,11197660:Stream,[])
}
Add(BitmapStream,9467491,462,224)
{
link(onRead,5984040:doLoad,[])
link(Stream,12972062:Var3,[(468,187)])
}


карма: 0

0
файлы: 1code_36449.txt [684B] [237]
Ответов: 4622
Рейтинг: 746
#8: 2015-10-28 11:30:33 ЛС | профиль | цитата
Ну, правильно. И в чём проблема?
------------ Дoбавленo в 11.30:
А, да, для BitmapStream нужно возвращать позицию в потоке:
Add(Image,5984040,707,427)
{
Left=40
Top=15
Width=185
Height=175
}
Add(HTTPClient,3108342,448,357)
{
URL="http://localhost/1.bmp"
Point(doLoadStream)
Point(Stream)
Point(RawHeaders)
link(onFinish,12942537:doEvent1,[])
link(Stream,12972062:Var2,[])
}
Add(Button,15365725,343,378)
{
Left=25
Top=200
link(onClick,13506793:doEvent1,[])
}
Add(MemoryStream,11197660,462,273)
{
Point(doPosition)
}
Add(Hub,13506793,399,378)
{
link(onEvent1,11197660:doClear,[(430,384)(430,286)])
link(onEvent2,3108342:doLoadStream,[])
}
Add(GetDataEx,12972062,462,322)
{
link(Data,11197660:Stream,[])
}
Add(BitmapStream,9467491,644,427)
{
link(onRead,5984040:doLoad,[])
link(Stream,12972062:Var3,[(650,327)])
}
Add(Hub,12942537,518,364)
{
link(onEvent1,746231:doData,[])
link(onEvent2,9467491:doRead,[(563,377)(563,433)])
}
Add(DoData,746231,588,364)
{
Data=Integer(0)
link(onEventData,11197660:doPosition,[(633,370)(633,340)(450,340)(450,293)])
}
карма: 26

0
Ответов: 58
Рейтинг: 1
#9: 2015-10-28 20:56:37 ЛС | профиль | цитата
Netspirit, Спасибо большое!!))
карма: 0

0
Ответов: 4622
Рейтинг: 746
#10: 2015-10-29 13:00:52 ЛС | профиль | цитата
Ещё можно делать так: code_36457.txt
карма: 26

0
файлы: 1code_36457.txt [471B] [280]
Ответов: 58
Рейтинг: 1
#11: 2015-11-05 22:17:58 ЛС | профиль | цитата
Netspirit, Cпасибо),а иногда бывает такое,что картинка не загружается с первого раза
------------ Дoбавленo в 22.17:
Но я решил эту проблему вот таким образом :
Add(Image,78088,511,273)
{
Left=40
Top=15
Width=185
Height=175
}
Add(HTTPClient,8309346,322,266)
{
Point(doLoadStream)
Point(Stream)
Point(RawHeaders)
link(onFinish,10590048:doConvert,[])
link(onError,11207746:doWork3,[(366,293)(366,284)(277,284)])
}
Add(Button,10425993,224,266)
{
Left=85
Top=200
link(onClick,11207746:doWork2,[])
}
Add(BitmapStream,10856001,448,273)
{
link(onRead,78088:doLoad,[])
}
Add(StreamConvertor,10590048,385,273)
{
Mode=7
link(onResult,10856001:doRead,[])
}
Add(HubEx,11207746,273,266)
{
link(onEvent,8309346:doLoadString,[])
}


карма: 0

0
Ответов: 4622
Рейтинг: 746
#12: 2015-11-06 11:28:07 ЛС | профиль | цитата
Нельзя так делать. Это может привести к зависанию программы. В таких случаях ставится бесконечный Repeat (или For с количеством попыток) на метод и в случае успеха Repeat останавливается. В твоём варианте можно тоже по onError поставить счётчик попыток.
карма: 26

0
Гость
Ответов: 17029
Рейтинг: 0
#13: 2015-11-06 11:32:40 правка | ЛС | профиль | цитата


Редактировалось 4 раз(а), последний 2021-05-21 07:56:31
карма: 0

0
Flash-alex (сообщение скрыто ввиду неодобрения читателями) показать
-4
Голосовали:Konst, Bams, Nickname, Vadimluk1
Ответов: 632
Рейтинг: 4
#15: 2016-10-21 19:30:00 ЛС | профиль | цитата
Flash-alex, здесь все равны и нет королей!
карма: 0

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