Форум: "Основная";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];
ВнизVariant Array of Variant Найти похожие ветки
← →
neteditor © (2004-06-03 23:41) [0]Никогда не работал с данным типом и поэтому зашел в тупик.
В компоненте TWebBrowser при возникновении события BeforeNavigate2 не могу получить значение переменной PostDataTMainForm.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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.038 c