![]() |
|
|
#1
|
|||
|
|||
|
Есть ли возможность в TListBox к конкретной строке создать событие двойной клик мышью?
При этом мне нужно запомнить id строки в TListBox и нужно написать код события. Подскажите пожалуйста как это сделать? |
|
#2
|
|||
|
|||
|
можно, через OnDblClick, и потом в процедуре делаешь проверку через case:
0: нажали на первую строку; 1: нажали на вторую и т.д.... p.S.: подробнее опиши что именно нужно |
|
#3
|
|||
|
|||
|
С листбоксом разберусь чуть позднее, мне для курсовой нужно rss reeder написать... Возможно перемудрил, но все строки прокомментированы.
Все работает за исключением: не могу найти номер строки где идет закрывающий тег </title>(до какого символа использовать функцию copy()) Прошу помочь: PHP код:
|
|
#4
|
|||
|
|||
|
Еще проблема в том что он находит этот <title>, но не первый по счету, а где то ближе к конце....Не знаю в чем дело
|
|
#5
|
|||
|
|||
|
а Pos или PosEx не пробовал использовать?
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
c: string;
n1,n2: integer;
title: string;
begin
c := IdHTTP1.Get('http://mobile-review.com.feedsportal.com/c/33244/f/557683/index.rss');
if c = '' then
ShowMessage('Ошибка'+#13+'невозможно получить html-код...')
else
begin
n1 := Pos('<title>',c) + Length('<title>');
n2 := Pos('</title>',c) - n1;
title := Copy(c,n1,n2)
ShowMessage(title);
end;
end;Последний раз редактировалось Assistant, 12.03.2011 в 20:36. |
|
#6
|
|||
|
|||
|
Есть способ по проще, на панели internet есть XMLDocument1
насколько я понимаю прямая ссылка на rss ленту - xml. нашел исходник как пример работы с xml: PHP код:
Выводит пустой showmessage, подскажие в чем проблема |
|
#7
|
|||
|
|||
|
Код:
var
b: string;
begin
XMLDocument1.LoadFromFile('http://mobile-review.com.feedsportal.com/c/33244/f/557683/index.rss');
XMLDocument1.Active := True;
b := XMLDocument1.DocumentElement.ChildNodes['channel'].ChildValues['title'];
XMLDocument1.Active := False;
ShowMessage(b);
end; |
|
#9
|
|||
|
|||
|
Код который Вы мне скинули работает, теперь проблема в том как перейти на след. тег ['title']. Их на стр. как минимум 10.
|
|
#10
|
|||
|
|||
|
яж написал ссылки, которые стоит почитать
|
|
#11
|
||||
|
||||
|
Код:
unit Unit1;
interface
uses
msxml,
ComObj,
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
XMLHTTP: Variant;
xmldomdocument: IXMLDOMDocument;
xmldomnodelist: IXMLDOMNodeList;
i: Integer;
begin
XMLHTTP:=CreateOleObject('Microsoft.XMLHTTP');
XMLHTTP.open('GET', 'http://mobile-review.com.feedsportal.com/c/33244/f/557683/index.rss', False);
XMLHTTP.send('');
if XMLHTTP.status=200 then
begin
xmldomdocument:=(IUnknown(XMLHTTP.responseXML) as IXMLDOMDocument);
xmldomnodelist:=xmldomdocument.getElementsByTagName('title');
for i:=0 to xmldomnodelist.length-1 do
if xmldomnodelist[i].parentNode.nodeName='item' then
Memo1.Lines.Add(xmldomnodelist.item[i].text);
end;
end;
end.
http://data.cod.ru/93233 |
|
#12
|
|||
|
|||
|
Теперь у меня не большие проблемы с этим:
PHP код:
Пишет ошибку: Unit1.pas(160): E2001 Ordinal type required |
|
#13
|
|||
|
|||
|
listbox1.ItemIndex наверное
|
|
#14
|
|||
|
|||
|
и еще нумерация с нуля, спасибо огромное
|
|
#15
|
|||
|
|||
|
И все-таки возникает несколько проблем с ListBox
Как проверить пустой ли он? if ListBox1.items[0]='' then Пробовал еще с itemindex пишет ошибку... И еще вопрос как оформить текст/объект в виде ссылки..т.е. при клике открывался браузер...или это нужно еще много чего писать? Последний раз редактировалось hatsub, 15.03.2011 в 17:24. |