Главная » Все файлы » Просмотр файлов из архивов » Документы » Создание редактора таблиц для работ с типизированными файлам

Создание редактора таблиц для работ с типизированными файлам (Turbo Delphi)

2013-10-26СтудИзба

Описание файла

Файл "Создание редактора таблиц для работ с типизированными файлам" внутри архива находится в следующих папках: Turbo Delphi, 3.Типизированные файлы, Задания. Документ из архива "Turbo Delphi", который расположен в категории "". Всё это находится в предмете "информатика" из 2 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "информатика" в общих файлах.

Онлайн просмотр документа "Создание редактора таблиц для работ с типизированными файлам"

Текст из документа "Создание редактора таблиц для работ с типизированными файлам"

Создание редактора для работ с типизированными файлами

  1. Создание макета формы.

    1. Разместите на форме компонент StringGrid1 – таблицу строк: на панели инструментов Additional щелкните на значке StringGrid(Grids), а затем щелчком на форме, буксировкой и перетаскиванием маркеров придайте ему такие размеры и положение, чтобы осталось сверху место для размещения других компонентов.

    2. Разместите на форме значок MainMenu1 (иcпользуя панель инструментов Standard), а также значки OpenDialog1 – окна диалога выбора открываемого файла и SaveDialog1 - окна диалога выбора файла для сохранения данных редактируемой таблицы (иcпользуя панель инструментов Dialogs).

В результате макет формы должен принять вид как на рис 1, но без строки меню и другим видом таблицы.

    1. Выполните программу, убедитесь в том, что невизуальные компоненты – значки меню и диалогов не отображаются на форме, а в остальном вид формы полностью соотетствует её макету.

  1. Создание структуры меню.

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

  1. Создание заглушек обработчиков событий.

Создайте точно так же, как в предыдущем заданиии на разработку текстовых файлов з аглушки обработчиков событий щелчков на подпунктах меню и события создания формы, добавив соответствующие комментарии в шаблоны обработчиков этих событий. (см. файл Создание текстового редактора для работ с текстовыми файлами.doc, пункт 3).

  1. Добавление переменных, представляющих текущее состояние процесса обработки данных.

Справка. Эти переменные используются разными методами и их объявление можно дать либо внутри объявления класса, либо в разделе var в интерфейсной части, либо в разделе var в части реализации. Если в дальнейшем предполагается запретить доступ к этим переменным вне данного модуля (например, в наследниках класса, объявляемых в других модулях или в основной программе), то их следует объявить в части реализации или в разделе private класса. TForm1.

    1. Переменная S:string должна представлять спецификацию файла, обрабатываемого в текущий момент. Её пустое значение будет обозначать, что текст из элемента Memo1 еще не сохранен в файле.

    2. П

      procedure TForm1.FormCreate(Sender: TObject);

      begin

      //Обработчик события СОЗДАНИЯ ФОРМЫ

      //При создании формы считать,

      //что таблица не модифицирована,

      TabModified:=false;

      //разрешить редактировать текст в ячейках

      Form1.StringGrid1.Options:=Form1.StringGrid1.Options

      +[goEditing];

      //УСТАНОВКА ШИРИНЫ СТОЛБЦОВ, ВЫВОД ЗАГОЛОВКОВ СТОЛБЦОВ и

      //ШИРИНЫ ОКНА ПОД ТАБЛИЦУ ДЛЯ ДАННЫХ ИЗ ФАЙЛА (см. тип tz, ftz)

      TabForFile;//своей процедурой

      //Пока S='', редактируемый текст не сохранен в файле

      S:='';//а в дальнейшем S может представлять

      //спецификацию файла.

      end;//procedure TForm1.FormCreate(Sender: TObject)

      Рис. 2. Обработчик события создания формы

      еременная TabModified: Boolean будет использоваться как признак, получающий значение true при всяком изменении содержимого таблицы, и значение false для пустой таблицы или при загрузку в таблицу данных из файла.

  1. Объявление типов данных

    1. В программе этого задания будут обрабатываться данные, представляющие информацию о студентах разных групп: порядковый номер в списке, имя группы, фамилия и три оценки. Переменные, представляющие эту информацию, будут иметь тип

tz=record No:byte; Gr:string[8]; FIO:string[12];

o1,o2,o3:2..5 end;

Соответственно типизированные файлы, хранящие эти данные, должны иметь тип

tfz=file of tz;

Разместите объявление этих типов в части реализации.

  1. С
    оздание обработчиков событий
    .

    1. Добавьте в метод procedure TForm1.FormCreate(Sender: TObject) обработки события FormCreate операторы и комментарии, как на рис.2.

И
з этого обработчика вызывается процедура TabForFile, составленная для программной установки параметров основной таблицы, в которий будут создаваться исходные, предназначенные для обработки данные (одной строке таблицы соответствует одна запись типа tz), сохраняться в типизированном файле типа tfz, загружаться из файла и редактироваться. Это – количества строк (в дальнейшем не может изменяться), количество столбцов, ширина каждого столбца, тексты заголовков стобцов, ширина окна для отображения таблицы (см. рис. 3). В процессе выполнения заданий может возникнуть необходимость изменить параметры таблицы для отображения результатов выполняемых работ и тогда, чтобы восстановить параметры основной таблицы достаточно будет вызвать процедуру TabForFile. Если при переходе от одной структуры таблицы к другой некоторые параметры остаются неизменными и представлены соответствующими свойствами в Инспекторе объектов, то их установку можно выполнить на этапе разработки макета формы. В данном примере так сделано для установки полос прокрутки заданием свойству ScrollBars значения ssBoth (см. рис. 4) и фиксации (объявление как заголовочной) первой строки таблицы заданием свойству FixedRows значения 1, а свойству FixedCols значения 0, так как фиксированных столбцов не должно быть (см. рис 1, где первая строка выделена цветом).

    1. Создайте обработчик procedure TForm1.N6Click(Sender: TObject) события щелчка на пункте меню Файл\Сохранить как…, для чего сделайте двойной щелчок на соответствующей строке дерева объектов и в появившейся заглушке добавьте операторы и комментарии, как на рис. 5. В этом обработчике опреатором вызывается процедура SaveToFileOfTz, предназначенная для сохранения содержимого основной таблицы в файле типа tfz. Её текст представлен на рисю 6.

Д ля проверки работы. Запустите программу, наберите в строках таблицы StringGrid1 строки как показано на рис.7 и сохраните данные в файле fz.rec в текущем каталоге. Затем откройте этот файл на новой вкладке с именем fz.rec окна редактора текстов Delphi следующим образом: введите команду Файл/Открыть…, в появившемся окне диалога Open выберите в раскрывающемся списке Тип файлов: строку Any file(*.*), в списке файлов выберите fz.rec и щелкните на кнопке Открыть. Данные из файла fz.rec будут прочитаны как из текстового файла, поэтому правильно отобразятся только строковые данные (названия групп и фамилии), но не числовые, так как в типизированных файлах данные хранятся в форме внуреннего представления.

    1. С
      оздайте самостоятельно обработчик procedure TForm1.N5Click(Sender: TObject) события щелчка на пункте меню Файл\Сохранить, имея в виду следующее: если данные ещё не сохранялись в файле, точнее, если S≠’’, то следует вызвать N6Click(Self) - обработчик, созданный для пункта меню Файл.Сохранить как…, иначе – процедуру SaveToFileOfTz.

    2. Создайте в начале раздела реализации процедуру LoadFromFileOfTz, загружающую в основную таблицу данные из файла со спецификацией S и устанавливающую признак, что данные в таблице после загрузки ещё не изменены (см. рис. 8).

    3. С

      procedure TabClear;

      var iStroki,iStolbca:integer;

      begin

      //очистка ячеек таблицы

      for iStolbca:=0 to Form1.StringGrid1.ColCount-1 do

      for iStroki:=1 to Form1.StringGrid1.RowCount-1 do

      Form1.StringGrid1.Cells[iStolbca,iStroki]:='';

      end;//procedure TabClear

      Рис. 10. процедура очистки основной таблицы

      оздайте обработчик procedure TForm1.StringGrid1GetEditText(Sender: TObject; ACol, ARow: Integer; var Value: String) события изменения данных в таблице, поместив в него всего один оператор TabModified:=true. Для создания шаблона этого обработчика щелкните на таблице в макете формы и в Инспекторе объектов на вкладке Events сделайте двойной щелчок в строке OnGetEditText.

    4. Создайте обработчик procedure TForm1.N3Click(Self) события щелчка на пункте меню Файл\Открыть…, для чего сделайте двойной щелчок на соответствующей строке дерева объектов и в появившейся заглушке добавьте операторы и комментарии (см. текст обработчика рис. 9), имея в виду следующее.

      1. Возможно, структура таблицы была изменена, поэтому следует восстановить структуру осонвной таблицы, вызвав процедуру TabForFile и очистить её, вызвав процедуру TabClear (см. рис 10).

      2. Если данные таблицы не были изменены (TabModified ложно), то сразу перейти к диалогу открытия файла, иначе следует предложить пользователю разрабатываемой программы выбрать в диалоге (см. справку по функции MessageDlg) вариант продолжения работы с измененными данными:

    • I) или сохранить их в файле по выбору, вызвав N6Click(Self) и затем открыть новый файл;

    • II) или не сохранять данные и открыть новый файл;

    • III) или отменить выполнение команды, выйдя из метода и продолжить редактирование данных, как если бы команда открытия файла вообще не вводилась.

      1. Диалог для выбора открываемого файла запускается командой OpenDialog1.Execute (см справку по классу TOpenDialog). Если открываемый файл не был выбран (в окне диалога Открыть была нажата кнопка Отмена), то следует просто выйти из обработчика (вернуться к редактированию прежних данных), иначе следует загрузить выбранный файл на редактирование, переменной S присвоить спецификацию этого файла и отобразить её в заголовке окна форма, а также свойству TabModified присвоить значение false – признак того, что загруженные на редактирование данные пока не изменены.

    1. Создайте самостоятельно обработчик procedure TForm1.N7Click(Sender: TObject) события щелчка на пункте меню Файл.Выход, для чего сделайте двойной щелчок на соответствующей строке дерева объектов и в появившейся заглушке добавьте операторы и комментарии, имея в виду следующее. Если редактируемые данные не были измены (TabModified ложно), то сразу завершите работу программы оператором close, иначе следует предложить пользователю разрабатываемой программы выбрать в диалоге (см. справку по функции MessageDlg) вариант продолжения работы с измененными данными:

    • I) или сохранить их в файле по выбору (пользователь нажал кнопку Yes), вызвав N6Click(Self) и затем завершить работу программы;

    • II) или не сохранять текст (пользователь нажал кнопку No) и завершить работу программы;

    • III) или отменить выполнение команды (пользователь нажал кнопку Cancel), выйдя из обработчика по exit, и продолжить редактирование данных, как если бы команда завершить работу программы вообще не вводилась.

    1. Создайте самостоятельно обработчик procedure TForm1.N2Click(Sender: TObject) события щелчка на пункте меню Файл.Создать, для чего сделайте двойной щелчок на соответствующей строке дерева объектов и в появившейся заглушке добавьте операторы и комментарии, имея в виду что: - нужно без всяких условий перейти к структуре основной таблицы вызовом TabForFile и очистить её, - строка S должна стать пустой, то есть не должна представлять имя файла, - установить в ложь признак TabModified, - в заголовке формы оставить только её название, то есть слово Form1.

    2. Создайте самостоятельно обработчик procedure TForm1.N5Click(Sender: TObject) события щелчка на пункте меню Файл\Сохранить, для чего сделайте двойной щелчок на соответствующей строке дерева объектов и в появившейся заглушке добавьте операторы и комментарии, имея в виду следующее. Если строка S пустая, то есть не представляет имя файла, то следует передать управление обработчику команды Файл/Сохранить как…, выполнив оператор N6Click(Self), иначе – сохранить данные таблицы в файле, вызвав процедуру TabModified. Затем установить оператором TabModified:=false признак, что данные в таблице не модифицированы.

    3. Создайте самостоятельно обработчик procedure TForm1.N4Click(Sender: TObject) события щелчка на пункте меню Файл.Закрыть, для чего сделайте двойной щелчок на соответствующей строке дерева объектов и в появившейся заглушке добавьте операторы и комментарии, имея в виду, что если текст был изменен, то нужно в диалоге (см. справку по функции MessageDlg) выяснить, что желает пользователь. Если он нажмёт кнопук Cancel, то есть хочет вернуться к редактированию данных, то следует просо выйти из обработчика. Если он нажмёт кнопку No, то нужно очистить таблицу, вывести в заголовок окна название формы слово Form1, установить признак, что таблица не модифицирована (TabModified:=false) и присвоить S пустое значение. Если пользователь нажмёт кнопку Yes, то нужно выполнить те же действия, что и при нажатии кноки No, но предварительно сохранить данные таблицы в файле, вызвав процедуру TabModified, если S≠’’, или сохранить данные таблицы в файле по выбору, вызвав N6Click(Self), если S=’’.

  1. .Задания для самостоятельного выполнения(см. файл с заданиями)

    1. Создать типизированный файл с заданной структурой его компонентов.

    2. Добавить для подпунктов Работа обработчики в соответствии со своим вариантом задания.

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5167
Авторов
на СтудИзбе
437
Средний доход
с одного платного файла
Обучение Подробнее