Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.03.2009, 19:47
Nicoligen Nicoligen вне форума
Прохожий
 
Регистрация: 19.10.2008
Сообщения: 10
Репутация: 10
По умолчанию пишу текстовик помогите с открытием

День добрый.

Пишу текстовый редактор наподобие виндосовского notepad.exe

у меня на форме: mainmenu1, opendialog1, savedialog1, memo1.
простейшие функции: открыть-редактировать сохранить.

вопрос: как сделать так, чтобы когда я скомпилирую файл (mynotepad.exe) открывал текстовые документы на лету?
В смысле, тыкаю на 123.txt правой кнопкой- открыть с помощью - mynotepad.exe - содержимое должно подгружаться в memo1, как так сделать?

заранее спасибо.
Ответить с цитированием
  #2  
Старый 07.03.2009, 20:41
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию

Параметры запуска приложения можно "извлечь" с помощью функции ParamStr(Index: Integer): string.
Код:
ParamStr(0) - возвращает путь приложения
ParamStr(1) - возвращает первый параметр
Реализовать ваш случай можно так:
Код:
Memo1.Lines.LoadFromFile(ParamStr(1));
Есть еще функция ParamCount: Integer, которая возвращает кол-во параметров.
Соединив эти 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  
Старый 07.03.2009, 23:06
Nicoligen Nicoligen вне форума
Прохожий
 
Регистрация: 19.10.2008
Сообщения: 10
Репутация: 10
По умолчанию

Karsh , я что-то похожее пробовал.

вариант первый:
я пишу так:
Код:
  
If ParamCount > 0 then
    Memo1.Lines.LoadFromFile(ParamStr(1));
никаких ошибок, в делфе всё запускается, всё компилируется, экзешник сам по себе если запускать - никаких ошибок, а если текстовик открыть этим экзешником - ничего не произойдёт (программа запуститься, содержимое текстовика не отобразиться в мемо1)

вариант второй:
я пишу то же самое только без " If ParamCount > 0 then"
получается так - при запуске в делфе - выдаёт ошибку cannot open file "". the system can not find file path specified. Компиляция однако, проходит успешно. Если запустить экзешник - та же ошибка. А если открыть текстовик с помощью экзешника - то содержимоей текстовика отобразиться в мемо1 как надо.
Ответить с цитированием
  #4  
Старый 07.03.2009, 23:22
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,088
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

А у тебя случаем путь не с пробелами? Если да, то надо брать его в двойны кавычки. И указвать полный путь...
Ответить с цитированием
  #5  
Старый 07.03.2009, 23:59
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию

попробуйте тогда так:
Код:
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  
Старый 11.03.2009, 18:04
Nicoligen Nicoligen вне форума
Прохожий
 
Регистрация: 19.10.2008
Сообщения: 10
Репутация: 10
По умолчанию

ошибка была моя в том что я по чьему-то совету задал в начала переменную paramcount:integer зачем-то.
теперь всё работает.

у меня есть ещё пара вопросов, сопутствующих:

-как сделать так, чтобы при открытии файла (из проги или с помощью неё) form.caption менялся на имя файла?
-как отслеживать нажатия клавиш и делать опр. действия (ну, типа там ctrl+o открыть итд)?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:51.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025