Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.06.2010, 17:14   #1
SVeTLЫ'Й
 
Регистрация: 10.06.2010
Сообщений: 3
Вопрос Текстовый редактор в Delphi

Возникла проблема в написание текстового редактора не знаю как написать в меню « Файл» - команды «Сохранить как», «Открыть» с использованием объекта Memo1 . Результат должен получиться как в стандартном «Блокнот» в Windowsе после нажатий разнообразных последовательностей кнопок «Yes, No, Cancel» - в моей программе возникают ошибки или не соответствие с стандартном «Блокнот» в Windowsе. Разбор примерных Исходников не к чему не привел. Познания в Delphi очень малы. Помогите кто чем сможет! Если можно объяснить. Уже не знаю где можно найти ответ на мою проблему!!! За ранние спасибо!!!:
SVeTLЫ'Й вне форума Ответить с цитированием
Старый 15.06.2010, 18:58   #2
Miha85193
Delphi, OpenGL API
Форумчанин
 
Аватар для Miha85193
 
Регистрация: 29.03.2010
Сообщений: 152
По умолчанию

Бросаем на форму компонепты TOpenDialog и TSaveDialog.
Пишем в TForm1, в разделе private: procedure OpenFile и procedure SaveFile. Нажымаем Ctrl+Shift+C появляются:

Код:
procedure TForm1.OpenFile;
begin
   
end;

procedure TForm1.SaveFile;
begin
   
end;
Пишем в них следующее:

Код:
procedure TForm1.OpenFile;
begin
   if OpenDialog1.Execute then
     Memo1.LoadFromFile(OpenDialog1.FileName);
end;

procedure TForm1.SaveFile;
begin
   if SaveDialog1.Execute then
     Memo1.SaveToFile(SaveDialog1.FileName);
end;
Далее вызываем эти процедуры в обработчиках событий главного меню. Конечно не совсем так как в Блокноте, но после несложной доработки будет работать аналогично.

Последний раз редактировалось Miha85193; 15.06.2010 в 19:02.
Miha85193 вне форума Ответить с цитированием
Старый 15.06.2010, 19:07   #3
SVeTLЫ'Й
 
Регистрация: 10.06.2010
Сообщений: 3
По умолчанию

Код:
Конечно не совсем так как в Блокноте, но после несложной доработки   будет работать аналогично.

вот мне и надо чтоб аналогично. Такие вещи у меня есть и много но аналогичны "Блокнот" нету!!!
SVeTLЫ'Й вне форума Ответить с цитированием
Старый 15.06.2010, 19:17   #4
cheef
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 205
По умолчанию

Yes и No нету?
Если да то просто нужно ещё одну форму создать с кнопками да и нет и просто.
На кнопке да
if OpenDialog1.Execute then
Memo1.LoadFromFile(OpenDialog1.File Name);
На нет
form.close;
cheef вне форума Ответить с цитированием
Старый 15.06.2010, 19:19   #5
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

В папке с дельфой (Demos) есть готовый текстовый редактор. Расковыряйте его.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 15.06.2010, 19:35   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

что именно вам нужно от блокнота то?
это стандартный MessageBox вообще то.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 15.06.2010, 20:35   #7
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

да какой yes no?вот же
Код:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if memo1.Modified then
if messagedlg('Файл был изменен,сохранить его перед выходом',mtConfirmation,[mbYes,mbNo],0)=mrYes
then
  if savedialog1.execute then
  memo1.Lines.SaveToFile(savedialog1.filename +'.txt');
end;
если вы об этом конечно
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны

Последний раз редактировалось betirsolt; 15.06.2010 в 20:37.
betirsolt вне форума Ответить с цитированием
Старый 15.06.2010, 21:10   #8
Sensizu
Otsukitakitte
Форумчанин
 
Аватар для Sensizu
 
Регистрация: 01.10.2009
Сообщений: 126
По умолчанию

А моя интуиция подсказывает мне, что ему нужен фейк блокнота. Функции все абсолютно реальны для копирования и переделывания самому, примеры Вам уже показаны.
Отмена и повтор:
Код:
memo1.undo; // отмена действия 
memo1.redo; // повтор действия
memo1.lines.savetofile(...); // сохранение
memo1.lines.loadfromfile(...); // загрузка текстового документа
memo1.wordWrap:=True/False; // тут честно не помню есть ли такой параметр в Мемо.
Поиск реализовать можно через Pos (правда так не очень удобно), или порыться в компонентах ких-нить.
Ну дату вставить по нажатию F5 я думаю Вы разберётесь.
Помог - ставь плюс.
$("question").onAnswer(function() { $(this).getItWright(true); });

Последний раз редактировалось Sensizu; 15.06.2010 в 21:13.
Sensizu вне форума Ответить с цитированием
Старый 15.06.2010, 22:00   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

в блокноте MessageBox
Код:
case MessageBox(Handle,'текст вроде','вроде заголовок',MB_YESNOCANCEL) of
 IDYES://нажата кнопка Yes 
 IDNO://нажата кнопка No
 IDCANCEL://нажата кнопка отмена
end;
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 16.06.2010, 08:28   #10
SVeTLЫ'Й
 
Регистрация: 10.06.2010
Сообщений: 3
По умолчанию

Уточняю свой вопрос!!! в Windowsе есть стандартная программка "Блокнот" - вот моя задача написать в Delphi текстовый редактор идентичный "Блокнот"-у, при написание кода возникла проблема с написанием вкладки "открыть" и "сохранить как"
вот у меня есть

Открыть!
Код:
procedure TForm1.N2Click(Sender: TObject);
var mes: integer;
begin
if Memo1.Modified = true then
begin
mes := MessageDlg ('Сохранить изменение страницы?', mtConfirmation, [mbYes, mbNo, mbCancel], 0);
if mes = mrYes then
begin
N15Click (Sender);
Memo1.Clear;
end;
{if mes = mrNo then
{Memo1.Clear;
end else
Memo1.Clear;
begin }
if OpenDialog1.Execute then Memo1.Lines.LoadFromFile(OpenDialog 1.FileName);
Caption := Format('Б локнотик - %s ', [ExtractFileName(OpenDialog1.FileNam e), Application.Title]);
Memo1.Modified:=false;
end;
end;

Сохранить как!

код:

procedure TForm1.N15Click(Sender: TObject);
var mes: integer;
begin
if SaveDialog1.Execute then
begin
if FileExists(SaveDialog1.FileName) then
if MessageDlg(Format(sOverWrite, [SaveDialog1.FileName]),
mtConfirmation, mbYesNoCancel, 0) <> idYes then Exit;
Memo1.Lines.SaveToFile(SaveDialog1. FileName);
SetFileName(SaveDialog1.FileName);
Memo1.Modified := False;
Path:= SaveDialog1.FileName
end;
end;


так то код рабочий выполняет половину нужного действия, но в связи с тем что этот код не является правильным по скольку при выполнение этих процессов, на этапе пересохранения, открытия повторного файла и т. п. при разнообразных комбинациях кнопок да, нет, отмена - возникаю не соответствие с тексовым редактором "Блокнот" в Windowsе необходимый результат идентичность "Блокнот" в Windowsе!!!
Можно чемто помочь?!?!?! надеюсь точно указал суть проблемы!!!
SVeTLЫ'Й вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Текстовый редактор в Delphi 7 Weltkind Помощь студентам 5 22.12.2009 22:06
Текстовый редактор Яр|/||< (^_^) Общие вопросы C/C++ 2 21.12.2009 12:28
Текстовый редактор (Delphi 7) Sanakan Помощь студентам 1 18.03.2009 13:27
Текстовый редактор Snake_ua Общие вопросы Delphi 25 28.05.2008 09:20
Текстовый редактор Михаил Юрьевич Общие вопросы Delphi 8 10.04.2008 20:17