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

Вниз

richedit   Найти похожие ветки 

 
aligator2008   (2009-06-28 00:16) [0]

Здравствуйте эксперты, у меня на форме несколько кнопок которые загружают тектовый файл в  richedit и одна кнопка которая сохраняет изменения в загруженном текстовом файле,объесните если это возможно
каким должен быть обработчик события для кнопки " сохранить ", чтобы эти изменения сохранялись в тектовом файле загруженном в данный момент в richedit.


 
Германн ©   (2009-06-28 01:06) [1]


> aligator2008   (28.06.09 00:16)
>
> Здравствуйте эксперты, у меня на форме несколько кнопок
> которые загружают тектовый файл в  richedit и одна кнопка
> которая сохраняет изменения в загруженном текстовом файле,
> объесните если это возможно
> каким должен быть обработчик события для кнопки " сохранить
> ", чтобы эти изменения сохранялись в тектовом файле загруженном
> в данный момент в richedit.
>

А в чём проблема сохранения?


 
aligator2008   (2009-06-28 23:25) [2]

попробую объеснить на форме к примеру три кнопки при нажатии первой загрузка документа в richedit
if FileExists("1.rtf") then
   RichEdit1.Lines.LoadFromFile("1.rtf");
произошла загрузка отредактировав документ нажимаю на кнопку сохранить
RichEdit1.Lines.SaveToFile("1.rtf"); изменения сохранились, при нажатии второй кнопки загружается другой документ
f FileExists("2.rtf") then
   RichEdit1.Lines.LoadFromFile("2.rtf"); если нажать на кнопку сохранить
изменения не сохраняются, если написать в коде
RichEdit1.Lines.SaveToFile("1.rtf");
RichEdit1.Lines.LoadFromFile("2.rtf"); то изменения отражаются на обеих документах, мне нужно пользуясь одной кнопкой для сохранения файла редактировать загруженный документ и сохранять его, есть ли вариант для кнопки сохранить чтобы изменения в текте отражались только в отношении загруженного текста в данный момент т.е сохранять изменения в загруженном текстовом файле не вызывая диалоговое окно SaveDialog, пробую
RichEdit1.Lines.SaveToFile(FName);но ничего не получается


 
{RASkov} ©   (2009-06-28 23:48) [3]

> [2] aligator2008   (28.06.09 23:25)
> пробую RichEdit1.Lines.SaveToFile(FName);но ничего не получается

А если так:
поле формы FName: String;
перед загрузкой при нажатии на первую кнопку делать
FName:="1.rtf";
RichEdit1.Lines.LoadFromFile(FName);
на вторую
FName:="2.rtf";
RichEdit1.Lines.LoadFromFile(FName);
ну и на третью аналогично.
Сохранение так и будет:
RichEdit1.Lines.SaveToFile(FName);
одной кнопкой....

Можно еще сделать так. Кнопкам загрузки присвоить Tag"и 1, 2 и 3 (ну или сколько их там) т.е. каждой свой номер.
Далее один общий обработчик в котором проверять Тэг нажатой кнопки:

case TComponent(Sender).Tag of
1: FName:="1.rtf";
2: FName:="2.rtf";
3: FName:="3.rtf";
....
end;
{или например так FName:=Format("%d.rtf", [TComponent(Sender).Tag])}
ну и
RichEdit1.Lines.LoadFromFile(FName);

Можно сделать процедуру загрузки типа так:
procedure TForm.LoadInRich(const AFName: String);
begin
 FName:=AFName;
 if FileExists(AFName) then RichEdit1.Lines.LoadFromFile(FName) else raise...
end;

Можно еще кучу вариантов придумать.... работай - голова.)


 
{RASkov} ©   (2009-06-28 23:52) [4]

т.е. смысл сказанного и ответ на твой вопрос: Сохраняй в переменную имя загруженного в ричэдит файла.)


 
aligator2008   (2009-06-29 00:04) [5]

спасибо за посказку, сейчас попробую что у меня получится, хотя не все мне совсем ясно, но попробую разобраться, спасибо еще раз и удачи.


 
Германн ©   (2009-06-29 00:12) [6]


> А если так:
> поле формы FName: String;

Логичнее было бы сохранять название (полное причём) в некоем визуальном элементе. Капшон формы, лэйбл над окном ричэдита и т.д.


 
KilkennyCat ©   (2009-06-29 00:18) [7]


> полное причём

да еще

> в некоем визуальном элементе

совершенно не

> Логичнее


 
aligator2008   (2009-06-29 00:25) [8]

спасибо первый вариант сработал.


 
aligator2008   (2009-06-29 00:29) [9]

да в самой программе на кнопках название документов которые загружаются и наверное путь хранения для них надо будет указать, я на пол пути тормознулся именно на этом вопросе.


 
Германн ©   (2009-06-29 00:43) [10]


> KilkennyCat ©   (29.06.09 00:18) [7]
>
>
> > полное причём
>
> да еще
>
> > в некоем визуальном элементе
>
> совершенно не
>
> > Логичнее
>

Это почему?
Блокнот, например, так и делает.


 
KilkennyCat ©   (2009-06-29 00:57) [11]

Блокнот может что угодно делать. Мне блокнот не критерий.
В визуальных компонентах надо отображать, а не хранить.
Хочешь, я покажу блокнот, который в случае изменения файла добавляет к его имени звездочку?
А хочешь, я покажу тебе такой путь:
C:\Documents and Settings\KilkennyCat\Local Settings\Application Data\Labcenter Electronics\Proteus\Simulation Results\3A467722.PDF


 
Германн ©   (2009-06-29 01:10) [12]


> KilkennyCat ©   (29.06.09 00:57) [11]
>
> Блокнот может что угодно делать. Мне блокнот не критерий.
>

Эт да. Блокнот критерием служить не может в большинстве случаев. Но в "Начинающим" - в самый раз.


 
Германн ©   (2009-06-29 01:43) [13]


> В визуальных компонентах надо отображать, а не хранить.

А зачем дублировать "строковые значения"?


 
KilkennyCat ©   (2009-06-29 02:11) [14]

Тогда храни данные в гриде. Зачем их еще в таблице дублировать?



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

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

Наверх




Память: 0.5 MB
Время: 0.013 c
1-1213076858
Альф
2008-06-10 09:47
2009.08.30
Странное поведение Variant при импорте из Excel


15-1246084179
@!!ex
2009-06-27 10:29
2009.08.30
KVM с автоматическим переключением мышки


3-1226507367
DOjD
2008-11-12 19:29
2009.08.30
Работа с ZQuery LOCAL


2-1246554868
Michael
2009-07-02 21:14
2009.08.30
Порядок вызова в прототипах функций


2-1245711399
Снегурочка
2009-06-23 02:56
2009.08.30
Передача данных Tcp/ip