Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.27;
Скачать: CL | DM;

Вниз

Тот же текстовый редактор. Теперь сохранение :-)   Найти похожие ветки 

 
Apocalepse ©   (2004-06-11 20:45) [0]

Товарищи мастера я все по той же теме :-)
Проблеммка собственно в том как теперь сохранять изменения в файле!
То есть сохранение изменений в файле открытых уже в редакторе то
конечно не проблема. Но вот я не могу понять как теперь сохранить файл
открытый самим редактором через вот тот код:
if (ParamCount >= 1) and FileExists(ParamStr(1)) then
Memo.Lines.LoadFromFile(ParamStr(1));

На кнопке "сохранить" у меня висит
Memo1.Lines.SaveToFile(FName);
Я дописываю к тому
if (ParamCount >= 1) and FileExists(ParamStr(1)) then
Memo.Lines.SaveToFile(ParamStr(1));

Но ничего не выходит, все компилится. Но изменения не сохраняются. Подскажите что не так?


 
Подкрадуха ©   (2004-06-11 21:04) [1]

Может, не Memo, а Memo1, если не менял имена по умолчанию...
Хотя вряд-ли.


 
Anatoly Podgoretsky ©   (2004-06-11 21:07) [2]

Что там ParamStr(1))
А как ты проверяешь что ничего не происходит, может стоит воспользоваться клавишей Win+F


 
Anatoly Podgoretsky ©   (2004-06-11 21:17) [3]

Да и какая ошибка вычкакивает?
Ты нам скажешь или нам соамим придумать?


 
Подкрадуха ©   (2004-06-11 21:25) [4]

if (ParamCount >= 1) and FileExists(ParamStr(1)) then
Memo.Lines.LoadFromFile(ParamStr(1));

Memo1.Lines.SaveToFile(FName);

if (ParamCount >= 1) and FileExists(ParamStr(1)) then
Memo.Lines.SaveToFile(ParamStr(1));

Всё-таки, кажется проблема тут в именах...
Хотя, если компилится нормально, то очень странно.
Какой у тебя нэйм у мемо? То Memo, то Memo1...


 
Anatoly Podgoretsky ©   (2004-06-11 21:29) [5]

Подкрадуха ©   (11.06.04 21:25) [4]
А почему бы не быть обеим?


 
Подкрадуха ©   (2004-06-11 21:43) [6]

[5]
Я этого и не отрицаю, но читается файл в одного мемо, а сохраняется из другого. Я даже предположу (настрою, так сказать свой телепатический модуль), что в начале файл читается сразу в оба мемо, но потом пишется измененное мемо вначале и потом перезаписывается вторым (не измененным) мемо. Может отсюда грабли ростут?


 
Anatoly Podgoretsky ©   (2004-06-11 21:50) [7]

Подкрадуха ©   (11.06.04 21:43) [6]
Нет сохраняется в обеих, но только не известно что в FName и в ParamStr(1)


 
Подкрадуха ©   (2004-06-11 21:54) [8]

Угу, чего ж тут гадать, если не видно, что за ошибка или хотя бы полный код этой функции/процедуры.
Подождём...


 
Apocalepse ©   (2004-06-11 22:10) [9]

Да моя опечатка! Там имена то мои у Memo но в коде допустим пусть они будут кака Memo1. Все компилится нормально но при сохранении файла открытого способом
if (ParamCount >= 1) and FileExists(ParamStr(1)) then
Memo1.Lines.SaveToFile(ParamStr(1));

Возникает ошибка:
Cannot Create File "". Системе неудается найти указаный путь.
Ну короче кода сохранения вообще нет как будь то.


 
Anatoly Podgoretsky ©   (2004-06-11 22:23) [10]

Все ясно у тебя неправильный путь.
Подробности вроде мы никогда не получим, ну и бог ним, поработаем тогда переводчиками.


 
Apocalepse ©   (2004-06-11 22:56) [11]

Какие вам еще подробности?
Ну вот код висящий на кнопке сохранения
procedure Tmain.saveClick(Sender: TObject);
begin
Text.Lines.SaveToFile(FName);
if (ParamCount > 1) and FileExists(ParamStr(1)) then
Text.Lines.SaveToFile(ParamStr(1));
end;

На форе есть OpenDialog и SaveDialog

Вот так выглядит кнопка "сохранить как"
procedure Tmain.save_asClick(Sender: TObject);
begin
SaveDialog.FileName:=FName;
if SaveDialog.Execute
then begin
FName:=SaveDialog.FileName;
Text.Lines.SaveToFile(FName);
end;
end;

Text-имя поля Memo
FName-OpenDialog(FileName) и SaveDialog(FileName)


 
KilkennyCat ©   (2004-06-11 23:00) [12]

Может быть, я полный ЛМД, но что такое FName?


 
Apocalepse ©   (2004-06-11 23:01) [13]

Я не спрашиваю про сохранение файла открытого OpenDialog или сохраненным SaveDialog
Мне надо узнать что нужно дописать к кнопке "сохранить" чтобы сохранить изменения в файле открытым моей программой. Т.е. кодом
procedure Tmain.FormCreate(Sender: TObject);
begin
if (ParamCount > 1) and FileExists(ParamStr(1)) then
Text.Lines.LoadFromFile(ParamStr(1));

if rb_html.Checked = true then
begin
Text.SyntaxStyles:=stl_html; //Это относится к синтаксису.
end;    
end;


 
KilkennyCat ©   (2004-06-11 23:03) [14]

Повторю свой вопрос... что сие - FName? Чего ему присваивается при открытии с параметрами командной строки?


 
Apocalepse ©   (2004-06-11 23:03) [15]

FNmae объявляется вот тут
SaveDialog.FileName:=FName;
if SaveDialog.Execute
then begin
FName:=SaveDialog.FileName;

и тут
FName:=OpenDialog.FileName;
Это переменная являющаяся по сути FileName Open и Save Dialog-ов


 
KilkennyCat ©   (2004-06-11 23:05) [16]

замечательно. но я спрашивал, что ей присваивается, когда открывается с Text.Lines.LoadFromFile(ParamStr(1)) ????


 
Apocalepse ©   (2004-06-11 23:05) [17]

Блин опечетался ^^
> FNmae объявляется вот тут
FName объявляется вот тут - так надо было написать :-)


 
KilkennyCat ©   (2004-06-11 23:06) [18]

пофиг опечатка.
где код типа такого:
FName := ParamStr(1); ?


 
Apocalepse ©   (2004-06-11 23:08) [19]

ээээээ вроде ничего... Я что то путанулся уже. Я в Дельфи навичек. Может скажеш все же конкретнее как сохранить? Ты ведь знаеш :-)


 
Apocalepse ©   (2004-06-11 23:11) [20]

ООО я кажеться понял! Надо при открытии с Text.Lines.LoadFromFile(ParamStr(1)) ???? Присвоить ей значение и все будет ок! Только как его присвоить? Что присвоить? Что вообще есть (ParamStr(1)) я честно говоря не понял....


 
Apocalepse ©   (2004-06-11 23:12) [21]


> пофиг опечатка.
> где код типа такого:
> FName := ParamStr(1); ?

(Меня пробирает смех над собой) Его нет :-( Какой же я дурак!


 
KilkennyCat ©   (2004-06-11 23:13) [22]

Знаю.
Правило первое - перед использованием переменной, ей надо чего-то присвоить. Иначе - неизвестно, чего в ней есть. При открытии диалогами FName чего-то там нормально получает, после чего ее корректно обрабатывают сэйвы. При открытии через параметр, она, судя по всему, ничего не получает, в ней либо ниль, либо каша, однако, при сохранении она используется!
Странно, что компилятор не предупредил...

Вообщем, должно быть так:

procedure Tmain.FormCreate(Sender: TObject);
begin
if (ParamCount > 1) and FileExists(ParamStr(1)) then begin
 FName := ParamStr(1);
 Text.Lines.LoadFromFile(FName);
end;
end;


 
KilkennyCat ©   (2004-06-11 23:14) [23]

ну, вот, успел раньше меня :)


 
Apocalepse ©   (2004-06-11 23:18) [24]

Мои подстаканники дребезжат! Спасибо тебе!!! Огромное. А кто упел раньше тебя и что успел? Ну да ладно хорош флудить ато замодерируют нафиг :-). Еще раз Большое спасибо!


 
KilkennyCat ©   (2004-06-11 23:18) [25]


> Apocalepse ©   (11.06.04 23:11) [20]
> присвоить? Что присвоить? Что вообще есть (ParamStr(1))
> я честно говоря не понял....


При запуске исполняемого файла с параметрами (например: format c: ), то программе передаются параметры, в нашем случае - с:
Даже если перевести ParamStr то получится ПараметровСтрока



Страницы: 1 вся ветка

Текущий архив: 2004.06.27;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.022 c
3-1086068311
Лена
2004-06-01 09:38
2004.06.27
перенос данных из Paradox в Interbase


3-1085927351
Schummi
2004-05-30 18:29
2004.06.27
База данных


1-1086851019
Erik1
2004-06-10 11:03
2004.06.27
Зачем в классу при обявлении интерфейса нужна реализация IUnknown


6-1083851320
Yanis
2004-05-06 17:48
2004.06.27
mail


1-1087059508
Антон
2004-06-12 20:58
2004.06.27
TRichEdit и подсветка синтаксиса