Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

PROBLEMZ с передачей данных [D5, Win95/98]


PleaseHelpME ©   (2004-01-28 01:11:00) 

Допустим в переменной Z тип TBitmap, что-то находиться. Я эту переменную отправляю на сервер: clientsocket1.socket.sendbuf(z,sizeof(z)). Там принимаю эти данные в переменную ab того же типа: socket.ReceiveBuf(ab,socket.ReceiveLength). Вроде как все отправилось и пришло, но как только что-нибудь делаю с этой ab (например image1.picture.bitmap:=ab), тут же возникает ошибка: "Access violation at address 00402BB4 in module 'Project1.exe'.Read of address 010C1BC4." И все. А на первый взгдяд-то все правильно. Но если данные отправлять самому себе, не на другой комп, а на свой, то все пашет: картинка получается и делай с ней что хочешь. Может кто что подскажет. А то не хочется сохранять этот битмап в файл, а потом его пересылать, там его вставлять куда надо, т.к. мне нужно это делать раза 2 в секунду.


  (2004-01-28 13:59:00) [1]

Удалено модератором


Digitman   (2004-01-28 10:41:00) [2]


> nesovsemlamer


а что за свистопляска с никами, позволь полюбопытствовать ?
нуждаешься в помощи ? изволь быть предельно корректным в собственных постах, прежде чем упрекать других !


> со stream я записывал только в файл


это здесь при чем ?

речь идет о непонимании тобой факта, что переменная объектного типа хранит не сам объект, а 4-байтную ссылку на него ! Т.е. базовый адрес экз-ра класса в ВАП тек.процесса ..


Плохиш_   (2004-01-28 10:37:00) [3]


> nesovsemlamer   (28.01.04 10:26) [2]
> C ООП мы знакомы. Так что попрошу не умничать.

Судя по вопросу, очень поверхостно


  (2004-01-28 10:26:00) [4]

Удалено модератором


Erazzer   (2004-01-28 01:46:00) [5]

1. Почитай где-нибудь, что такое объектно-ориентированное программирование.
2. Выясни, что такое конструктор (не Lego :)))
3...
и ещё так примерно до 200
:))))
а если серьёзно, то присваивая переменной тип b, ты присвеваешь толко указатель, короче правильно выглядит примерно так:
var b: TBitmap;
   ms: TMemoryStream;
...
b:=TBitmap.create(self);
b.savetostream(ms);

И отсылаешь поток... ТОЛЬКО НЕ переменную ms, а данные, которые находятся в потоке, если юзаешь indy, то там есть функция writestream, короче разбирайся, но обрати внимание на 1 часть моего ответа :)))


Наверх

Титульная страница Поиск, карта сайта Написать письмо