Delphi открыть в программе

При открывании какого-нибудь файла запускается нужная программа и открывает этот файл. Не подскажите, как написать в программе, чтобы распознать имя открываемого файла. Например, при открытии файла *.txt по умолчанию запускается программа блокнот и открывает этот файл. Я хочу, чтобы этот файл открывался в моей программе, созданной на Delphi. Однако, моя программа запустилась, НО как открыть файл программно?

unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ShellAPI; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure WMDropFiles(var Msg: TWMDropFiles); message WM_DROPFILES; private < Private declarations >public < Public declarations >end; var Form1: TForm1; implementation procedure TForm1.FormCreate(Sender: TObject); begin DragAcceptFiles(Handle,true); end; procedure TForm1.WMDropFiles(var Msg: TWMDropFiles); var f:array[0..MAX_PATH] of char; begin If DragQueryFile(Msg.Drop,0,f,MAX_PATH)>0 then Caption:=f; end; end.

К сожалению, по этому коду такая программа открывает файл только перетаскиванием значка-файла на форму программы и открывает файл. А мне охота двойным щелчком открыть файл.

Открытие файла с помощью нашей программы (Dephi)


PS: мне нужно хотя бы получить полное имя открываемого файла, например, Caption:=f; а остальное я сам открою!

Форумчанин
Регистрация: 03.04.2013
Сообщений: 703

При открывании какого-нибудь файла запускается нужная программа и открывает этот файл. Не подскажите, как написать в программе, чтобы распознать имя открываемого файла. Например, при открытии файла *.txt по умолчанию запускается программа блокнот и открывает этот файл. Я хочу, чтобы этот файл открывался в моей программе, созданной на Delphi. Однако, моя программа запустилась, НО как открыть файл программно?

unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ShellAPI; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure WMDropFiles(var Msg: TWMDropFiles); message WM_DROPFILES; private < Private declarations >public < Public declarations >end; var Form1: TForm1; implementation procedure TForm1.FormCreate(Sender: TObject); begin DragAcceptFiles(Handle,true); end; procedure TForm1.WMDropFiles(var Msg: TWMDropFiles); var f:array[0..MAX_PATH] of char; begin If DragQueryFile(Msg.Drop,0,f,MAX_PATH)>0 then Caption:=f; end; end.

Читайте также:
Ведущие программы снимите это немедленно

К сожалению, по этому коду такая программа открывает файл только перетаскиванием значка-файла на форму программы и открывает файл. А мне охота двойным щелчком открыть файл.
PS: мне нужно хотя бы получить полное имя открываемого файла, например, Caption:=f; а остальное я сам открою!

Если я не ошибаюсь то в реестре можно настроить. точно не помню где-то видел..

HKEY_CLASSES_ROOT

Как то так.

Источник: www.programmersforum.ru

урок на Делфи — 39. Открыть чужую программу

Delphi открыть в программе

Действительно, ничего не понял. А ведь пытался сформулировать вопрос как можно понятнее.

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

← →
Вася ( 2004-08-07 20:50 ) [4]

Ты хоть сам понял, что сказал? В какую программу? Куда именно?
Бред сумасшедшего чистой воды

Ну вот ты открываешь файл с расширением txt. Запускается блокнот, при этом содержимое файла txt сразу загружается в блокнот.

Похоже, что вы тоже не поняли моего вопроса. И очень сильно не поняли.

Мне нужно только, чтобы содержимое открываемого файла определённого расширение попадало в мою программу. При чём тут вирусы?

procedure TForm1.FormCreate(Sender: TObject);
var DateiName: String;
DateiErweiterung: String;
begin
if ParamCount > 0 then
begin
DateiErweiterung := «»;
DateiName := ParamStr(1);
DateiErweiterung := UpperCase(Copy(DateiName,Length(DateiName) — 3,4));

if (DateiErweiterung = «.BMP») or (DateiErweiterung = «.JPG») then
begin
Image1.Picture.LoadFromFile(DateiName);
end;
end;
end;

В проводнике Windows, если у тебя XP, кликаешь интересующий тебя файл правой кнопкой, откроется контекстное меню, там выберешь (не знаю, как обзываются эти пункты меню в русском виндовсе, но думаю догадаешься) открыть такой-то прогой:), далее в открывшемся окне нажимаешь искать и ищешь собственную программу, затем ставишь галочку — этот тип файла всегда открывать этой программой. Если у тебя не XP, то держишь Shift и кликаешь правой кнопкой, далее — как описанно выше.

Читайте также:
Отладочные программы помогающие находить и устранять ошибки

Источник: delphimaster.net

DelphiComponent.ru — бесплатно видеоуроки по Delphi, статьи, исходники

Программа может вводить исходные данные не только с клавиатуры, но ииз текстового файла. Для того чтобы воспользоваться этой возможностью,нужно объявить файловую переменную типа TextFiie, назначить ей припомощи инструкции AssignFile имя файла, из которого будут считываться данные, открыть файл для чтения (ввода) и прочитать (ввести) данные, используя инструкцию read ИЛИ reaciln.

Открытие файла

Открытие файла для ввода (чтения) выполняется вызовом процедуры Reset, имеющей один параметр — файловую переменную. Перед вызовом процедуры Reset с помощью функции AssignFile файловая переменная должна быть связана с конкретным файлом.

Например, следующие инструкции открывают файл для ввода:

AssignFile(f, ‘с:data . txt1);

Если имя файла указано неверно, например файла с указанным именем на диске нет, то возникает ошибка времени выполнения программы. Следует отметить, что другой причиной возникновения ошибки при открытии файла, находящегося на гибком диске, может быть отсутствие готовности дисковода, проше говоря, отсутствие диска в накопителе. Поэтому в программе следует предусмотреть возможность повторной попытки открытия файла после подтверждения повторения операции.

Как и при открытии файла для записи, программа может взять на себя задачу обработки возможной ошибки при открытии файла, проверяя значение функции lOResult.

Фрагмент программы, текст которого приведен в листинге 7.4, использует значение функции lOResuit для проверки результата открытия файла. Если попытка открыть файл вызывает ошибку, то программа выводит диалоговое окно с сообщением об ошибке и запросом на подтверждение повторного открытии файла.

Листинг 7.4. Обработка ошибки открытия файла (фрагмент программы)

Источник: delphicomponent.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru