послать stdPicture по винсоку

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Лёха_Virus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 24.03.2003 (Пн) 17:13
Откуда: Анграск

послать stdPicture по винсоку

Сообщение Лёха_Virus » 23.04.2003 (Ср) 18:12

с отправкой всё оки, а вот приём... кодом в меня не кинете?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 24.04.2003 (Чт) 10:41

Winsock шлёт данные в формате String и (или) Variant... Сначала проконвертируй stdPicture в них %)

GoGosha
Постоялец
Постоялец
 
Сообщения: 642
Зарегистрирован: 02.08.2002 (Пт) 9:14
Откуда: Russia

Сообщение GoGosha » 25.04.2003 (Пт) 18:54

Amed писал(а):Winsock шлёт данные в формате String и (или) Variant... Сначала проконвертируй stdPicture в них %)

Не выдет! Str(IPictureDisp) ввозвращает handle окна, при этом на удалённом компьютере уже должна-быть эта картинка, причём с таким Handel-om. Я рекомендую сделать SavePicture(IPictureDisp, App.Path + "\Picture.bmp") и отослать как файл

Vi
Постоялец
Постоялец
 
Сообщения: 739
Зарегистрирован: 25.01.2002 (Пт) 11:03
Откуда: Россия, Ижевск

Сообщение Vi » 28.04.2003 (Пн) 10:52

Воспользуйся PropertyBag. Сохранив туда картинку, можно передать массив байт, принять в клиенте, и через клиентский PropertyBag восстановить в реальную картинку.
Сервер:
Код: Выделить всё
  Dim p As IPictureDisp, pb As PropertyBag, b() As Byte

  On Error Resume Next
  Set pb = New PropertyBag

  Set p = LoadPicture("...") ' или из Object.Picture
  pb.WriteProperty "Image", p
   
  b = pb.Contents
' передаем массив b

Клиент:

Код: Выделить всё
  Dim p As IPictureDisp, pb As PropertyBag, b() As Byte

  On Error Resume Next
  Set pb = New PropertyBag

' получаем массив b
  pb.Contents = b

  Set Picture1.Picture = pb.ReadProperty("Image")
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! (с) КВН

Лёха_Virus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 24.03.2003 (Пн) 17:13
Откуда: Анграск

Сообщение Лёха_Virus » 28.04.2003 (Пн) 17:15

класс! спасиба! :D


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 56

    TopList