Форум программистов, компьютерный форум, киберфорум
Lazarus
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/25: Рейтинг темы: голосов - 25, средняя оценка - 4.76
3 / 3 / 1
Регистрация: 18.06.2016
Сообщений: 15

Открытие PDF файла через нажатие кнопки

18.06.2016, 03:25. Показов 5335. Ответов 13

Студворк — интернет-сервис помощи студентам
Как открыть PDF файл в среде Lazarus стандартными средствами Windows (у меня по умолчанию Chrome, это не важно), на событие нажатия кнопки, сам пдфник находиться в одной папке с исполняемым файлом, т.е. не конкретный путь к файлу.

Ниодин из этих методов не работает, может я что-то не то делаю?
//Windows.WinExec('Helper.pdf'',Windows.SW _NORMAL);
//ShellExecute(handle, 'open', 'Helper.pdf', nil, nil, SW_SHOWNORMAL);
//OpenDocument('Helper.pdf');
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.06.2016, 03:25
Ответы с готовыми решениями:

Открытие PDF-файла через поиск по названию ячейки DataGridView
Привет всем. Как сделать так , чтобы по нажатию на запись в гриде (фото прилагается) , затем по нажатию на кнопку открывался файл с...

Открытие PDF файлов через FireFox
Добрый вечер! Подскажите пожалуйста существует ли дополнение для FF которое позволяет просматривать PDF файлы через браузер?

Открытие pdf через WebView
Доброго времени суток. Появилась необходимость открыть pdf файл на WinForms C#. Файл открывается 1 раз через 10.. При чем не ясно при...

13
Джоуи
 Аватар для Joey
1083 / 645 / 240
Регистрация: 05.05.2015
Сообщений: 3,559
Записей в блоге: 2
18.06.2016, 23:18
Лучший ответ Сообщение было отмечено KOTJlETA как решение

Решение

KOTJlETA, в uses добавьте LCLIntf. А по щелчку на кнопке:
Delphi
1
OpenDocument('Путь к пдфайлу');
Почитать об этом: тут
1
0 / 0 / 0
Регистрация: 04.02.2023
Сообщений: 13
12.02.2023, 12:15
OpenDocument открывает только один, конкретно указанный .pdf файл. А если стоит задача открыть один из нескольких .pdf ?

OpenDialog открывает окно выбора, но при нажатии на "Открыть" - программа типа Acrobat или Nitro (или любая другая установленная по умолчанию) не запускается. Вариант по ПКМ и "Открыть с помощью..." - не вариант.

Как можно решить данный вопрос ?
0
Нарушитель
10225 / 5655 / 1257
Регистрация: 12.03.2015
Сообщений: 26,180
12.02.2023, 12:33
Цитата Сообщение от Jonfligt Посмотреть сообщение
OpenDialog открывает окно выбора, но при нажатии на "Открыть" - программа типа Acrobat или Nitro (или любая другая установленная по умолчанию) не запускается.
Кот покаж.
0
0 / 0 / 0
Регистрация: 04.02.2023
Сообщений: 13
12.02.2023, 12:36
Verevkin,
Кот спит...
Насчет кода - это абсолютно не важно. Одна форма, одна кнопка, одно действие - надо всего лишь открывать файлы .pdf средствами OpenDialog или любым другим способом.
0
Нарушитель
10225 / 5655 / 1257
Регистрация: 12.03.2015
Сообщений: 26,180
12.02.2023, 12:40
Цитата Сообщение от Jonfligt Посмотреть сообщение
надо всего лишь открывать файлы .pdf средствами OpenDialog
OpenDialog не работает с файлами, он только предоставляет интерфейс для выбора файлов из списка.
Цитата Сообщение от Jonfligt Посмотреть сообщение
Насчет кода - это абсолютно не важно.
А, ну тогда я пошёл пиво пить.
0
0 / 0 / 0
Регистрация: 04.02.2023
Сообщений: 13
12.02.2023, 12:43
Verevkin,
На здоровье.

Я не за поговорить, мой вопрос был очень простой и не привязанный к какому-либо другому коду, наоборот, мне нужна помощь как реализовать то, что мне надо, т.е. мне нужен код, а уж я потом вставлю его в свой проект
0
Нарушитель
10225 / 5655 / 1257
Регистрация: 12.03.2015
Сообщений: 26,180
12.02.2023, 13:03
Цитата Сообщение от Jonfligt Посмотреть сообщение
т.е. мне нужен код, а уж я потом вставлю его в свой проект
Настоящего программиста видно издалека!

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
uses LCLType, LCLIntf;
 
{ TFormMain }
 
procedure TFormMain.ButtonOpenClick(Sender: TObject);
var
  fn: string;
begin
  if not OpenDialog.Execute()
    then exit;
 
  for fn in OpenDialog.Files do
       if not OpenDocument(fn)
         then begin
                Application.MessageBox(PChar(Format('Не открывается файл "%s".', [fn])),
                                    'Ашыпка', MB_OK or MB_ICONSTOP);
                exit;
              end;
end;
Проверено, работает.
1
0 / 0 / 0
Регистрация: 04.02.2023
Сообщений: 13
12.02.2023, 13:15
Verevkin,

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

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
unit Unit1;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls,
  LCLType, LCLIntf;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
 
  public
 
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.lfm}
 
{ TForm1 }
 
procedure TForm1.Button1Click(Sender: TObject);
var
  fn: string;
begin
  if not OpenDialog.Execute()
    then exit;
 
  for fn in OpenDialog.Files do
       if not OpenDocument(fn)
         then begin
                Application.MessageBox(PChar(Format('Не открывается файл "%s".', [fn])),
                                    'Ашыпка', MB_OK or MB_ICONSTOP);
                exit;
              end;
end;
 
end.
Что не так ? (даже добавил в Uses - "Windows" и "ShellApi" на всякий случай...) не работает

Добавлено через 5 минут
Verevkin,

Я не писал, что программист и, если это не очевидно, раз вопрос задан в ветке "Форум программистов и сисадминов Киберфорум > Форум программистов > Delphi > Lazarus" - я использую именно в Lazarus, не в Delphi
0
Нарушитель
10225 / 5655 / 1257
Регистрация: 12.03.2015
Сообщений: 26,180
12.02.2023, 13:21
Цитата Сообщение от Jonfligt Посмотреть сообщение
Что не так ?


Не поленился, записал видео.
Вложения
Тип файла: 7z thread1765466.7z (12.56 Мб, 13 просмотров)
0
0 / 0 / 0
Регистрация: 04.02.2023
Сообщений: 13
12.02.2023, 13:23
Verevkin,

Беру свои слова назад, предоставленный код рабочий, имя не совпадало.
Спасибо большое !

Добавлено через 1 минуту
Цитата Сообщение от Verevkin Посмотреть сообщение
Не поленился, записал видео.
К сожалению инет слабый, мобильный, может потом как-нибудь посмотрю.
0
Нарушитель
10225 / 5655 / 1257
Регистрация: 12.03.2015
Сообщений: 26,180
12.02.2023, 13:25
Цитата Сообщение от Jonfligt Посмотреть сообщение
Спасибо большое !
С тебя пиво.
Цитата Сообщение от Jonfligt Посмотреть сообщение
К сожалению инет слабый, мобильный
Размер видео 8 Мб.
1
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,328
12.02.2023, 14:30
Цитата Сообщение от Jonfligt Посмотреть сообщение
Проверено, не работает
Что именно не работает? Не открываются файлы?

Я проверил, работает. Только твой код не будет компилироваться. Нужно ещё добавить компонент OpenDialog, тогда заработает.
0
0 / 0 / 0
Регистрация: 04.02.2023
Сообщений: 13
12.02.2023, 17:32
AzAtom,
Выше написал, что все работает, вопрос решен
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.02.2023, 17:32
Помогаю со студенческими работами здесь

Открытие pdf файла
Как правильно открыть pdf файлы в delphi? Пробовал открывать через процедуру shellexecute , но выдает ошибку и открывает только doc файлы...

Открытие PDF файла
Не могли бы подсказать ка программно и в каком элементе можно открыть PDF файл?

Открытие pdf-файла в браузере
Как средствами php открыть pdf файл в браузере?

Открытие pdf файла из меню
Есть браузер ActiveQt в котором при нажатии на определенный пункт меню должен открываться pdf файл. Подскажите, пожалуйста, как это...

Открытие и чтение PDF-файла
Нужно написать код программы для открытия и чтения pdf файла в eclipse


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru