Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Corba";
Текущий архив: 2011.07.17;
Скачать: [xml.tar.bz2];

Вниз

Как передать динамический массив битмапов.   Найти похожие ветки 

 
Дмитрий Белькевич ©   (2007-04-02 15:07) [0]

Нахожу примеры, как с помощью OLE передавать отдельные битмапы, но как передать несколько битмапов, заранее не зная их количество?
И клинет и сервер - мои.


 
umbra ©   (2007-04-02 15:53) [1]


> как передать несколько битмапов, заранее не зная их количество?

а как можно не знать количества? неужели нет никакого проверочного условия?


 
Дмитрий Белькевич ©   (2007-04-02 16:06) [2]

Клиентом дергается метод серверного интерфейса. Клиенту для сервера нужно передать несколько tbitmap. Заранее сказать (имеется в виду на этапе компиляции) невозможно. Т.е. в одном вызове метода может передаваться одна картинка, в следующем - 10. С одной картинкой всё просто - можно передать через параметр метода типа VARIANT (OleVariant), например, как массив байт - varByte (или как IPucture, не суть важно). Но как передать несколько картинок за один вызов - непонятно.
Пробовал создать двумерный OleVariant с типом varByte. Потом не могу до него достучаться - VarArrayLock не лочится, т.к. вторая размерность - не varArray.
Как создавать массив IPucture, не нашел. Вероятно, принципиально по-другому нужно делать. Как - не знаю.


 
Дмитрий Белькевич ©   (2007-04-02 16:07) [3]

>Заранее сказать (имеется в виду на этапе компиляции) невозможно.
Читать: Заранее сказать сколько tbimap будет передаваться (имеется в виду на этапе компиляции) невозможно.


 
tesseract ©   (2007-04-02 18:07) [4]


> Читать: Заранее сказать сколько tbimap будет передаваться
> (имеется в виду на этапе компиляции) невозможно.


Делай интефейс - заведи метод Get/SetBitmapCount - и всё, никаких художеств. И в цикле шурши битмапами.


 
Дмитрий Белькевич ©   (2007-04-02 22:33) [5]

Передать количество битмапов не проблема. Можно и в том же методе того же интерфейса. Но как в пределах одного вызова одного метода переслать сразу много битмапов? Критично, что бы эти все битмапы были объединены одним вызовом - иначе я бы, конечно, последовательно их передавал.

p.s. Спасибо за ответы.


 
atruhin ©   (2007-04-03 04:57) [6]

> можно передать через параметр метода типа VARIANT (OleVariant)
> , например, как массив байт

Ну а кто мешает как массив байт и передавать?
1 байт - кол-во битмапов.
2..XX - массив размеров или смещений битмапов (типа integer).


 
Дмитрий Белькевич ©   (2007-04-03 11:12) [7]

Да, я думал об этом. Хочется более красивое решение. Нашел IStorage. Возможно, это будет как раз оно...


 
Дмитрий Белькевич ©   (2007-04-03 22:26) [8]

Посмотрел IStorage. Честно говоря, думал, что структуры в памяти хранятся, а потом в файл по надобности сбрасываются. Однако, оказалось, что система просто информацию в файл сбрасывает, что не дает мне преимуществ, т.к. как раз сохранять файлы и не хотелось.

Всё таки, видимо, придется свою структуру передаваемого массива делать и передавать всё в одномерном массиве.
Если еще будут идеи готов выслушать и спасибо за ответы.



Страницы: 1 вся ветка

Форум: "Corba";
Текущий архив: 2011.07.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.003 c
15-1301938826
vrem
2011-04-04 21:40
2011.07.17
Уплавнение: То, ради чего стоит поменять процессор и видеокарту


2-1302342810
Alex_C
2011-04-09 13:53
2011.07.17
Создать модальное окно


1-1259428639
VMan80
2009-11-28 20:17
2011.07.17
Поиск в TreeView


15-1301922483
OW
2011-04-04 17:08
2011.07.17
Как можно облажаться в коде


2-1302808428
Алекс_123
2011-04-14 23:13
2011.07.17
RichEdit прокрутка текста





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский