|
Вопрос # 40/ вопрос решён / |
|
Здравствуйте эксперты!
Вот сейчас пишу текстовый редактор...
Но одно не могу понять, как, чтобы при открытии любого файла (например, с расширением txt) открывалась моя программа и в RichEdit загружался текст из данного файла...
Даже после регистрации моей программы к расширению txt при открытии этого файла программа открывается, но текст не загружается... Помогите, кто может...
 |
Вопрос задал: feenords (статус: 1-ый класс)
Вопрос отправлен: 17 июня 2006, 01:24
Состояние вопроса: решён, ответов: 3.
|
Ответ #1. Отвечает эксперт: Dron
Раз программа уже запускается для данного типа файлов, значит вам осталась совсем малость. Windows передаёт путь к открываемому файлу в первом параметре к программе. Прочитать его можно так: ParamStr(1). Поэтому для загрузки вам нужно при запуске программы делать что-то вроде этого:
If FileExists(ParamStr(1)) Then
RichEdit.Lines.LoadFromFile(ParamStr(1));
 |
Ответ отправил: Dron (статус: Студент)
Время отправки: 17 июня 2006, 09:30
Оценка за ответ: 5
|
Ответ #2. Отвечает эксперт: bruder
Здравствуйте, feenords.
Всё очень просто. Дело в том, что твоя программа запускается с параметром, в котором указан путь к открываемому файлу. По событию OnCreate своей формы впиши код.
 |
Ответ отправил: bruder (статус: 4-ый класс)
Время отправки: 17 июня 2006, 09:36
Оценка за ответ: 5
|
Ответ #3. Отвечает эксперт: Евгений Малышев
Здравствуйте, feenords.
Используй параметры командной строки для программы. Имя открываемого файла должно передаваться одним из параметров.
Узнать количество параметров можно при помощи функции ParamCount.
Узнать значение нужного параметра можно при помощи функции ParamStr.
 |
Ответ отправил: Евгений Малышев (статус: 1-ый класс)
Время отправки: 18 июня 2006, 21:14
Оценка за ответ: 5
|
Мини-форум вопроса
Всего сообщений: 16; последнее сообщение — 21 июня 2006, 00:21; участников в обсуждении: 4.
|
Dron (статус: Студент), 17 июня 2006, 09:47 [#2]:
Думаю, что не страшно
С уважением.
|
|
feenords (статус: 1-ый класс), 18 июня 2006, 00:15 [#3]:
Спасибо за ответы! Как освобожусь - проверю.... заранее спасибо... по высшей оценке каждому....
|
|
feenords (статус: 1-ый класс), 18 июня 2006, 00:17 [#4]:
Чуточку опоздал....
|
|
feenords (статус: 1-ый класс), 18 июня 2006, 00:45 [#5]:
Почему-то выставление оценки не действует...
|
|
bruder (статус: 4-ый класс), 18 июня 2006, 10:43 [#6]:
Письма с ответами, которые тебе пришли, открой в браузере. Выдели RadioButton с надписью "5" и нажми оценить.
|
|
feenords (статус: 1-ый класс), 19 июня 2006, 00:54 [#7]:
Просто пользуюсь почтовым клиентом ("птичкой" от Mozilla), а почтовик закинул... там сейчас не пропихнуться... ладно, постараюсь заглянуть в недра...
|
|
feenords (статус: 1-ый класс), 19 июня 2006, 00:56 [#8]:
А теперь есть ещё маленький вопросик...
Вопрос такой:
использую такой подход для загрузки текста из файлов при их открытии не из программы - спасибо Вам - (см. вставку).
Что надо сделать (какой код вставить заместо ...), чтобы имя открытого файла передалось в какую-либо переменную (например, FileName)? Перепробывал несколько вариантов - не получилось... Заранее спасибо.
При FormCreate:
***
If ParamCount>0 then
begin
RichEdit1.Lines.LoadFromFile(ParamStr(1));
FileName:=...;
Form1.Caption:=FileName;
end;
***
|
|
feenords (статус: 1-ый класс), 19 июня 2006, 01:31 [#9]:
Открываю в браузере... выставляю пять и жму отправить оценку... и всё... ничего не происходит... то ли это мой диалап не справляется с нагрузкой, то ли ничего не должно высвечиваться (никакое оповещение, что оценка отправлена)... но некоторым поставил... посмотрим, может появится...
И вообще, у меня предложение к админу - поставьте подачу оценок напротив ответов... ведь авторизация идёт - если автор и кто авторизирован одно лицо, то что бы можно было оценки выставлять...
|
|
Ерёмин А.А. (статус: *Администратор), 19 июня 2006, 09:53 [#10]:
Ок, я подумаю над этим. Но вообще всё должно работать и сообщение соответствующее выводится.
А по поводу вашего вопроса:
FileName:=ParamStr(1);
Или только имя файла (без пути):
FileName:=ExtractFileName(ParamStr(1));
|
|
bruder (статус: 4-ый класс), 19 июня 2006, 12:10 [#12]:
Вот и отлично. Ждём оценок =)
|
|
feenords (статус: 1-ый класс), 20 июня 2006, 00:19 [#13]:
Уже некоторым поставил... выставляю другим...
А данную проблему решил - оказалось элементарно...
Так как мне нужен был полный путь, я поступил так:
FileName:=ExtractFilePath(ParamStr(1)) + ExtractFileName(ParamStr(1));
Спасибо за ответы...
И за новый способ выставления оценок...
Хотя он и чуточку глючный...
Ответ долго не мог написать... выдавал, что оценка уже принята... пока несколько раз не обновил страницу...
|
|
bruder (статус: 4-ый класс), 20 июня 2006, 08:38 [#14]:
>FileName:=ExtractFilePath(ParamStr(1)) + ExtractFileName(ParamStr(1));
Проще так FileName:=ParamStr(1);
|
|
Ерёмин А.А. (статус: *Администратор), 20 июня 2006, 08:47 [#15]:
feenords, все вопросы относительно работы системы отправляйте на expert@, а не пишите где попало.
|
|
feenords (статус: 1-ый класс), 21 июня 2006, 00:21 [#16]:
Извините - исправлюсь...
|
31 января 2011, 19:22: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|