![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Аналог блокнота [D7, XP]
Human © (2010-02-21 15:01:00)Здравствуйте уважаемые мастера Delphi. Подскажите пожалуйста. Пытаясь написать аналог болокнота Windows, столкнулся с такой проблемой: прописываю пункт меню файл(создать,открыть,сохранить...).Каким образом можно сравнить уже открытый файл в поле Memo1 и тот текст который нужно сохранить? Открываю файлы из OpenDialog.
@!!ex (2010-02-21 16:23:00) [21]Ты объясни что тебе нужно. Какую задачу решаешь??
Human (2010-02-21 16:11:00) [22]Подскажите пожалуйста, где есть исходники блокнота, только не сильно навёрнутого?
Human (2010-02-21 16:08:00) [23]А про Васю я чёт не подумал))
Human (2010-02-21 16:03:00) [24]Спасибо! Сейчас попробую.
Loginov Dmitry (2010-02-21 16:02:00) [25]
> только что пришло в голову решение: обьявить глобальную
> переменную типа Strings, после открытия файла присвоить
> ей текст из Memo, а перед сохранением сравнить = текст из
> Memo и содержание этой переменной.
А это время какой-нибудь Вася взял да и открыл этот же файл обычным блокнотом и внес изменения :)
{RASkov} (2010-02-21 15:58:00) [26]> [11] Human © (21.02.10 15:53)
> А можно ли сравнить через свойство FileName компонентов
> OpenDialog, SaveDialog
что хочешь сравнить? Все тот же текст? Нет, нельзя это сделать через данное свойство.
{RASkov} (2010-02-21 15:57:00) [27]> [10] Human © (21.02.10 15:47)
Для чего вообще это сравнение?
Неужели не достаточно свойства Modified? ...о котором ЮЗ говорил
только в OnChange не нужно ничего писать, оно само в true выставится при реджактировании в мемо, а вот в False нужно будет выставлять как им(ЮЗ) сказано во 2м пункте...
Human (2010-02-21 15:53:00) [28]Юрий, спасибо за подсказку. А можно ли сравнить через свойство FileName компонентов OpenDialog, SaveDialog?
Human (2010-02-21 15:47:00) [29]Ну а если без смеха, только что пришло в голову решение: обьявить глобальную переменную типа Strings, после открытия файла присвоить ей текст из Memo, а перед сохранением сравнить = текст из Memo и содержание этой переменной. Думал что вы мне подскажете похожее решение(((
Юрий Зотов (2010-02-21 15:45:00) [30]> Human © (21.02.10 15:01)
1. В обработчике события Memo.OnChange пишете Memo.Modified := True;
2. После создания, открытия и сохранения документа пишете Memo.Modified := False;
Теперь в любом месте программы можно проверить свойство Memo.Modified. Если оно равно False, то текст не изменялся.
KilkennyCat (2010-02-21 15:30:00) [31]
> А еще лучше узнать программно, что находится в Memo.
да ладно, программно ненадежно, лучше аппаратно - через сканирование сканером, или на крайний случай - фотоаппаратом.
Memo.text
Anatoly Podgoretsky (2010-02-21 15:19:00) [32]> Loginov Dmitry (21.02.2010 15:05:02) [2]
Плох тот программист, который не хочет написать свой блокнот.
Human (2010-02-21 15:17:00) [33]Да именно сравнить текст в Memo с файлом на диске. А еще лучше узнать программно, что находится в Memo.
{RASkov} (2010-02-21 15:11:00) [34]> [0] Human © (21.02.10 15:01)
> Каким образом можно сравнить уже открытый файл в поле Memo1
> и тот текст который нужно сохранить?
А разве это не одно и тоже? Зачем это сравнивать?
или нужно сравнить текст в файле на диске с текстом в мемо?
Human (2010-02-21 15:10:00) [35]Я хочу написать свой текстовый редактор, а блокнот беру за образец.
Human (2010-02-21 15:08:00) [36]А возможно ли сопоставить текст в Memo и открытый файл через память?
Loginov Dmitry (2010-02-21 15:05:00) [37]
> Пытаясь написать аналог болокнота Windows, столкнулся
> с такой проблемой
Можно вопрос, зачем писать свои аналоги болокнота Windows?
> Каким образом можно сравнить уже открытый файл в поле Memo1
> и тот текст который нужно сохранить?
Для сравнения в Pascal используется операция "="
KilkennyCat (2010-02-21 15:03:00) [38]при любом изменении выставлять флаг ЕнтотФайлБылИзменен, в дальнейшем проверять.