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

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

Вернуться   Форум программистов > Delphi программирование > Lazarus, Free Pascal, CodeTyphon
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2016, 02:13   #1
Gorodok7
Новичок
Джуниор
 
Регистрация: 26.12.2016
Сообщений: 4
По умолчанию Экспорт из html файла текста и изображений. Лазарус.

Здравствуйте. Программирую я достаточно недавно, ответ на свой вопрос в интернете не нашёл (может плохо искал). У меня есть файл, в нем имеется некоторый текст и изображения. Мне нужно всё содержимое этого файла вывести на форму. В интернете почитал, что на Delphi это можно реализовать с помощью компонента WebBrowser, в лазарусе же я нашёл только компонент IpHtmlPanel. Где-то часик в ней полазив, я смог из html файла загружать текст (с html также не работал). Дальше перешёл к изображениям, вставив в html код ( <p><img src="dzen.png" alt="Альтернатива"></p> ) и закинув изображение в ту же папку, где и хранится сам html файл, во время работы возникла ошибка, исправить не смог, подскажите как быть.
P.S. Пишу на форум первый раз, если что-то непонятно, извините.

Код для IpHtmlPanel в программе:
var m1: TMemo;
begin
m1:=TMemo.Create(form1);
m1.lines.loadfromfile('file.html');
IpHtmlPanel1.sethtmlfromstr(m1.line s.text);
end;
Изображения
Тип файла: jpg 11.jpg (17.0 Кб, 138 просмотров)
Gorodok7 вне форума Ответить с цитированием
Старый 27.12.2016, 19:49   #2
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Добавь на форму компонент IpFileDataProvider1. В инспекторе объектов в свойстве DataProvider компонента IpHtmlPanel1 выбери этот компонент.

Ну или сделай так
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
with TStringList.Create do
begin
LoadFromFile('file.htm');
IpHtmlPanel1.DataProvider:= IpFileDataProvider1;
IpHtmlPanel1.sethtmlfromstr(text);
free;
end;
end;  

//либо этот код тоже открывает файл 
procedure TForm1.Button2Click(Sender: TObject);
begin
IpHtmlPanel1.DataProvider:= IpFileDataProvider1;
IpHtmlPanel1.OpenURL(ExtractFilePath(Application.ExeName) + 'file.htm');
end;


Путь в htm файле пропиши так <p><img src="./dzen.png" alt="Альтернатива"></p>

Проверенно работает

Последний раз редактировалось Aliens_wolfs; 27.12.2016 в 21:49.
Aliens_wolfs вне форума Ответить с цитированием
Старый 27.12.2016, 22:36   #3
Gorodok7
Новичок
Джуниор
 
Регистрация: 26.12.2016
Сообщений: 4
По умолчанию

Спасибо, работает. Теперь у меня по кнопке открывается новая форма, на эту форму сразу загружается текст и картинки из html файла. Теперь возникла другая проблема, если я эту форму с html документом закрою и попытаюсь открыть заново, то вылетает ошибка. Я так понимаю нужно как-то очищать адресс у IpFileDataProvider ?
Изображения
Тип файла: jpg Безымянный.jpg (51.0 Кб, 164 просмотров)

Последний раз редактировалось Gorodok7; 27.12.2016 в 22:39. Причина: Вложения.
Gorodok7 вне форума Ответить с цитированием
Старый 27.12.2016, 22:47   #4
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Покажите ваш код где открывается форма и идет загрузка htm
попробуй путь файла укажи вот так
Код:
(ExtractFilePath(Application.ExeName) + 'file.htm')
Да и код что я выше написал внимательно посмотри у меня все работает
возможно что то не так делаешь

Последний раз редактировалось Aliens_wolfs; 27.12.2016 в 23:04.
Aliens_wolfs вне форума Ответить с цитированием
Старый 28.12.2016, 00:22   #5
Gorodok7
Новичок
Джуниор
 
Регистрация: 26.12.2016
Сообщений: 4
По умолчанию

Код:
procedure TForm1.Button5Click(Sender: TObject);
begin
   form3.IpHtmlPanel1.DataProvider:= IpFileDataProvider1;
   form3.IpHtmlPanel1.OpenURL(ExtractFilePath(Application.ExeName) + 'recipes\file.html');
   form3.show;
end;
При первом нажатии на кнопку, третья форма открывается, на ней выводится информация из html документа. Если форму закрыть и заново нажать на кнопку, то программа вылетает с ошибкой, скрин выше.

Использовал второй способ, так как при первом варианте программа не компилировалась.

Последний раз редактировалось Gorodok7; 28.12.2016 в 00:40.
Gorodok7 вне форума Ответить с цитированием
Старый 28.12.2016, 06:43   #6
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Сделай вот такое дополнение к коду

Код:
  
procedure TForm1.Button5Click(Sender: TObject);
begin 
form3.IpHtmlPanel1.DataProvider:= form3.IpFileDataProvider1;
  form3.IpHtmlPanel1.SetHtmlFromStr(''); 
   form3.IpHtmlPanel1.OpenURLOpenURL(ExtractFilePath(Application.ExeName) + 'recipes\file.html');
form3.show;
end;
либо так тоже работает
Код:
procedure TForm1.Button5Click(Sender: TObject);
begin
with TStringList.Create do
begin
LoadFromFile(ExtractFilePath(Application.ExeName) + 'recipes\file.html');
form3.IpHtmlPanel1.DataProvider:= form3.IpFileDataProvider1;
form3.IpHtmlPanel1.sethtmlfromstr(text);
free;
end; 
form3.show;
end;

Последний раз редактировалось Aliens_wolfs; 28.12.2016 в 17:13.
Aliens_wolfs вне форума Ответить с цитированием
Старый 28.12.2016, 17:43   #7
Gorodok7
Новичок
Джуниор
 
Регистрация: 26.12.2016
Сообщений: 4
По умолчанию

Всё заработало! Спасибо большое.
Gorodok7 вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
экспорт картинки в html Оля2394 БД в Delphi 5 06.05.2015 11:59
Для чтения из файла хотел использовать TStringLis. Лазарус и External: SIGSEGV Костян Пират Lazarus, Free Pascal, CodeTyphon 6 02.07.2014 08:39
Экспорт содержимого Dbgrid в html и xml Discovery-24 БД в Delphi 0 03.05.2011 21:26
Скрипт (программа) переноса текста из HTML файла на сайт под joomla sergiksergik Фриланс 0 20.03.2011 17:36