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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.04.2012, 17:37   #1
Smagulov85
Форумчанин
 
Аватар для Smagulov85
 
Регистрация: 22.11.2009
Сообщений: 142
По умолчанию Загрузить данные из XML в ComboBox

Привет!!


Цитата:
procedure TForm1.Button1Click(Sender: TObject);
var
i:Integer;
begin
XMLDocument1.LoadFromFile('http://мой сайт.ru/xml');
XMLDocument1.Active := true;
with XMLDocument1.DocumentElement.ChildN odes['version'].ChildNodes do
for i:=0 to Count-1 do
ComboBox1.Items.Add(Nodes[i].Attributes['it'])
XMLDocument1.Active := false;
end;
Этот код работает но выдает ошибку

Exception class EVariantTypeCastError with message 'Could not convert variant of type (Null) into type (OleStr)'.

Побывал так

Цитата:
uses Classes, Variants;
function OleVariantToString(const Value: OleVariant): string;
var ss: TStringStream;
Size: integer;
Data: PByteArray;
begin
Result:='';
if Length(Value) = 0 then Exit;
ss:=TStringStream.Create;
try
Size := VarArrayHighBound (Value, 1) - VarArrayLowBound(Value, 1) + 1;
Data := VarArrayLock(Value);
try
ss.Position := 0;
ss.WriteBuffer(Data^, Size);
ss.Position := 0;
Result:=ss.DataString;
finally
VarArrayUnlock(Value);
end;
finally
ss.Free;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
i:Integer;
begin
XMLDocument1.LoadFromFile('http://мой сайт.ru/xml');
XMLDocument1.Active := true;
with XMLDocument1.DocumentElement.ChildN odes['version'].ChildNodes do
for i:=0 to Count-1 do
ComboBox1.Items.Add(OleVariantToStr ing(Nodes[i].Attributes['it']));
XMLDocument1.Active := false;
end;
Выдает другую ошибку

Exception class EVariantInvalidArgError with message 'Invalid argument'.


как это исправить!!!! Заранее спасибо!!
Если помог: Нажми Весы и оставь отзыв!!!
Smagulov85 вне форума Ответить с цитированием
Старый 02.04.2012, 13:18   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Этот код работает но выдает ошибку

Exception class EVariantTypeCastError with message 'Could not convert variant of type (Null) into type (OleStr)'.
в одном из полученных узлов XMLDocument1.DocumentElement.ChildN odes['version'].ChildNodes
нет запрошенного атрибута Nodes[i].Attributes['it'] есть NULL
if Nodes[i].Attributes['it'] =nil
if IsNULL(Nodes[i].Attributes['it'])
if Nodes[i].Attributes['it'] =NULL
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 03.04.2012, 08:31   #3
Smagulov85
Форумчанин
 
Аватар для Smagulov85
 
Регистрация: 22.11.2009
Сообщений: 142
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
в одном из полученных узлов XMLDocument1.DocumentElement.ChildN odes['version'].ChildNodes
нет запрошенного атрибута Nodes[i].Attributes['it'] есть NULL
if Nodes[i].Attributes['it'] =nil
if IsNULL(Nodes[i].Attributes['it'])
if Nodes[i].Attributes['it'] =NULL
Все спасибо!! я разобрался сам!! Все гораздо проще

Цитата:
ComboBox1.Items.Add(VarToStr(Nodes[i].Attributes['it']));
Если помог: Нажми Весы и оставь отзыв!!!
Smagulov85 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
combobox - xml, из DataGridView1 в DataGridView2 gslim C# (си шарп) 0 14.07.2011 11:28
Как загрузить данные на StringGrid полученный от сервера ? ДаниярЛ2 Работа с сетью в Delphi 3 09.09.2010 14:32
Загрузить уникальные значения колонки таблицы в Combobox Akemi БД в Delphi 2 07.06.2010 13:41
Загрузить из БД в ComboBox artemavd БД в Delphi 35 07.06.2009 14:26
как отправить и загрузить данные с сервера? proglamer Работа с сетью в Delphi 3 11.03.2008 07:54