![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
День добрый.
Пишу текстовый редактор наподобие виндосовского notepad.exe у меня на форме: mainmenu1, opendialog1, savedialog1, memo1. простейшие функции: открыть-редактировать сохранить. вопрос: как сделать так, чтобы когда я скомпилирую файл (mynotepad.exe) открывал текстовые документы на лету? В смысле, тыкаю на 123.txt правой кнопкой- открыть с помощью - mynotepad.exe - содержимое должно подгружаться в memo1, как так сделать? заранее спасибо. |
|
#2
|
||||
|
||||
|
Параметры запуска приложения можно "извлечь" с помощью функции ParamStr(Index: Integer): string.
Код:
ParamStr(0) - возвращает путь приложения ParamStr(1) - возвращает первый параметр Код:
Memo1.Lines.LoadFromFile(ParamStr(1)); Соединив эти 2 функции получаем: Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
If ParamCount > 0 then
Memo1.Lines.LoadFromFile(ParamStr(1));
end;Последний раз редактировалось Karsh, 07.03.2009 в 20:46. |
|
#3
|
|||
|
|||
|
Karsh , я что-то похожее пробовал.
вариант первый: я пишу так: Код:
If ParamCount > 0 then
Memo1.Lines.LoadFromFile(ParamStr(1));вариант второй: я пишу то же самое только без " If ParamCount > 0 then" получается так - при запуске в делфе - выдаёт ошибку cannot open file "". the system can not find file path specified. Компиляция однако, проходит успешно. Если запустить экзешник - та же ошибка. А если открыть текстовик с помощью экзешника - то содержимоей текстовика отобразиться в мемо1 как надо. |
|
#4
|
|||
|
|||
|
А у тебя случаем путь не с пробелами? Если да, то надо брать его в двойны кавычки. И указвать полный путь...
|
|
#5
|
||||
|
||||
|
попробуйте тогда так:
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
FileName: string;
begin
FileName:= ParamStr(1);
If FileExists(FileName) then
Memo1.Lines.LoadFromFile(FileName);
// можно указать ShowMessage для просмотра параметра
ShowMessage(FileName);
end; |
|
#6
|
|||
|
|||
|
ошибка была моя в том что я по чьему-то совету задал в начала переменную paramcount:integer зачем-то.
теперь всё работает. у меня есть ещё пара вопросов, сопутствующих: -как сделать так, чтобы при открытии файла (из проги или с помощью неё) form.caption менялся на имя файла? -как отслеживать нажатия клавиш и делать опр. действия (ну, типа там ctrl+o открыть итд)? |