Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.20;
Скачать: CL | DM;

Вниз

Variant Array of Variant   Найти похожие ветки 

 
neteditor ©   (2004-06-03 23:41) [0]

Никогда не работал с данным типом и поэтому зашел в тупик.
В компоненте TWebBrowser при возникновении события BeforeNavigate2 не могу получить значение переменной PostData

TMainForm.WebBrowserBeforeNavigate2(Sender: TObject; const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,  Headers: OleVariant; var Cancel: WordBool);
var
 s: string;
begin
 s := PostData;
end;


При таком подходе длинна строки, вроде бы, правильная, вот только строка получается из одних знаков "?". Что-то с кодировками?

Конструкция VarType(PostData) and varTypeMask возвращает varVariant.


 
rrew   (2004-06-04 00:07) [1]

function VarToStr(const V: Variant): string;

попробуй так, мож че получится


 
Ломброзо ©   (2004-06-04 00:29) [2]

---------->8-----------------

The post data specified by PostData is passed as a SAFEARRAY structure. The variant should be of type VT_BYREF|VT_VARIANT, which points to a SAFEARRAY. The SAFEARRAY should be of element type VT_UI1, dimension one, and have an element count equal to the number of bytes of post data.

---------->8-----------------
в переводе: PostData - это массив типа SAFEARRAY, содержащий байты. Как его интерпретировать - как строку ли ANSI, или строку UNICODE, или как массив других переменных - неизвестно.


 
neteditor ©   (2004-06-04 13:13) [3]

[1] увы :)

[2] спасибо


var
 s: string;
 i: integer;
...
   if Length(TVariantArray(PostData)) > 0 then
   begin
     s := "";
     for i:=0 to Length(TVariantArray(PostData))-2 do
       s := s + Chr(Ord( byte(TVariantArray(PostData)[i]) ));
     Application.MessageBox(PAnsiChar(s), "test");
   end;

Может, громоздко и некрассиво, но, вроде бы, работает.



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

Текущий архив: 2004.06.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.023 c
1-1086264193
Прямой
2004-06-03 16:03
2004.06.20
Панельку надо


1-1086514150
AndrewK
2004-06-06 13:29
2004.06.20
Как передать variables в FreeReport?


14-1086183707
Alibaba
2004-06-02 17:41
2004.06.20
Video -> CD/DVD


1-1086595878
rosl
2004-06-07 12:11
2004.06.20
удалить файлы


3-1085666211
Inkotex
2004-05-27 17:56
2004.06.20
Навигацыя в базе