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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2011, 20:19   #1
Renat21
Пользователь
 
Регистрация: 04.02.2011
Сообщений: 12
По умолчанию Ассоциация файлов

Привет всем! У меня возникла такая проблема: я программно зарегистрировал в реестр расширение с именем .cid для ассоциации файлов с данным расширением с моим приложением
Вот фрагмент кода программы:

Код:
procedure TForm1.FormCreate(Sender: TObject);
var
  reg:TRegistry;
  inputstring:string;
  MySidFile:string;
  f:File;
  buf:string;
begin
if ParamCount=0 then
begin
MySidFile:=ParamStr(ParamCount);
AssignFile(f,ExtractFileName(MySidFile));
Reset(f);
BlockRead(f,buf,FileSize(f));;
Edit1.Text:=buf;
CloseFile(f);
end
else
begin
inputstring:=ExtractFilePath(Application.ExeName);
reg:=tregistry.create;
reg.rootkey:=hkey_classes_root;
reg.CreateKey('.cid\shell\open\command');
reg.openkey('.cid\shell\open\command',true);
reg.writestring('','"'+Application.ExeName+'"%1""');
reg.CloseKey;
reg.CreateKey('.cid\shell\defaulticon');
reg.OpenKey('.cid\shell\defaulticon',true);
reg.WriteString('','"'+Application.ExeName+'"');
reg.CloseKey;
reg.Destroy;
end;
end;
При запуске ошибок нет. Но в поле Edit1.Text должно быть содержимое файла с расширением .cid, но там ничего нет (В файле, например, primer.cid я с помощью блокнота ввожу какие-либо данные) Почему данные не отображаются?

Последний раз редактировалось Stilet; 05.02.2011 в 13:56.
Renat21 вне форума Ответить с цитированием
Старый 04.02.2011, 20:35   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Но в поле Edit1.Text должно быть содержимое файла с расширением .cid, но там ничего нет (В файле, например, primer.cid я с помощью блокнота ввожу какие-либо данные) Почему данные не отображаются?
может быть потому что ваше условие не выполняется?
1)есть отладка
2)почему пытаетесь взять параметр когда его не будет?
Код:
if ParamCount>0 then
 begin
  AssignFile(f,ParamStr(1));
  Reset(f);
  BlockRead(f,buf,FileSize(f));;
  Edit1.Text:=buf;
  CloseFile(f);
 end
два совета:
1)программа делает не то что вы хотите, а то что вы написали.
2)научитесь читать код, как текст.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Средства COM и ассоциация файлов со своим приложением SalasAndriy Общие вопросы Delphi 2 07.12.2014 00:25
Ассоциация файлов со своей программой dmitriegorovih Общие вопросы Delphi 7 21.08.2010 12:41
Ассоциация протоколов... prizrak1390 Работа с сетью в Delphi 2 19.09.2009 22:47
Ассоциация файла RIO Общие вопросы Delphi 4 04.09.2009 18:48
ассоциация файлов с приложением TaTT DoGG Общие вопросы .NET 3 15.03.2009 18:21