как я могу иметь представление о том, что его элементы содержат ссылки (направить нас на html-страницы)?Ссылка lable в Listview (Delphi)
Спасибо
как я могу иметь представление о том, что его элементы содержат ссылки (направить нас на html-страницы)?Ссылка lable в Listview (Delphi)
Спасибо
Ум, да, это легко сделать и вызвать браузер по умолчанию с помощью Delphi. Вот базовый пример с проверкой (так что вы можете иметь значения, отличные от URL-адреса, в вашем списке):
uses ShLwApi, ShellApi;
procedure TForm1.ListView1DblClick(Sender: TObject);
begin
if PathIsURL(PChar(ListView1.Selected.Caption)) then
begin
ShellExecute(self.WindowHandle, 'open', PChar(ListView1.Selected.Caption),
nil, nil, SW_SHOWNORMAL);
end;
end;
Либо использовать ListView или сетку, которая поддерживает эту опцию готовые (tms software, например, имеет компоненты, которые поддерживают «мини» HTML) или со стандартным TListView сделать что-то вроде:
type
TLinkItem = class(TObject)
private
FCaption: string;
FURL: string;
public
constructor Create(const aCaption, aURL: string);
property Caption: string read FCaption write FCaption;
property URL: string read FURL write FURL;
end;
constructor TLinkItem.Create(const aCaption, aURL: string);
begin
FCaption := aCaption;
FURL := aURL;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
Item: TListItem;
i: Integer;
begin
FLinkItems := TObjectList.Create({AOwnsObjects=}True);
FLinkItems.Add(TLinkItem.Create('StackOverflow', 'http://www.stackoverflow.com'));
FLinkItems.Add(TLinkItem.Create('BJM Software', 'http://www.bjmsoftware.com'));
for i := 0 to FLinkItems.Count - 1 do
begin
Item := ListView1.Items.Add;
Item.Caption := TLinkItem(FLinkItems[i]).Caption;
Item.Data := Pointer(FLinkItems[i]);
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
FreeAndNil(FLinkItems);
end;
procedure TForm1.ListView1Click(Sender: TObject);
var
LinkItem: TLinkItem;
URL: string;
begin
LinkItem := TLinkItem(ListView1.Items[ListView1.ItemIndex].Data);
URL := LinkItem.URL;
ShellExecute(Handle, 'open', PChar(URL), nil, nil, SW_SHOW);
end;
Это зависит от вас, как вы хотите, чтобы ваш цвет отображал ссылки в вашем ListView. Если вы будете придерживаться давно установленных стандартов Интернета, вы сделаете их синими и подчеркнутыми.
Думаю, вы должны отредактировать свой код! что такое «FLinkItems»? я не понимаю. – Kermia
Должен? Я думаю, что я дал вам достаточно, чтобы продолжить, не выполняя для вас свою работу. FLinkItems объявляется как поле-член в объявлении класса формы, которая содержит компонент TListView. –
И как установить синий цвет и подчеркивание для ссылок? – Kermia