![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Свое расширение на файл.
oleg_teacher © (2008-02-21 13:07:00)Допустим есть на форме мемо. Сохраняю текст в файл сосвоим расшмрением. Как мне ето расширение связать с мое програмой и что бы при запуске етого файла текст размещался автоматически на мемо!!
MetalFan (2008-02-24 23:14:00) [1]
> for i:=2 to ParamCount do
> begin
> Str:=Str+' '+ParamStr(i);
> end;
накой эти телодвижения?
Вредитель (2008-02-24 16:00:00) [2]var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CLASSES_ROOT;
Reg.OpenKey('.BMP' , True);
Reg.WriteStringC1, 'BMPfile');
Reg.CloseKey;
Reg.CreateKey('BMP'+'file_cyd');
Reg.OpenKey('BMPfile\Defaultlcon', True);
Reg.WriteString('', Application.ExeName + ',0');
Reg.CloseKey;
Reg.OpenKey('BMPfileVshellXppenXcommand', True);
Reg.WriteStringC1, Application.ExeName + ' "%!"');
Reg.CloseKey;
Reg.Free;
end;
procedure TForml.FormShow(Sender: TObject);
Str:String,•
i:Integer;
begin
if (ParamCount > 0) then
begin
Str:=ParamStr(1);
for i:=2 to ParamCount do
begin
Str:=Str+' '+ParamStr(i);
end;
Imagel.Picture.LoadFromFile(Str);
end;
end;
пример с picture
Leonid Troyanovsky (2008-02-23 10:54:00) [3]
> oleg_teacher (21.02.08 13:07)
http://groups.google.com/group/borland.public.delphi.winapi/msg/ae81683432ea8efb
--
Regards, LVT.
NaRuTo (2008-02-23 10:08:00) [4]Короче создаёшь в реестре раздел '.твоё расширение' в HKEY_CLASSES_ROOT. Щёлкаешь по этому разделу... Там будет ключ: "По умолчанию". Вот открой его и напиши имя своего приложения...
Дальше создаёшь в HKEY_CLASSES_ROOT раздел с именем который ты написал в ключе "По умолчанию" (Обязательно)...
После создания..Щёлкай по этому разделу можешь создать иконку раздел "DefaultIcon",дальше открытие.... Нужно в этом разделе создать раздел
shell->open->command .,..В ключе по умолчанию пишешь где твоё приложение находится.... + "%1".
Чтоб твоя програ их открывала теперь в событии Show пользуйся ParamStr(1)
:)
Amoeba (2008-02-22 16:48:00) [5]
> Loginov Dmitry © (22.02.08 07:52) [10]
Забей! Нервные клетки не восстанавливаются.
Loginov Dmitry (2008-02-22 07:52:00) [6]> [8] Дмитрий Патрушев © (22.02.08 00:31)
Пример кода ты дал. А вот где обоснования в пользу его использования? На кой там дополнительная переменная? Да еще с именем "S". Зачем параметр запоминать до ...Run? Ворона его украдет чтоли? И как ты собираешься передавать "S" в форму "сразу же после ее create" (переменная "S" недоступна из других модулей)?
Не каждый смог бы дойти до такой чуши (даже если ооочень много выпьет) :)
Германн (2008-02-22 01:21:00) [7]
> Дмитрий Патрушев © (22.02.08 00:31) [8]
>
> program hren
> var
> s: string
> beg..
> Application...
>
> s:= paramstr(1)
> ....Run
> end.
>
> А на форме онкреате юзаешь s. (конечно же s надаа передать
> в форму сразу же после ее create)
>
Пить надо меньше.
Надо же такую чушь придумать!
Дмитрий Патрушев (2008-02-22 00:31:00) [8]program hren
var
s: string
beg..
Application...
s:= paramstr(1)
....Run
end.
А на форме онкреате юзаешь s. (конечно же s надаа передать в форму сразу же после ее create)
oleg_teacher (2008-02-21 14:21:00) [9]Всем огромное спасиба и за PARAMSTR и за [1] и [2] будем разбиратся.
{RASkov} (2008-02-21 13:47:00) [10]> [4] oleg_teacher (21.02.08 13:43)
Так ты уже [1] изучил??? А ведь там даже примеры кодом есть....
oleg_teacher (2008-02-21 13:43:00) [11]я извиняюсь за незнание, но какой параметр при открытии дает название файла
Palladin (2008-02-21 13:43:00) [12]ParamStr + F1
webpauk (2008-02-21 13:20:00) [13]вообще то Tmemo.Text можно сохранить только в текстовый файл, независимо от его расширения. Соответственно когда прописал связь расширения со своей программой - при открытии из параметров получаешь имя файла, а дальше - Tmemo.Lines.LoadFromFile(...)
Palladin (2008-02-21 13:15:00) [14]
> Как мне ето расширение связать с мое програмой
procedure vtRegisterFileType(Const p_strExt,p_strExtDesc,p_strDesc,p_strExec:string);
Begin
If (p_strExt='') or (p_strExtDesc='') or (p_strExec='') Then Exit;
With TRegIniFile.Create Do
Try
RootKey:=HKEY_CLASSES_ROOT;
WriteString(p_strExt,'',p_strExtDesc);
If p_strDesc=''
Then WriteString(p_strExtDesc,'',p_strExtDesc)
Else WriteString(p_strExtDesc,'',p_strDesc);
WriteString(p_strExtDesc+'\shell\open\command','','"'+p_strExec+'" "%1"');
Finally
Free;
End;
end;
> что бы при запуске етого файла текст размещался автоматически
> на мемо!!
типа самый хитрый чтоли? тебе название файла придет в параметрах при запуске приложения... а что с ним делать должен ты решать...
Johnmen (2008-02-21 13:14:00) [15]1.
http://www.yandex.ru/yandsearch?text=%E7%E0%F0%E5%E3%E8%F1%F2%F0%E8%F0%EE%E2%E0%F2%FC+%F1%E2%EE%E5+%F0%E0%F1%F8%E8%F0%E5%ED%E8%E5+%F4%E0%E9%EB%E0
2.
Как ты обработаешь параметр исполняемого файла, так и будет.