Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 31.10.2010, 15:53
Nurlan Nurlan вне форума
Прохожий
 
Регистрация: 29.12.2009
Сообщения: 28
Репутация: 10
По умолчанию электроный учебник

привет форумчане! мне в колледже дали курсовой, надо сделать электронный учебник, на данный моомент все замечательно,
мне хотелось бы знать про компонент webbrowser! я указал пути к html файлам и все открывается,но допустим я поставил свой электроный учебник на другой компьютер, не будут ли сбиваться пути в компоненте webbrowser, если да то как сделать чтобы этого не было!

procedure TForm1.ListBox1Click(Sender: TObject);
begin
if listbox1.ItemIndex = 0 then
webbrowser1.Navigate('C:\электроный учебник\web.htm');
Ответить с цитированием
  #2  
Старый 31.10.2010, 16:20
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Мне кажется, лучше было бы не статичный адрес сделать, а чтобы он был где-нибудь в настройках. Сейчас получается, что учебник ОБЯЗАТЕЛЬНО должен быть в C:\электронный учебник\web.htm. А если прописать в конфигах, или попросить при запуске открыть - то можно выбирать.
Что если у пользователя нет диска C:\ ?
Еще можно сделать, чтобы он не от C:\ искал, а от текущей папки. И учебник будет распространяться как папка 'Учебник', в ней лежат программа и папка 'электронный учебник'.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #3  
Старый 31.10.2010, 16:24
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Цитата:
Сообщение от Nurlan
if listbox1.ItemIndex = 0 then
webbrowser1.Navigate('C:\электроный учебник\web.htm');

Думаю лучше заменить if на case, чтоб не было много if'ов:
Код:
case listbox1.ItemIndex of
0:webbrowser1.Navigate('C:\электроный учебник\web.htm');
1:...
2:...
...
end;
На счет пути: Вы все файлы (html) должны хранить рядом с вашей программой (или не посредственной в ней самой). Ну если будете хранить допустим все html файлы в папке с вашей программой, то просто пишите так:
Код:
ExtractFilePath(ParamStr(0)); - эта функция вернет путь к папке с вашими файлами, а потом просто обращайтесь к этим файлам по их именам...

Пример к вашему случаю:
Код:
...
webbrowser1.Navigate(ExtractFilePath(ParamStr(0)) + 'web.htm');
__________________
Помогаю за Спасибо
Ответить с цитированием
  #4  
Старый 31.10.2010, 16:27
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Еще вместо ParamStr(0) можно использовать Application.Exename.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #5  
Старый 31.10.2010, 16:30
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Цитата:
Сообщение от Bargest
Еще вместо ParamStr(0) можно использовать Application.Exename.
А есть разница? Вообще то функция Application.EXEName берет свое значение как раз из нулевого параметра программы, то бишь из ParamStr(0).
__________________
Помогаю за Спасибо
Ответить с цитированием
  #6  
Старый 31.10.2010, 16:32
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Вот даже продемонстрирую:
Код:
    property ExeName: string read GetExeName;

    function GetExeName: string;
И вот эта функция:
function TApplication.GetExeName: string;
begin
  Result := ParamStr(0);
end;
__________________
Помогаю за Спасибо
Ответить с цитированием
  #7  
Старый 31.10.2010, 16:36
Nurlan Nurlan вне форума
Прохожий
 
Регистрация: 29.12.2009
Сообщения: 28
Репутация: 10
По умолчанию

как открывать файлы через opendialog, вот мой код: if opendialog1.Execute then webbrowser1.Navigate('C:\web.htm'); т.е кликаешь на кнопку и выбираешь html файл и он отображается в компоненте webbrowser

Последний раз редактировалось Nurlan, 31.10.2010 в 16:41.
Ответить с цитированием
  #8  
Старый 31.10.2010, 16:48
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Цитата:
Сообщение от Nurlan
как открывать файлы через opendialog, вот мой код: if opendialog1.Execute then webbrowser1.Navigate('C:\web.htm'); т.е кликаешь на кнопку и выбираешь html файл и он отображается в компоненте webbrowser

Код:
if opendialog1.Execute then webbrowser1.Navigate(OpenDialog1.FileName);
__________________
Помогаю за Спасибо
Ответить с цитированием
  #9  
Старый 31.10.2010, 16:51
Nurlan Nurlan вне форума
Прохожий
 
Регистрация: 29.12.2009
Сообщения: 28
Репутация: 10
Радость

v1s2222 СПСИБО БольШОЕ
Ответить с цитированием
  #10  
Старый 31.10.2010, 16:54
Nurlan Nurlan вне форума
Прохожий
 
Регистрация: 29.12.2009
Сообщения: 28
Репутация: 10
По умолчанию

ВСЕМ БОЛЬШОЕ СПАСИБО!!!!!!!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:59.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter