Многострочный редактор Свойства, методы, события. Delphi

Раздел Информатика
Класс -
Тип Другие методич. материалы
Автор
Дата
Формат docx
Изображения Есть
For-Teacher.ru - все для учителя
Поделитесь с коллегами:

ДАГЕСТАНСКИЙ ИНСТИТУТ ПОВЫШЕНИЯ КВАЛИФИКАЦИИ ПЕДАГОГИЧЕСКУИХ КАДРОВ

КАФЕДРА МАТЕМАТИКИ, ИНФОРМАТИКИ И ФИЗИКИ



Проект.



На тему: «Многострочный редактор. Свойства, методы и события».

Алиева Рагимат Исаевна

учитель информатики МБОУ «Гимназии № 11»

г. Махачкалы.

Многострочный редактор Свойства, методы, события. Delphi








г. Махачкала 2013 г.

Введение

1.Основная часть.


  1. История создания Delphi

1.2. Компонент Delphi Memo.

1.3. Многострочное окно редактирования Memo в Дельфи

1.3.1. Основные свойства.

1.3.2. Основные методы.

1.3.3. Основные события.

2. Практическая часть

2.1.Пример Memo в Delphi

2.2. Пример собственного класса в Delphi

Заключение

Список литературы



Введение

В данной работе будет рассматриваться использование среды Delphi. В его основе лежит язык Object Pascal. Язык программирования Pascal является базовым в большинстве университетов страны, в том числе и педагогических. Вследствие этого, практически все учителя информатики владеют основами программирования на языке Pascal. Поэтому, именно Delphi, должен стать базовым языком в школах для изучения объектно-ориентированного программирования.

Изучение Delphi в школьном курсе является логическим продолжением непрерывного курса информатики в школе. Овладение основами программирования на Delphi позволит учащимся реализовать свои творческие проекты в соответствии с современными требованиями.

·Delphi - идеальный продукт для школьного курса информатики. Изучение данного языка программирования в школьном курсе имеет ряд преимуществ:

·Delphi - современный язык программирования, отражающий все мировые тенденции в информационных технологий;

·концепция языка проста и понятна уже начинающему программисту;

·в основе Delphi лежит язык программирования Pascal, который изучается в большинстве школ;

·изучение Delphi связано с изучением вспомогательных разделов курса информатики таких, как: операционные системы, создание и редактирование текста, создание и редактирование графических объектов, мультимедиа, базы данных, компьютерные сети.

Целью исследования является проработка проблемы изучения основ программирования на Delphi информатики многострочного редактора Мемо.

Из определения целей вытекают задачи исследования: изучить теорию программирования на Delphi, показать использование визуальной среды программирования при разработке программ, рассмотреть основы программирования на Delphi многострочного редактора Мемо.

Предметом исследования является теория обучения программирования на Delphi в информатике, а объектом является обучение программированию основами программирования на Delphi с исследованием свойств, методов и событий.

1.Основная часть.

1.1. История создания Delphi

История возникновения Delphi уходит своими корнями в далекие 60-е годы прошлого века. Delphi - это греческий город, где жил дельфийский оракул. Этим именем был назван новый ПП с феноменальными характеристиками. Он удачно сочетает в себе несколько передовых технологий.

Язык Паскаль (послуживший основой для написания Delphi), был разработан профессором Н.Виртом в конце 60-х годов специально для обучения программированию студентов. В числе студентов этого выдающегося профессора Цюрихского университета были Ф.Каин и А.Хейлсберг. Каин позднее основал корпорацию Borland. Под руководством этих двух студентов язык Паскаль был превращен в мощное средство разработки программ любой сложности.

Первым продуктом Borland для семейства Windows стала среда разработки Delphi 1, она была разработана для создания программ под Windows 3.1.

Появление новой версии Delphi 2 существенно отличило среду разработки от предыдущих продуктов. Данная версия была разработана ужу под 32-разядные операционные системы Windows 95 и Windows NT 4.

Следующие версии Delphi (3, 4, 5, б, 7) являлись следствием постепенного развития среды разработки - улучшались существующие компоненты, добавлялись новые возможности, большое внимание уделялось программированию баз данных и программ для глобальной сети Internet. Так же можно сказать, что Delphi иногда именуется еще как и Object Pascal.

Так же одной из инноваций можно считать интеграция в Delphi технологии .Net от Microsoft.

Казалось бы, что следующею версию Delphi логично было бы назвать 9, а на самом деле она называется Borland Delphi 2005. Давай те разберемся почему. Из основных особенностей среды разработки Delphi 2005 можно отметить то, что новая среда разработки объединила в себе весь опыт программирования и создания специальных продуктов для разработки программного обеспечения. В Delphi 2005 можно создавать программы для платформы Win32, а можно создавать программы под перспективную платформу .Net. Кроме того, до седьмой версии использовался язык программирования, основанный на языке Pascal. В новой версии осуществлена возможность разработки программ на нескольких языках (Delphi, C++, Java), чего раньше не было ни в одной подобно среде разработки. Если так же к вышеперечисленному добавить, что в Delphi добавлено много новых компонентов и инструментов.



  1. Компонент Delphi Memo.

Компонент Delphi Memo - это простой текстовый редактор. Delphi Memo позволяет вводить многострочный текст с клавиатуры, загружать его из файла, редактировать и сохранять в файл текстового формата. При изучении работы с Delphi Edit советую посетить страничку работа со строками Delphi, так как там описываются функции Delphi для работы с данными, представленными в текстовой форме, с которыми и оперирует компонент Memo.

Простота текстового редактора компонента Delphi Memo заключается в том, что текстовый редакторDelphi Memo не обладает возможностями форматирования содержещегося в нём текста. Это означает, что все атрибуты выбранного шрифта будут относиться ко всему тексту.

Текст в компоненте Delphi Memo размещается построчно. Поэтому имеется доступ к каждой строке текста отдельно. Строки в редакторе Delphi Memo являются объектами Lines[i] типа String, где i - номер строки, отсчитываемый от нуля. Объект Lines[i] доступен и для чтения, и для записи. Соответственно, текст в компоненте Memo можно редактировать не только с клавиатуры, но и программно:

var S: String;
begin
Memo1.Lines[3]:='Четвёртая строка по счёту';
S:=Memo1.Lines[3];
end;

Естественно, для успешного присвоения текста определённой строке необходимо, чтобы эта строка физически существовала! То есть, данным способом можно только редактировать текст. Новую строку создать таким способом невозможно. Для создания новых строк служат методы

  • Add()

  • Insert()

Метод Add() добавляет новую строку в конец, а метод Insert() внедряет новую строку перед указанной, для чего метод Insert() имеет соответствующий параметр:

begin
Memo1.Lines.Add('Это будет последняя строка');
Memo1.Lines.Insert(2, 'Эта строка будет третьей'); //Так как отсчёт идёт от нуля!
end;

Delphi Memo имеет также метод для удаления строки:

Memo1.Lines.Delete(i); //Удаление строки с индексом i

Количество строк в компоненте Memo содержится в свойстве Count:

N:=Memo.Lines.Count;

Пользуясь этим, например поиск фрагмента 'Нужный_Текст' в строках можно организовать так:

var i: Integer;
begin
for i:=0 to Memo.Lines.Count-1 do
begin
if AnsiPos('Нужный_Текст', Memo.Lines[i])<>0 then
begin
Caption:='Найдено в строке №'+IntToStr(i);
break;
end;
end;
end;

Компонент Delphi Memo позволяет получить доступ к тексту как целому. Свойство Text типа Stringявляется текстом, содержащимся в редакторе, в виде одной строки. Необходимо учитывать, что эта строка также будет включать в себя и непечатаемые символы конца строки #13 и символы переноса строки #10. Кстати, чтобы продолжить текст с новой строки, необходимо использовать последовательно оба этих символа:

Memo1.Text:='Предыдущий текст'+#13+#10+'Это уже новая строка';


Delphi Memo обладает свойствами для перемещения курсора и выделения текста, такими же, как и у компонента Delphi Edit:

  • SelStart

  • SelLenght

  • SelText

Напоминаю:
- свойство SelStart типа Integer задаёт номер символа, после которого будет стоять курсор (отсчитывается от начала всего текста);
- свойство SelLenght типа Integer определяет количество выделенных символов;
- свойство SelText типа String содержит выделенный текст.

Для того, чтобы выделение текста было заметно на экране, небходимо, чтобы компонент обладал фокусом ввода. То есть, чтобы ранее либо пользователь переместил туда курсор, клавишей Tab или щёлкнув мышкой, либо был выполнен оператор Memo1.SetFocus.

Остаётся вопрос, как определить, где сейчас находится курсор, на какой строке, и позицию в строке. Эти параметры содержатся в свойстве CaretPos компонента Delphi Memo, которое имеет тип TPoint, то есть точка - запись с координатами X и Y:

Memo1.CaretPos.X // позиция курсора в строке (в отличие от SelStart);
Memo1.CaretPos.Y // номер строки где находится курсор;



1.3. Многострочное окно редактирования Memo в Дельфи

Многострочный редактор Свойства, методы, события. Delphi

Memo (панель инструментов Standard) - многострочный текстовый редактор в Дельфи. Позволяет редактировать текст окна (сходство с окном Edit). Различие между Edit и Memoэто множество строк. В свойстве Font компонента Memo формат всего текста одинаков. Для различных свойств формата текста лучше использовать компонент RichEdit. Если Вы решили сохранять текст, введенный в Memo, то созданный текстовый файл не будет содержать элементов форматирования текста. По сути в сохраненном файле будет лишь сам текст, а не его атрибуты (пр. шрифт, курсив и т. д.). К примеру, если Вы выгружаете из файла текст обратно в Memo, то придется задавать Font программно.
Рассмотрим следующие свойства, свойство Lines имеет много свойств и методов типаTstrings. Обычно используются для форматирования и редактирования текста. Сам текст хранится в свойстве Text. Свойства SelStart, SelLength, SelStart, Modified - описываются в предыдущей статье (читайте «Однострочное окно редактирования - Edit»).
Свойство Alignment определяет выравнивание текста (влево, вправо, по центру).

Пример:Memo1.Alignment:=taCenter;.
WordWrap - свойство переноса длинных строк. Значения true или false. Полосы прокрутки задаются свойством ScrollBars. Адаптацию размера окна Memo к размеру формы или приложения задаются свойствами Align и Anchors.

1.3.1. Основные свойства.

К основным свойствам (Properties) относятся:

свойство

описание

Align

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

Alignment

Выравнивание текста (taLeftJustify,
taCenter, taRightJustify)

WantReturns

property WantReturns:Boolean;
Можно ли выставить в текст символы
возврата корретки

WantTabs

property WantTabs:Boolean;
Можно ли выставить в текст символы
каретки

WantWrap

property WantWrap:Boolean;
Указывает переносится ли текст
на новую строчку

Font

property Font: TFont;
Атрибуты шрифта

PopupMenu

property PopupMenu: TPopupMenu;
Всплывающее меню компонента

ReadOnly

property ReadOnly:Boolean;
Может ли пользователь изменять
текст в компоненте.

SelLength

property SelLength:Integer;
Определяет количество выделенных
символов в строке.

MaxLength

property MaxLength:Integer;
Указывает максимальное количество
символов, по умолчанию 0 - не
ограничено

Modified

property Modified:Boolean;
Указывает, редактировался ли текст
в компоненте.



1.3.2. Основные методы.

Clear - удаляет текст окна. ClearSelection - удаляет текст, выделенный в окне. ClearUndo - очищаем буфер обмена от команд. CopyToClipboard - перенос выделенного текста в Clipboard. CutToClipboard - перенос выделенного текста вClipboard и уничтожение текста в окне. PasteToClipboard - вставка текста в окно из буфера обмена. Selectall - выделяем весь текст в окне. Undo - отменяем все изменения, которые хранятся в буфере с момента последнего вызова ClearUndo. Все эти методы являются процедурами, и задавать их нужно как Procedure <имя процедуры>;

1.3.3. Основные события.

Основные события (Events) для Memo:

OnChange - наступает, когда текст в окне изменился, OnKeyDown - наступает при нажатии пользователем любой клавиши (можно распознать нажатую клавишу в обработчике).OnKeyPress - событие наступает при нажатии пользователем клавиши символа (можно распознать вводимый символ в обработчике, а также запретить ввод). OnKeyUp -наступает, когда пользователь отпустил какую-либо клавишу (также можно распознать клавишу).



2. Практическая часть

2.1.Пример Memo в Delphi

Данный пример будет реализован Memo и его свойств относительно шрифта. При выборе стиля и размера шрифта, в поле Memo, написанный некоторый отрывок текста будет меняться.

Многострочный редактор Свойства, методы, события. Delphi

Собственно создаем новый проект и сохраним его. Для нашей основной формы сразу напишем название в свойстве Caption - Работа с текстом. Форма у меня получилась размером 382 на 582 - это впрочем, не так уж важно. Для стиля нам потребуется 3 компонента CheckBox, а для самого шрифта 3 переключателя RadioButton. Так же для размера шрифта я использовал StaticText1 внизу, Label1 с текстом в Caption - Размер шрифта и Edit1 для его изменения. Соответственно у CheckBox-ов меняем названия (Caption) : жирный, курсив и подчеркнутый, а для RadioButton - Times NewRoman, Arial и Courier. Собственно сам компонент Memo - назовем его MyMemo в поле Name. Все, на этом этапе уже можно начать программирование.

Многострочный редактор Свойства, методы, события. Delphi


Итак, при активации или запуске нашей формы в Events событии формы OnCreate:

MyMemo.Text:='';
StaticText1.Caption:= Введите размер: ' + IntToStr(MyMemo.Font.Size);
Edit1.Text:= IntToStr(MyMemo.Font.Size);

очищаем MyMemo, в StaticText1 записываем текущее значение размера шрифта MyMemo.Font.Size и в Edit1 (однострочное окно редактирование) передаем размер шрифта, путем преобразования этой переменной в строковый тип.
Чтобы напрямую текст менялся на жирный, в событии (OnClick) первого индикатора CheckBox1 запишем проверку if-else:

if CheckBox1.Checked then
MyMemo.Font.Style:= MyMemo.Font.Style + [fsBold]
else
MyMemo.Font.Style:= MyMemo.Font.Style - [fsBold];

Данные свойства стиля текста Вы можете увидеть на вкладке Properties инспектора Object Inspector при выделенном MyMemo. Получается добавление свойства fsBold (текст является жирным). Для курсива (CheckBox2) соответственно fsItalic и для подчеркнутого (CheckBox3) - fsUnderline.
Переключатели, которые будут задавать сам шрифт то же в Событии (OnClick):
MyMemo.Font.Name := 'Times New Roman'; // для RadioButton1
MyMemo.Font.Name := 'Arial'; // для RadioButton2
MyMemo.Font.Name := 'Courier'; // для RadioButton3

Остается дописать для Edit1 (окно редактирования размера) в событии (Events) OnChange следующее:

MyMemo.Font.Size:= StrToInt (Edit1.Text);
StaticText1.Caption:= 'Размер шрифта: ' + IntToStr(MyMemo.Font.Size);

Вот, кажется все. Сохраняем и запускаем. Проверяем, что все работает. Есть только один недостаток - размерность шрифта может быть только целым числом.

2.2. Пример собственного класса в Delphi

Общий синтаксис объявления класса в Делфи (class in Delphi) описан здесь. Попробую реализовать свой собственный класс. Для этого нужна цель. Что будет знать класс и в последствии уметь делать. Итак, например, задача: Есть дом. В нем живут жильцы. Сопоставить номер квартиры с фамилией жильца.

Для реализации данной ситуации решено использовать свой собственный класс. Он будет называться Resident. В этом классе будет две переменные: apartament : Integer; иSurrname : String; . Для реализации класса потребуется функция (например: Info()). Она, допустим, будет просто возвращать номер квартиры и фамилию жильца.

// класс апартаменты:

type Resident = class

apartament : Integer;

Surrname : String;

function Info (): String;

end;

Сама функция описывается после класса:

// функция вывода информации о жильце

function Resident.Info;

begin

Result := 'resident: ' + Surrname +

' apartament №: ' + IntToStr(apartament) + '.';

end;

Сама программа выглядит следующим образом:

Var

Ivanov : Resident;

begin

Ivanov := Resident.Create();

Ivanov.apartament:=20;

Ivanov.Surrname:='Ivanov';

Showmessage(Ivanov.Info());

end.

Задаем переменную своего класса в разделе Var. Инициализируем ее Ivanov := Resident.Create(); . Наполняем информацией Ivanov.apartament:=20; Ivanov.Surrname:='Ivanov'; и выводим на экран Showmessage(Ivanov.Info());.

Полный листинг программы выглядит следующим образом:

program example;

uses

SysUtils,

Dialogs;

type Resident = class

apartament : Integer;

Surrname : String;

function Info (): String;

end;

function Resident.Info;

begin

Result := 'resident: ' + Surrname +

' apartament №: ' + IntToStr(apartament) + '.';

end;

Var

Ivanov : Resident;

begin

Ivanov := Resident.Create();

Ivanov.apartament:=20;

Ivanov.Surrname:='Ivanov';

Showmessage(Ivanov.Info());

End.

Таким образом, приведенный пример позволит более детально понять осуществление своего класса в Делфи (Delphi).





Заключение.

В настоящее время занимает ведущее место разработки профессиональных программных средств. Ознакомление с его основами в школьном курсе информатики представляется вполне возможным и полезным для тех учащихся, которые ориентируются на профессии, связанные с разработкой компьютерных программ.

В ходе изучения данного курса будут решены три круга задач:

·освоение методологии ООП;

·овладение техникой ООП на языке Delphi;

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

При этом немаловажную роль играет выбор языка программирования. Быстро растущая популярность визуального программирования (которое не тождественно классическому объектному, но связано с ним многими общими идеями) в системах программирования типа Delphi, делает привлекательной идею положить в основу курса. На этот счёт в педагогической литературе высказываются различные точки зрения.

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

Другая, в значительной мере противоположная точка зрения связана с ориентацией в первую очередь на систему программирования Delphi.

Delphi является системой объектного программирования, созданной на базе Паскаля; по оценке специалистов, её профессиональный уровень очень высок.Многострочный редактор Свойства, методы, события. Delphi

Встроенный отладчик (Debugger)

Облегчает поиск и устранение ошибок в приложениях.

Средства отладчика доступны:

- с помощью команд пункта меню Run (Выполнение);

- и подменю View / Debug Windows (Просмотр/Окна отладки).

Действия отладчика:

- выполнение до указанного оператора (строки кода),

- пошаговое выполнение приложения,

- выполнение до точки останова,

- включение и выключение точек останова,

- просмотр значений объектов, в окне просмотра,

- установка значений объектов при выполнении приложения.

Установка параметров отладчика выполняется с помощью команды Tools / Debugger Options (Параметры отладчика).





Список литературы

1.Лапчик М.П. и др. Методика преподавания информатики: Учеб. пособие для студ. пед. вузов / М.П. Лапчик, И.Г. Семакин, Е.К. Хеннер; Под общей ред. М.П. Лапчика. - М.: Издательский центр "Академия", 2001. - 624 с.

2. Семакин И.Н., Шестаков А.П. Основы программирования: Учебник. - М.: Мастерство; НМЦ СПО; Высшая школа, 2001. - 432 с.

3. Угринович Н. Д. Информатика и информационные технологии. Учебник для 10 - 11 классов / Н. Д. Угринович. - 2-е изд. - М.: БИНОМ. Лаборатория знаний, 2005. - 511 с.: ил.

4. Могилев А.В., Пак Н.И., Хеннер Е.К. Информатика: Учеб. Пособие для студ. пед. вузов / Под ред. Е.К. Хеннера. - М.:Изд. центр "Академия", 1999.

5. Сборник задач по программированию / Авт.-сост. А.П. Шестаков. - Пермь: Перм. ун-т, 1999.

6. Бобровский С. Delphi 7. Учебный курс. Информ-Пресс; Питер, 2003.









© 2010-2022