Форум: "Основная";
Текущий архив: 2003.11.20;
Скачать: [xml.tar.bz2];
ВнизОткрытие файла Найти похожие ветки
← →
Zmei (2003-11-10 14:56) [0]Нужно чтобы при открытии файла(текстового) информация с него сразу открывалась в моей проге. Как сделать подскажите
← →
Anatoly Podgoretsky (2003-11-10 14:59) [1]Рашифровать вопрос.
← →
clickmaker (2003-11-10 14:59) [2]Memo1.LoadFromFile
Я угадал ? :)
← →
Zmei (2003-11-10 15:01) [3]У меня свой формат файла. Я его открываю через свой редактор. Но информация с этого файла не появляется в окне редактора. Только через File-Open. Как определить какой файл запустил редактор и скачать с него инфу
← →
Zmei (2003-11-10 15:02) [4]2 [2]
угадал угадал. Вот только с какого файла то?
← →
VAleksey (2003-11-10 15:09) [5]См.
> Anatoly Podgoretsky © (10.11.03 14:59) [1]
← →
Dr. Well (2003-11-10 15:34) [6]Если я правильно понял вопрос, необходимо зарегистрировать тип файлов в реестре и связать этот его расширение с приложением...
Ответа конкретного я не знаю (это я попытался вопрос расшифровать), но видел в реестре примерно такую запись:
HKEY_CLASSES_ROOT\Applications\Acad.exe\Default
"C:\Program Files\AutoCAD 2002\acad.exe" "%1"
Сначала в реестре регистрируется тип (расширение) - в соответсвие ему устанавливается какое-то приложение.
потом регистряется приложение в вышеуказанном формате...
Я не уверен, что именно так (даже почти уверен в обратном), но межет эта информация натолкнет Вас или других пользователей форума на мысль...
С уважением, Александр Яговдик.
← →
Dr. Well (2003-11-10 15:48) [7]Да, в Вашем приложении необходимо в обработчике формы OnCreate поместить приблизительно следующий код:
if ParamCount>0 then
begin
if (not (LowerCase(ParamStr(1))="-install")) or (not (LowerCase(ParamStr(1))="-install")) then
begin
OpenExecute(ParamStr(1)); //Выполнение процедуры открытия файла, переданного как параметр
end;
← →
Романов Р.В. (2003-11-10 16:26) [8]procedure TMainForm.RegisterFile;
var
Reg:TRegINIFile;
Descr:string;
MakeReg:Boolean;
begin
Reg:=TRegINIFile.Create("");
with Reg do
try
RootKey:=HKey_Classes_Root;
Descr:=ReadString(".ti","","No such class");
if Descr="No such class" then
MakeReg:=True
else
if CompareText(ReadString(Descr+"\Shell\Open\Command","",""),ParamStr(0)+" %1")<>0 then
MakeReg:=Application.MessageBox("Расширение "".ti"" не связано с программой infoedit. Связать?","infoedit",MB_YesNo)=IDYes
else
MakeReg:=False;
if MakeReg then
begin
WriteString(".ti","","TaskInfoFile");
WriteString("TaskInfoFile","","Файл информации о задаче");
WriteString("TaskInfoFile\DefaultIcon","",ParamStr(0)+",0");
WriteString("TaskInfoFile\Shell\Open\Command","",ParamStr(0)+" %1");
SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0);
end;
finally
Free;
end;
end;
← →
Vlad Oshin (2003-11-10 16:26) [9]
> Zmei (10.11.03 15:02) [4]
чесслово, ничего не понял
похоже см.
> Anatoly Podgoretsky © (10.11.03 14:59) [1]
← →
Zmei (2003-11-10 17:08) [10]Так блин. Извените что пишу непонятно.
Пример.
myfile.txt
Открываем его. Он открывается в текстовом редакторе. И в редакторе вы видете содержимое файла myfile.txt/
Надо.
У меня есть свой текстовый редактор!
Требуется открыть myfile.aaa
Открываем его с помощью(открыть с помощью->мой редактор). В редакторе пусто!
Вопрос.
Как сделать чтобы в редакторе открывался файл myfile.aaa, а не пустое окно.(а именно как определить какой файл открыл редактор)
← →
Anatoly Podgoretsky (2003-11-10 17:15) [11]у тебя ошибка в программе, код открытия в студию
← →
Vlad Oshin (2003-11-10 17:21) [12]procedure TForm1.FormCreate(Sender: TObject);
begin
inherited;
if paramstr(1)<>"" then memo1.Lines.LoadFromFile(paramstr(1));
end;memo1.Lines.LoadFromFile(paramstr(1));
← →
pomka (2003-11-10 19:13) [13]Эта штука пашет :)
procedure TForm1.BRegClick(Sender: TObject);
var reg:TRegistry;
begin
reg := TRegistry.Create;
reg.RootKey := HKEY_CLASSES_ROOT;
// создается ключ ".my"
reg.OpenKey(".my",true);
// создается параметр со значением "myfile"
reg.WriteString("", "myfile");
reg.CloseKey;
// создается ключ "myfile\DefaultIcon"
reg.OpenKey("myfile\DefaultIcon",true);
// заносится значение параметра "имя приложения, 0" - пиктограмма
reg.WriteString("", ParamStr(0) + ", 0");
reg.CloseKey;
// создается ключ "myfile\shell\open\command"
reg.OpenKey("myfile\shell\open\command", true);
// создается параметр со значением "имя файла %1"
reg.WriteString("", ParamStr(0) + " "%1"");
reg.CloseKey;
reg.Free;
end;
procedure TForm1.BUnRegClick(Sender: TObject);
var reg:TRegistry;
begin
reg := TRegistry.Create;
reg.RootKey := HKEY_CLASSES_ROOT;
// удаление ключей ".my" и "myfile"
reg.DeleteKey(".my");
reg.DeleteKey("myfile");
reg.Free;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
if ParamCount > 0
then begin
Memo1.Lines.LoadfromFile(ParamStr(1));
Label1.Caption := "Файл "" + ParamStr(1) + """;
end;
end;
← →
Zmei (2003-11-10 21:21) [14]код открытия в студии
procedure TForm1.FileOpen1Accept(Sender: TObject);
begin
Richedit1.Clear;
if fileexists (Fileopen1.Dialog.FileName) then
Richedit1.Lines.LoadFromFile(Fileopen1.Dialog.FileName);
end;
Это если открывать через Файл->Open. А мне нада как то присобычить на Form1.create . тока теперь как узнать имя файла(который открыл прогу)?
← →
Pattern (2003-11-10 21:50) [15]Вот у меня точно лыжи не едут!!! d;-) Четрвёртый раз читаю вопрос в разной интерпритации, всё равно ничего не понятно...
Fileopen1.Dialog.FileName - это и есть имя твоего файла...
Мож магнитные бури...
go to answer [1]
← →
Pattern (2003-11-10 21:54) [16]Стоп! А при чём тут DIALOG??? Если у тебя компанента открытия файла называется Fileopen1, то имя фала будет Fileopen1.FileName....
← →
Vlad Oshin (2003-11-11 08:31) [17]
> Zmei (10.11.03 21:21) [14]
20 раз уже сказали, что на создание формы, а имя файла - первый параметр
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.11.20;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.01 c