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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2010, 22:44   #1
OnCreate
Новичок
Джуниор
 
Регистрация: 19.10.2010
Сообщений: 2
По умолчанию [B]Написать наследника компонента. Delphi.[/B]

Здравствуйте товарищи. Слёзно прошу вас помочь мне написать компонент, наследник TStringGrid. Этот компонент должен уметь читать RSS ленту новостей, используя парсер от Microsoft. Когда мы ставим компонент на форму, мы указываем в свойстве адрес ленты и при активации свойства Active например, он нам читает нововсти и заполняет их в свои ячейки. У меня получилось сделать обыкновенное приложение, не компонент, в этом приложении все делается с TMemo. А вот как это всё реализовать в компоненте, да тем более наследнике TStringGrid не представляю.
Вот код моего приложения:

procedure TForm1.Button1Click(Sender: TObject);
Var rss_doc: IXMLDOMDocument;
node1: IXMLDOMNode;
i:Integer;
begin
If not (OpenDialog1.Execute) then Exit;
rss_doc:=CoDOMDocument.Create;
rss_doc.async:=False;
rss_doc.load(OpenDialog1.FileName);

if rss_doc.parseError.errorCode<>0 then
begin
ShowMessage('При загрузке файл произошла ошибка!'+#13#10+
'Код ошибки: '+IntToStr(rss_doc.parseError.error Code)+#13#10+
'Текст ошибки: '+rss_doc.parseError.reason+#13#10+
'Строка с ошибкой: '+IntToStr(rss_doc.parseError.line) +#13#10+
'Символ в строке с ошибкой: '+IntToStr(rss_doc.parseError.linep os));
CoUnInitialize;
Exit;
end;
node1:= rss_doc.selectSingleNode('//rss');
For i:=0 to node1.selectNodes('//item').length-1 do
begin
Memo1.Lines.Add('Заголовок');
Memo1.Lines.Add(node1.selectnodes('//item').item[i].selectSingleNode('title').Text);
Memo1.Lines.Add('Ссылка');
Memo1.Lines.Add(node1.selectnodes('//item').item[i].selectSingleNode('link').Text);
Memo1.Lines.Add('Описание');
Memo1.Lines.Add(node1.selectnodes('//item').item[i].selectSingleNode('description').Te xt);
If not (node1.selectnodes('//item').item[i].selectSingleNode('PubDate') = nil) then
begin
Memo1.Lines.Add('Дата публикации');
Memo1.Lines.Add(node1.selectnodes('//item').item[i].selectSingleNode('PubDate').Text)
end;
If not (node1.selectnodes('//item').item[i].selectSingleNode('Author') = nil) then
begin
Memo1.Lines.Add('Автор');
Memo1.Lines.Add(node1.selectnodes('//item').item[i].selectSingleNode('Author').Text);
end;
If not (node1.selectnodes('//item').item[i].selectSingleNode('lastBuildDate') = nil) then
begin
Memo1.Lines.Add('lastBuildDate');
Memo1.Lines.Add(node1.selectnodes('//item').item[i].selectSingleNode('lastBuildDate'). Text);
end;
end;
end;

end.
OnCreate вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание наследника ImmortalAlexSan Общие вопросы Delphi 4 29.04.2010 14:19
Создание компонента Delphi 7 alex_triton Помощь студентам 12 08.10.2009 09:45
Delphi. Скриншот компонента AlexandЯ Помощь студентам 4 14.04.2009 00:06
Понятие компонента в Delphi showman Помощь студентам 2 05.06.2007 23:26