Открыть URL

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
JuraS
незнакомец
Сообщения: 9
Зарегистрирован: 05.10.2008 18:22:06

Открыть URL

Сообщение JuraS »

Здравствуйте.
Подскажите как открыть URL программно на Lazarus, что бы это инициировало запуск бровзера и т.п.
В общем то, что в Windows делается ShellExecute, но чтобы работало и под Linux тоже.
Заранее спасибо.

PS:
Искал подобную тему. Не нашел :(
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

JuraS писал(а):Здравствуйте.
Подскажите как открыть URL программно на Lazarus, что бы это инициировало запуск бровзера и т.п.
В общем то, что в Windows делается ShellExecute, но чтобы работало и под Linux тоже.
Заранее спасибо.

Универсального способа нет!
JuraS писал(а):PS:
Искал подобную тему. Не нашел :(

Плохо ищете на форуме обсуждался данный вопрос для Linux'a....
JuraS
незнакомец
Сообщения: 9
Зарегистрирован: 05.10.2008 18:22:06

Сообщение JuraS »

Хм...ну тогда дали бы ссылку...или, если вам не сложно :), сказали бы верный поисковый запрос.
И раз универсального нет, то как определить платформу...
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

Для определения платформы у вас есть перпроцессорные средства условной компиляции

Код: Выделить всё

{$IFDEF WINDOWS}Код для Виндафс{$ENDIF}
{$IFDEF LINUX}Соотвктственно для Линя{$ENDIF}
и т.д.

Читайте документацию на компилятор FPC :wink:
JuraS
незнакомец
Сообщения: 9
Зарегистрирован: 05.10.2008 18:22:06

Сообщение JuraS »

Да, про эти директивы я забыл: друг их использовал и я мельком видел их в коде...
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

Меньше ленитесь и всё у вас получится тыц-тыц :wink:

Добавлено спустя 1 минуту 22 секунды:
пост от Odyssey
JuraS
незнакомец
Сообщения: 9
Зарегистрирован: 05.10.2008 18:22:06

Сообщение JuraS »

Меньше ленитесь и всё у вас получится тыц-тыц


Ваше пожелание будет учтено. ;)
Но в поиске скорее опыт важен чем труд.
Большое спасибо.
Аватара пользователя
Alexx2000
постоялец
Сообщения: 491
Зарегистрирован: 25.10.2006 00:22:07
Откуда: Мытищи
Контактная информация:

Сообщение Alexx2000 »

Есть один кроссплатформенный способ:
  • Подключаем модуль HelpIntfs
  • На форму кидаем компоненты HTMLHelpDatabase и HTMLBrowserHelpViewer
  • У обоих утанавливаем свойство AutoRegister = True

После этого ссылку можно открыть следующим образом:

Код: Выделить всё

procedure TForm1.Button1Click(Sender: TObject);
var
  err: string;
begin
  if HelpIntfs.ShowHelp('http://www.yandex.ru', 'Lazarus', 'text/html', err) <> shrSuccess then
    ShowMessage(err);
end;

Работает как в Windows, так и в Linux. Этот способ используется в самом Лазарусе в окне "О проекте Lazarus".
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

В итоге линкуется куча неиспользуемого (мёртвого) кода...
Аватара пользователя
VAshot
постоялец
Сообщения: 128
Зарегистрирован: 01.11.2007 11:31:21
Откуда: Пермь

Сообщение VAshot »

Компонент TOvcURL из набора Orpheus. Но под "не Win" не проверял.
Аватара пользователя
shade
энтузиаст
Сообщения: 879
Зарегистрирован: 21.02.2006 19:15:48
Откуда: http://shamangrad.net/
Контактная информация:

Сообщение shade »

Проверил код от Odyssey, у меня работает замечательно, судя по коду в нормальных дистрибутивах будет работать.
В крайнем случае можно добавить в настройки путь к нестандартному браузеру, хотя в большистве случаев думаю нет необходимости заморачиваться.

Добавлено спустя 25 секунд:
Надо в базу знаний занести :-)
Odyssey
энтузиаст
Сообщения: 580
Зарегистрирован: 29.11.2007 16:32:24

Сообщение Odyssey »

Это код не от Odyssey, это код от Graeme Geldenhuys, из проекта fpGUI.

shade писал(а):Надо в базу знаний занести

Может, лучше сразу в LCL? :wink: Добавил #13574.
Пост в базе знаний тут.
Ответить