|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.10.2010, 22:44 | #1 |
Новичок
Джуниор
Регистрация: 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. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание наследника | 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 |