Алгоритм, написание и отладка программы "Текстовый редактор". Курсовая работа (т). Информационное обеспечение, программирование.

👉🏻👉🏻👉🏻 ВСЯ ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻
Информационное обеспечение, программирование
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!
Похожие работы на - Алгоритм, написание и отладка программы "Текстовый редактор"
Скачать Скачать документ
Информация о работе Информация о работе
Скачать Скачать документ
Информация о работе Информация о работе
Скачать Скачать документ
Информация о работе Информация о работе
Скачать Скачать документ
Информация о работе Информация о работе
Скачать Скачать документ
Информация о работе Информация о работе
Скачать Скачать документ
Информация о работе Информация о работе
Скачать Скачать документ
Информация о работе Информация о работе
Нужна качественная работа без плагиата?
Не нашел материал для своей работы?
Поможем написать качественную работу Без плагиата!
Разработать программу формирования текста из исходного
текстового файла по заданным параметрам образца. Перенос строк осуществлять по
границе слова. Предусмотреть возможности:
¶
поиска и замены текстового фрагмента.
Данное задание возможно реализовать на любом из известных языков
программирования, и для закрепления и усовершенствования своих практических
навыков разработки алгоритмов, написания и отладки программ на языке программирования
С++ я использовал среду разработки C++Builder 6
Поставленная передо мной задача посвящена редактированию текста.
Редактирование текста является очень важной частью оформления документов.
Разрабатываемая программа – «Текстовый редактор» не является
какой-то сверхновой программой и на сегодняшний день имеет огромное количество
подобных приложений, разработанных как отдельными людьми, так и целыми корпорациями.
В данной курсовой работе стоит задача, даже не повторить их,
а всего лишь проработать некоторые функции работы с текстом. В результате работы
должна получиться программа, которой, в принципе, можно пользоваться в повседневной
жизни в качестве замены встроенного редактора «WordPad».
В качестве языка программирования для реализации
автоматизированной рабочей программы зав.отделения выбран С++ и, основанная на
нем среда разработки C++Builder 6. Это мощная система визуального
объектно-ориентированного программирования, позволяющая решать множество задач,
в частности:
*
Создавать законченные приложения для Windows самой
различной направленности, от чисто вычислительных и логических, до графических
и мультимедиа.
*
Быстро создавать (даже начинающим программистам) профессионально
выглядящий оконный интерфейс для любых приложений, написанных на любом языке. В
частности, с помощью C++Builder можно объединить в единую систему с удобным
современным интерфейсом имеющиеся на предприятии прикладные программы DOS, Windows и др. Интерфейс удовлетворяет всем требованиям Windows и автоматически
настраивается на ту систему, которая установлена на компьютере пользователя,
поскольку использует многие функции, процедуры, библиотеки Windows.
*
Создавать мощные системы работы с локальными и удаленными
базами данных любых типов. При этом имеются средства автономной отладки
приложений с последующим выходом в сеть.
*
Создавать многозвенные
распределенные приложения, основанные на различных технологиях.
*
Создавать приложения, которые
управляют другими приложениями, в частности, такими программами Microsoft Office, как Word, Excel и др.
*
Создавать кросс-платформенные приложения,
которые можно компилировать и эксплуатировать как в Windows, так и в
системе Linux.
*
Создавать приложения различных классов для работы в.
*
Создавать профессиональные программы установки для приложений Windows, учитывающие всю специфику и все требования Windows.
*
И многое, многое другое, включая создание отчетов,
справочных систем, библиотек DLL, компонентов ActiveX и т.п.
C++Builder — чрезвычайно быстро развивающаяся система, так как ее создатели
постоянно отслеживают все тенденции информационных технологий. Новые версии
выпускаются ежегодно.
Для большинства применений возможности эквивалентных
версий С++Вuilder и Delphi примерно одинаковы. Это не удивительно, поскольку
язык Object Pascal в настоящее время очень
близок (конечно, если не учитывать синтаксис) к C++. Так что для большинства
задач выбор C++ или Object Pascal, и, соответственно, C++Builder или Delphi — дело вкуса и привычки программиста. Но все-таки
язык C++ пока несколько более мощный, чем Object
Pascal. К тому же в C++ наработаны более обширные библиотеки
функций. Так что некоторые, сравнительно сложные задачи проще решать с помощью C++Builder.
Из прекрасного средства
создания приложений для Windows C++Builder
превращается в инструмент создания приложений для многозвенных распределенных
кросс-платформенных корпоративных информационных систем.
Проект C++Builder состоит из форм, модулей с их
заголовочными файлами и файлами реализации, установок параметров проекта,
ресурсов и т.д. Вся эта информация размещается в файлах. Многие из этих файлов
автоматически создаются C++Builder, когда мы строим наше приложение. Ресурсы,
такие, как битовые матрицы, пиктограммы и т.д., находятся в файлах, которые мы
получаем из других источников или создаем при помощи многочисленных
инструментов и редакторов ресурсов, имеющихся в нашем распоряжении (см. табл.
1).
Таблица 1 – Физическая структура программы
С++Builder создает файл .cpp для
головной функции WinMain, инициирующей
приложение и запускающей его на выполнение.
Этот текстовый файл содержит установки опций проекта и
указания на то, какие файлы должны компилироваться и компоноваться в проект.
Файл сохраняется в формате XML.
Каждой создаваемой вами форме соответствует текстовый файл
реализации модуля, используемый для хранения кода. Иногда вы можете сами
создавать модули, не связанные с формами.
Текстовый файл реализации главного окна программы
Текстовый файл реализации модуля «О программе»
Текстовый файл реализации модуля «Справка»
Каждой создаваемой вами форме соответствует не только файл
реализации модуля, но и его заголовочный файл с описанием класса формы. Вы
можете и сами создавать необходимые заголовочные файлы.
Это двоичный или текстовый файл, который С++Builder создает для хранения информации о
ваших формах. Вы можете смотреть этот файл в текстовом виде или в виде формы.
Каждому файлу формы соответствует файл модуля (.cpp).
Это исполняемый файл вашего приложения. Он является
автономным исполняемым файлом, для которого больше ничего не требуется, если
только вы не используете библиотеки, содержащиеся в пакетах, DLL, OCX и т.д.
Это откомпилированный файл модуля (.cpp), который компонуется в окончательный
исполняемый файл.
Двоичный файл, содержащий ресурсы проекта: пиктограммы,
курсоры и т.п. по умолчанию содержит только пиктограмму проекта. Может дополнятся
с помощью Редактора Изображений (Image Editor)
Двоичный файл, используемый отладчиком в процессе отладки
приложения.
Файлы резервных копий (.~cpp, .~h,
.~bp, .~df )
Это соответственно файлы резервных копий для файлов реализации
модуля, заголовочного, проекта и формы. Если вы что-то безнадежно испортили в
своем проекте, можете соответственно изменить расширение этих файлов и таким
образом вернуться к предыдущему не испорченному варианту.
Из всех перечисленных
файлов важнейшими являются файлы .cpp, .h, .dfm, .bpr, .res. Это те файлы,
которые вы, например, должны перенести на другой компьютер, если захотите
продолжить на нем работу над своим проектом. Все остальные файлы C++Builder
создаст автоматически в процессе компиляции проекта и его отладки.
Информация о формах C++Builder хранится в трех файлах:
.cpp, .h, .dfm. В двоичном или текстовом файле с расширением .dfm хранится информация
о внешнем виде формы, ее размерах, местоположении на экране и т.д.
Основной файл, с которым вы работаете – файл
реализации модуля .cpp, в котором хранится код, соответствующий данной форме. В
текстовом заголовочном файле с расширением .h хранится объявление класса вашей
формы. Весь основной текст этого файла C++Builder формирует автоматически по
мере проектирования вами формы.
Если вы поочередно работаете над многими проектами, то
пространство на диске может неэффективно забиваться ненужными файлами. В этом
случае полезно удалять вспомогательные файлы тех проектов, над которыми вы временно
не работаете. Прежде всего, это относится к файлам .obj, .res, .tds, .~*. Особо
обратите внимание на файлы .tds, объем которых может быть очень большим (несколько
мегабайт).
Теперь несколько слов о выполняемом файле .exe и о
файлах пакетов. В C++Builder можно разрабатывать прикладные программы двух
видов – автономные выполняемые файлы .exe и программы с поддержкой пакетов
(packages) времени выполнения. В последнем случае размер выполняемого файла
существенно сокращается, но зато вы должны поставлять пользователю не только
выполняемый модуль, но и файлы поддерживающих его пакетов. Во всяком случае, во
время отладки, имеет смысл включать поддержку пакетов времени выполнения.
Это существенно сократит размеры выполняемых файлов и
сбережет вам немало дискового пространства.
Разобьем поставленную перед нами задачу на отдельные подзадачи:
2.
Вывод на экран справки, содержащей руководство по управлению и информацию
об авторе.
Программа содержит в своем составе все необходимые
пакеты для работы независимо от C++Buildera. Запуск производится по открытию
файла TeRAn.exe Сразу после этого без промедления открывается
главное окно программы (см. рисунок 1)
Рисунок 1 - Главное окно приложения
В этом окне расположены основные средства управления
программой.
Непосредственно
в работе с текстом участвует форма «Справка», представленная на рисунке 2. Текст справки считывается из файла hlp, который всегда должен находится в
одной папке вместе с исполняемым файлом TeRAn.exe
Рисунок 2 – Вспомогательная форма «Справка»
Рисунок 3 – Вспомогательная форма «О программе»
Из рисунка 1 видно, что на нашей главной форме
приложения можно непосредственно редактировать текст документа, оформляя его по
своему желанию необходимым образом. В верхней части программы находятся две
панели: панель инструментов Panel1 и панель редактирования Panel2, на которых
располагаются кнопки типа SpeedButton, с функциями, соответствующими техническому заданию.
+
SVGA – карта (800х600, 65536 цветов);
В состав пользовательского пакета входит всего 2
файла:
hlp – файл справки,
который при необходимости, можно сделать встроенным.
Все файлы должны лежать в одной папке и запускаться
оттуда.
Данная программа представляет собой текстовый
редактор, предназначенный для набора, редактирования и форматирования текста.
Сначала необходимо скопировать все файлы, входящие в программный пакет на
жесткий диск (все файлы должны находиться в одной папке). Для начала работы с
программой следует запустить файл TeRAn.exe, после чего появится сразу главная форма с полем для
редактирования. Затем выбирайте нужные для вас действия, следуя всплывающим
подсказкам, и подсказкам появляющимся в строке состояния.
Текст можно вводить как с клавиатуры, так и из файла.
Для того, чтобы прочитать руководство пользователя
выберите пункт меню «? | Справка».
Для выхода из программы выберите пункт меню «Файл |
Выход.
Для сохранности и успешной работы программы не
рекомендуется вносить какие-либо изменения в файлы программного пакета, а также
следует хранить эти файлы и запускать программу из одной папки.
У программы можно найти следующие достоинства: низкие
системные и аппаратные требования, имеет простой алгоритм, по размеру
значительно мала, приличная скорость работы. Программа не представляет
сложности для пользователя и имеет практически все возможности редактирования
текста.
Недостатком программы является отсутствие настроек
параметров страницы. Нет предварительного просмотра для отправки на печать.
Также недостатком можно считать отсутствие выбора
кодировки и отсутствие синтаксической подсветки.
Таким образом, у разработанной программы есть
несколько способов дальнейшего усовершенствования, после которого программа бы
избавилась от вышеописанных недостатков.
В результате выполнения курсового проекта была
разработана программа, демонстрирующая пример текстового редактора. В программе
были использованы основные типы данных, структуры данных, а также программа
строилась по модульному принципу.
В результате проделанной работы был
повторен и использован при разработке программы пройденный материал по программированию
в среде разработки C++Builder 6.
Также была проделана немаловажная работа по написанию пояснительной
записки, опыт которой, безусловно, пригодиться в будущем при написании
всевозможной документации.
Достаточно интересно было работать над самой
поставленной задачей. Во время работы был прочитан материал, связанный
непосредственно с языком программирования С++.
1.
Фаронов В.В., Программирование в Builder C++: Учебный курс. – СГб.: Питер, 2004.
2.
Архангельский А.Я., Тагин М.А.
Приемы программирования в C++Builder 6 и 2006: Вычислительные задачи, работа с
документами. – М:ЗАО «Издательство БИНОМ», 2007
3.
Архангельский А.Я. Справочное пособие по C++Builder 6 и 2006. Компоненты. - М:ЗАО «Издательство БИНОМ», 2006
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR,
int)
Application->CreateForm(__classid(TForm1),
&Form1);
Application->CreateForm(__classid(TForm2),
&Form2);
Application->ShowException(&exception);
Application->ShowException(&exception);
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent*
Owner)
//---------------------------------------------------------------------------
void __fastcall
TForm1::SpeedButton4Click(TObject *Sender)
RichEdit1->Lines->LoadFromFile(OpenDialog1->FileName);
StatusBar1->Panels->Items[0]->Text=(OpenDialog1->FileName);
//---------------------------------------------------------------------------
void __fastcall
TForm1::SpeedButton14Click(TObject *Sender)
RichEdit1->SelAttributes->Color =
ColorDialog1->Color;
//---------------------------------------------------------------------------
void __fastcall
TForm1::CSpinEdit1Change(TObject *Sender)
RichEdit1->SelAttributes->Size =
CSpinEdit1->Value;
//---------------------------------------------------------------------------
void __fastcall
TForm1::ComboBox1Change(TObject *Sender)
RichEdit1->SelAttributes->Name=ComboBox1->Items->Strings[ComboBox1
->ItemIndex];
//---------------------------------------------------------------------------
void __fastcall
TForm1::SpeedButton13Click(TObject *Sender)
RichEdit1->SelAttributes->Style=TFontStyles()<<
fsBold;
RichEdit1->SelAttributes->Style=TFontStyles();
if
((SpeedButton13->Down==true)&&(SpeedButton12->Down==true))
RichEdit1->SelAttributes->Style=TFontStyles()<Down==false)&&(SpeedButton12->Down==true))
RichEdit1->SelAttributes->Style
=TFontStyles()<Down)&&(SpeedButton11->Down))
RichEdit1->SelAttributes->Style=TFontStyles()<Down==false)&&(SpeedButton11->Down==true))
RichEdit1->SelAttributes->Style
=TFontStyles()<Down==true)&&(SpeedButton12->Down==true)&&(SpeedButton11->Down==true))
RichEdit1->SelAttributes->Style=TFontStyles()<Down==false)&&(SpeedButton12->Down==true)&&(SpeedButton11->Down==true))
RichEdit1->SelAttributes->Style
=TFontStyles()<SelAttributes->Style=TFontStyles()<<
fsItalic;
RichEdit1->SelAttributes->Style=TFontStyles();
if
((SpeedButton12->Down==true)&&(SpeedButton13->Down==true))
RichEdit1->SelAttributes->Style=TFontStyles()<Down==false)&&(SpeedButton13->Down==true))
RichEdit1->SelAttributes->Style
=TFontStyles()<Down)&&(SpeedButton11->Down))
RichEdit1->SelAttributes->Style=TFontStyles()<Down==false)&&(SpeedButton11->Down==true))
RichEdit1->SelAttributes->Style
=TFontStyles()<Down==true)&&(SpeedButton12->Down==true)&&(SpeedButton11->Down==true))
RichEdit1->SelAttributes->Style=TFontStyles()<Down==true)&&(SpeedButton12->Down==false)&&(SpeedButton11->Down==true))
RichEdit1->SelAttributes->Style
=TFontStyles()<SelAttributes->Style=TFontStyles()<<
fsUnderline;
RichEdit1->SelAttributes->Style=TFontStyles();
if
((SpeedButton11->Down==true)&&(SpeedButton13->Down==true))
RichEdit1->SelAttributes->Style=TFontStyles()<Down==false)&&(SpeedButton13->Down==true))
RichEdit1->SelAttributes->Style
=TFontStyles()<Down==true)&&(SpeedButton12->Down==true))
RichEdit1->SelAttributes->Style=TFontStyles()<Down==false)&&(SpeedButton12->Down==true))
RichEdit1->SelAttributes->Style
=TFontStyles()<Down==true)&&(SpeedButton12->Down==true)&&(SpeedButton11->Down==true))
RichEdit1->SelAttributes->Style=TFontStyles()<Down==false)&&(SpeedButton12->Down==true)&&(SpeedButton13->Down==true))
RichEdit1->SelAttributes->Style
=TFontStyles()<Execute())
RichEdit1->Lines->SaveToFile(SaveDialog1->FileName);
StatusBar1->Panels->Items[0]->Text=SaveDialog1->FileName;
//---------------------------------------------------------------------------
void __fastcall TForm1::N5Click(TObject
*Sender)
if (SaveDialog1->Execute())
RichEdit1->Lines->SaveToFile(SaveDialog1->FileName);
StatusBar1->Panels->Items[0]->Text=SaveDialog1->FileName;
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton1Click(TObject
*Sender)
//---------------------------------------------------------------------------
void __fastcall
TForm1::SpeedButton6Click(TObject *Sender)
if (PrintDialog1->Execute())
RichEdit1->Print(" ");
//---------------------------------------------------------------------------
void __fastcall TForm1::N3Click(TObject
*Sender)
RichEdit1->Lines->LoadFromFile(OpenDialog1->FileName);
StatusBar1->Panels->Items[0]->Text=(OpenDialog1->FileName);
//---------------------------------------------------------------------------
void __fastcall
TForm1::SpeedButton7Click(TObject *Sender)
FindDialog1->Position =
Point(RichEdit1->Left + RichEdit1->Width, RichEdit1->Top);
//FindDialog1->FindText=RichEdit1->SelText;
//---------------------------------------------------------------------------
void __fastcall
TForm1::FindDialog1Find(TObject *Sender)
StartPos = RichEdit1->SelStart +
RichEdit1->SelLength;
ToEnd = RichEdit1->Text.Length() -
StartPos;
RichEdit1->SelLength =
FindDialog1->FindText.Length();
//---------------------------------------------------------------------------
void __fastcall TForm1::N9Click(TObject
*Sender)
if (MessageBox(0,"Сохранить содержимое окна
редактирования? ","Подтвердите сохранение",MB_YESNO)==IDYES)
if (SaveDialog1->Execute())
RichEdit1->Lines->SaveToFile(SaveDialog1->FileName);
//---------------------------------------------------------------------------
void __fastcall TForm1::N16Click(TObject
*Sender)
if (MessageBox(0,"Сохранить содержимое окна редактирования? ","Подтвердите
сохранение",MB_YESNO)==IDYES)
StatusBar1->Panels->Items[0]->Text="Документ";
//---------------------------------------------------------------------------
void __fastcall
TForm1::SpeedButton2Click(TObject *Sender)
//---------------------------------------------------------------------------
void __fastcall
TForm1::SpeedButton5Click(TObject *Sender)
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton9Click(TObject
*Sender)
//---------------------------------------------------------------------------
void __fastcall TForm1::N20Click(TObject
*Sender)
//---------------------------------------------------------------------------
void __fastcall
TForm1::ReplaceDialog1Replace(TObject *Sender)
TReplaceDialog *dlg = (TReplaceDialog
*)Sender;
int SelPos =
RichEdit1->Lines->Text.Pos(dlg->FindText);
RichEdit1->SelLength =
dlg->FindText.Length();
RichEdit1->SelText =
dlg->ReplaceText;
//---------------------------------------------------------------------------
void __fastcall TForm1::N19Click(TObject
*Sender)
FindDialog1->Position =
Point(RichEdit1->Left + RichEdit1->Width, RichEdit1->Top);
//---------------------------------------------------------------------------
void __fastcall TForm1::N30Click(TObject *Sender)
RichEdit1->SelAttributes->Assign(FontDialog1->Font);
//---------------------------------------------------------------------------
void __fastcall TForm1::N28Click(TObject
*Sender)
Application->CreateForm(__classid(TAboutBox),
&AboutBox);
//---------------------------------------------------------------------------
void __fastcall TForm1::N7Click(TObject
*Sender)
if (PrintDialog1->Execute())
RichEdit1->Print(" ");
//---------------------------------------------------------------------------
void __fastcall TForm1::N24Click(TObject
*Sender)
StatusBar1->Visible=!
StatusBar1->Visible;
//---------------------------------------------------------------------------
void __fastcall TForm1::N22Click(TObject
*Sender)
//---------------------------------------------------------------------------
void __fastcall TForm1::N23Click(TObject
*Sender)
//---------------------------------------------------------------------------
void __fastcall
TForm1::SpeedButton16Click(TObject *Sender)
{RichEdit1->Color=ColorDialog1->Color;}
//---------------------------------------------------------------------------
void __fastcall
TForm1::SpeedButton17Click(TObject *Sender)
RichEdit1->Paragraph->Alignment=taLeftJustify;
//---------------------------------------------------------------------------
void __fastcall
TForm1::SpeedButton18Click(TObject *Sender)
RichEdit1->Paragraph->Alignment=taCenter;
//---------------------------------------------------------------------------
void __fastcall
TForm1::SpeedButton19Click(TObject *Sender)
RichEdit1->Paragraph->Numbering=nsBullet;
RichEdit1->Paragraph->Numbering=nsNone;
//---------------------------------------------------------------------------
void __fastcall
TForm1::SpeedButton15Click(TObject *Sender)
RichEdit1->Paragraph->Alignment=taRightJustify;
//---------------------------------------------------------------------------
void __fastcall
TForm1::CSpinEdit1KeyPress(TObject *Sender, char &Key)
if((Key!=VK_BACK)&&(Key!='9')&&(Key!='8')&&(Key!='7')&&(Key!='6'))
Dig << '0'<< '1'<< '2'
<< '3'<< '4' << '5'<< ' 6 '<< ' 7 '<< ' 8
'<< ' 9 ' ;
if ( ! Dig.Contains(Key)) { Key = 0; Beep
() ;}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormShow(TObject
*Sender)
for (i=0; iFonts->Count;
i++)
ComboBox1->Items->Add
(Screen->Fonts->Strings[i] ) ;
CSpinEdit1->Value=RichEdit1->SelAttributes->Size;
//---------------------------------------------------------------------------
void __fastcall
TForm1::RichEdit1MouseUp(TObject *Sender,
TMouseButton Button, TShiftState Shift, int
X, int Y)
if(RichEdit1->Paragraph->Numbering==nsNone)
if(RichEdit1->Paragraph->Numbering==nsBullet)
switch
(RichEdit1->Paragraph->Alignment)
{case taLeftJustify:
SpeedButton17->Down=true; break;
case taCenter: SpeedButton18->Down=true;
break;
case taRightJustify: SpeedButton15->Down=true;
break;}
if(RichEdit1->SelAttributes->Style==RichEdit1->SelAttributes->Style<SelAttributes->Style==RichEdit1->SelAttributes->Style<SelAttributes->Style==RichEdit1->SelAttributes->Style<Value=RichEdit1->SelAttributes->Size;
ComboBox1->ItemIndex =
ComboBox1->Items->IndexOf(RichEdit1->SelAttributes->Name) ;
//---------------------------------------------------------------------------
void __fastcall
TForm1::RichEdit1KeyUp(TObject *Sender, WORD &Key,
if(RichEdit1->Paragraph->Numbering==nsNone)
if(RichEdit1->Paragraph->Numbering==nsBullet)
switch
(RichEdit1->Paragraph->Alignment)
{case taLeftJustify:
SpeedButton17->Down=true; break;
case taCenter: SpeedButton18->Down=true;
break;
case taRightJustify: SpeedButton15->Down=true;
break;}
if(RichEdit1->SelAttributes->Style==RichEdit1->SelAttributes->Style<SelAttributes->Style==RichEdit1->SelAttributes->Style<SelAttributes->Style==RichEdit1->SelAttributes->Style<Value=RichEdit1->SelAttributes->Size;
ComboBox1->ItemIndex =
ComboBox1->Items->IndexOf(RichEdit1->SelAttributes->Name) ;
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject
*Sender)
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject
*Sender, TCloseAction &Action)
//---------------------------------------------------------------------------
void __fastcall
TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)
int res=Application->MessageBox("Текст документа не сохранен. \n\n" "Сохранить документ
в файле\n\n" "(Отмена - продолжение работы)", "Подтвердите
завершение работы", MB_YESNOCANCEL+MB_ICONQUESTION);
case IDYES: N5Click(Sender); break;
//---------------------------------------------------------------------------
void __fastcall TForm1::N26Click(TObject
*Sender)
Application->CreateForm(__classid(TForm2),
&Form2);
Form2->Memo1->Lines->LoadFromFile("hlp");
Похожие работы на - Алгоритм, написание и отладка программы "Текстовый редактор" Курсовая работа (т). Информационное обеспечение, программирование.
Сочинение Недоросль С Цитатами
Дипломная работа по теме Механическая обработка детали 'куб'
Сочинение На Тему Нужны Ли Обществу Перемены
Реферат: Инфляция, безработица, финансы
Реферат: Хрущов проти Сталіна Доповідь на ХХ з їзді КПРС
Реферат: Собственный капитал коммерческого банка
Реферат: Оцінка сучасного стану і перспектив розвитку страхування автотранспортних засобів в Україні
Изобразительные Средства Языка Реферат
Реферат по теме Логистика снабжения
Табиғатты Не Үшін Сақтау Керек Эссе
Реферат На Тему Преступность России
Курсовая работа по теме Технико-экономический проект участка первичной сети
Пример Заполненного Дневника По Учебной Практике
Курсовая работа: Монтаж фреоновых холодильных установок с рассольным охолождением
Реферат: Восстановление прав по утраченным ценным бумагам на предъявителя или ордерным ценным бумагам вы
Стихи Собственного Сочинения О Жизни
Курсовая работа: Управление сложными системами
Курсовая работа по теме Юридическая ответственность физических лиц за нарушение прав и свобод других граждан
Реферат: ProChoice Among Women Essay Research Paper An
Почему Важно Проявлять Внимание К Людям Сочинение
Похожие работы на - Организационная диагностика магазина ООО 'Велес'
Курсовая работа: Особенности выразительных средств печатных СМИ
Курсовая работа: Ремонт безвальної головки блоку автомобіля ГАЗ-53