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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.07.2009, 12:04   #1
cefew
Новичок
Джуниор
 
Регистрация: 20.07.2009
Сообщений: 3
По умолчанию Вывод форматированного текста

В ответ на поисковый запрос нужно вывести результаты (примерно как в Google), при щелчке на любой из них показывается окно с полным текстом.
Как это можно реализовать?
cefew вне форума Ответить с цитированием
Старый 20.07.2009, 12:43   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Также как и Гугл, построить html страничку с линками. По сути гугл возвращает отчет о своей работе. Сделайте аналогично.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 20.07.2009, 16:09   #3
cefew
Новичок
Джуниор
 
Регистрация: 20.07.2009
Сообщений: 3
По умолчанию

Я знаю только один компонент, который может отображать html - TTextBrowser. Но как в нем обрабатывать переход по ссылке не знаю. Нужно чтобы каждая ссылка открывалась в новой вкладке (TabSheet), причем текст не хранится в файле, а генерируется на лету
cefew вне форума Ответить с цитированием
Старый 20.07.2009, 20:52   #4
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Стоп. ХТМЛ можно поместить хоть в лабел, хоть в мемо . Вопрос в другом - будет ли осуществляться автоматический переход по линку и подсветка самих линков. Ничто не мешает мне поместить код странички в Мемо правильно? Сперва Вам нужно научиться готовить для пользователя страничку с ссылками - ну просто набор линков. Если они у Вас есть думаю этот этап будет не очень сложен.

Ну собственно компонент http://yandex.ru/yandsearch?clid=145...BD%D1%82%D0%B0
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 21.07.2009, 04:39   #5
cefew
Новичок
Джуниор
 
Регистрация: 20.07.2009
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Ничто не мешает мне поместить код странички в Мемо правильно?
Правильно , но зачем?

Подготовить нужный код html нетрудно, как потом его передать в TWebBrowser для отображения?
Найденный пример не работает, ругается на IHTMLDocument2
Код:
procedure TextToWebBrowser(Text: string; var WB: TWebBrowser_V1);
var
  Document: IHTMLDocument2;
  V: OleVariant;
begin
  // Документ необходимо создать только один раз за текущую сессию работы
  if WB.Document = nil then
    WB.Navigate('about:blank');
  // Ожидаем создания документа и позволяем обрабатывать все сообщения
  while WB.Document = nil do
    Application.ProcessMessages;
  Document := WB.Document as IHtmlDocument2;
  // Вставляем текст (до 2Гб)
  {следующие строчки внесены недавно - старый вариант функции не работал под XP}
  V := VarArrayCreate([0, 0], varVariant);
  V[0] := Text;
  Document.Write(PSafeArray(TVarData(v).VArray));
  Document.Close;
end;
cefew вне форума Ответить с цитированием
Старый 21.07.2009, 08:13   #6
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от cefew Посмотреть сообщение
Правильно , но зачем?

Найденный пример не работает, ругается на IHTMLDocument2
Почему найденный пример? А где НАЙДЕННЫЕ ПРИМЕРЫ? Я давал ссылку на страничку яндекса с ссылками на описание компонента - что в полумиллионе страниц один пример? А что говорит Гугл? Я к чему веду - поиск основа Интернета.
заходим например сюда: http://www.sources.ru/delphi/delphi_...wser_faq.shtml

Смотрим:

Код:
...

var
  v: Variant;
  HTMLDocument: IHTMLDocument2;  
begin
  HTMLDocument := WebBrowser1.Document as IHTMLDocument2;
  v := VarArrayCreate([0, 0], varVariant);
  v[0] := HTMLString; // Это Ваша HTML строка
  HTMLDocument.Write(PSafeArray(TVarData(v).VArray));
  HTMLDocument.Close;

  ...
end;

...
Почти одно и тоже, но все-таки...
Кроме того, немного фантазии. Если Вы торопитесь и Вам некогда разбираться с созданием страницы:
1. Вы можете загрузить ее из файла (Ваше: зачем мне генерировать страницу в Мемо ?)
2. Вы можете вставить страничку из буфера обмена

И последнее: специально не поленился и набрал TWebBrowser в поиске по данному сайту...
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 21.07.2009 в 08:24.
Utkin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод большого текста and_kow Общие вопросы Delphi 16 08.07.2009 16:00
C|Вывод текста Troi666 Помощь студентам 4 09.05.2009 01:31
RichEdit вставка форматированного текста и расстояние между строками. Armorer Общие вопросы Delphi 2 30.04.2009 08:16
вывод текста Shkentik Общие вопросы Delphi 5 21.04.2009 23:29
вывод текста в файл Индийское диско Общие вопросы Delphi 6 09.10.2007 12:43