Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2015, 20:51   #1
harmager
Пользователь
 
Регистрация: 24.11.2008
Сообщений: 16
По умолчанию SafeArray помогите разобраться

Здравствуйте, уважаемые форумчане. Мне необходимо преобразовать динамический массив строкового типа (или тип данных TStringList) в SafeArray. Подскажите, пожалуйста, возможно ли это и, если да, то как я могу это сделать.
Заранее благодарен.
harmager вне форума Ответить с цитированием
Старый 20.12.2015, 21:54   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
var arr:Variant;
...
  arr:=VarArrayCreate([0,0],varVariant);
  arr[0]:=StringList.Text; 
  ...PSafeArray(TVarData(arr).VArray);
Такое устроит?
Кстати, если не секрет - зачем? С интерфейс СОМ объекта что-то передавать собрался?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.12.2015, 22:41   #3
harmager
Пользователь
 
Регистрация: 24.11.2008
Сообщений: 16
По умолчанию

Ответ на вопрос по поводу COM - нет, работа ведётся с компонентом WebBrowser. Приведённая Вами инструкция знакома, но... извините, разве в данном случае ( arr:=VarArrayCreate([0,0],varVariant) ) массив будет ДИНАМИЧЕСКИЙ?
harmager вне форума Ответить с цитированием
Старый 20.12.2015, 23:11   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
работа ведётся с компонентом WebBrowser.
У. Да я угадал...
Код:
 innerHTML:=VarArrayCreate([0,0],varVariant);
  innerHTML[0]:=Content; //'<html><body><a href="123">123</a><a href="123">123</a><br></body></html>';
  Document.write(PSafeArray(TVarData(innerHTML).VArray));
  Document.close;
Вот как я работаб с Веббраузером.
Цитата:
разве в данном случае ( arr:=VarArrayCreate([0,0],varVariant) ) массив будет ДИНАМИЧЕСКИЙ?
А разве статический? Массив, что распределяется по ходу работы и есть динамический. Тебе HTML нужно засунуть в него? Пример я дал.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.12.2015, 23:26   #5
harmager
Пользователь
 
Регистрация: 24.11.2008
Сообщений: 16
По умолчанию

Предположим, что существует локальный чат. Чат основан на сокетах. Вся переписка активного сеанса хранится в TstringList (или динамический массив строкового типа). Так как хотелось бы "подсвечивать" разными цветами сообщения (мои одним цветом, собеседника - другим) и при этом не разрабатывать что-то своё на основе ListBox или иного компонента (чат не претендует на аналог NetSpeakerfon или ICQ, или что-то в этом роде, практически баловство и так, в какой-то степени навести некую красоту) решил использовать WebBrowser. В него помещается (отображается) переписка. Так что же получается, каждый раз как пользователь будет отсылать или получать сообщения, мне придётся создавать и разрушать массив? Извините если неправильно выразился.
harmager вне форума Ответить с цитированием
Старый 21.12.2015, 12:35   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Так что же получается, каждый раз как пользователь будет отсылать или получать сообщения, мне придётся создавать и разрушать массив?
В целом да. У тебя же многопользовательская программа.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться bor32 Помощь студентам 9 25.04.2015 20:39
файл и SafeArray Yurik1024 Общие вопросы Delphi 1 03.09.2009 09:35
Помогите разобраться Юля6ка Паскаль, Turbo Pascal, PascalABC.NET 5 01.10.2008 22:39
Помогите разобраться Proof БД в Delphi 13 19.05.2008 10:59
помогите разобраться!) Юliana Помощь студентам 1 30.01.2008 01:16