![]() |
|
|
Регистрация | << Правила форума >> | 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; Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра. Последний раз редактировалось 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; Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра. |
#6
|
|||
|
|||
![]() ошибка была моя в том что я по чьему-то совету задал в начала переменную paramcount:integer зачем-то.
теперь всё работает. у меня есть ещё пара вопросов, сопутствующих: -как сделать так, чтобы при открытии файла (из проги или с помощью неё) form.caption менялся на имя файла? -как отслеживать нажатия клавиш и делать опр. действия (ну, типа там ctrl+o открыть итд)? |