рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Компонент Memo обладает рядом типичных для визуальных компонентов свойств

Компонент Memo обладает рядом типичных для визуальных компонентов свойств - раздел Информатика, Лекция № 25 Компонент Memo (Класс Tmemo)....

Лекция № 25

Компонент Memo (класс TMemo).

Пиктограмма: .

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

Компонент Memo является окном редактирования многострочного текста. Оно так же, как и окно Edit, снабжено многими функциями, свойственными большинству редакторов. Как и в компоненте Edit, в нем предусмотрены типичные комбинации «горячих» клавиш для копирования, вырезания, вставки выделенных фрагментов текста.

Компонент Memo обладает рядом типичных для визуальных компонентов свойств.

Aligenment - текст в редакторе можно выравнивать по левому, правому краям и по центру.

WordWrap -отвечает за поведение редактора при достижении правой границы компонента во время набора текста. Если свойство равно True, то при этом происходит переход на новую строку. В случае False при достижении правой границы происходит горизонтальная прокрутка текста, и пользователь может продолжать набор. На новую строку можно перейти, нажав клавишу Enter.

Компонент Memo обладает также свойствами Font, ReadOnly, Height, Width, Left, Top.Смысл этих свойств такой же, как и у компонента Edit.

В отличие от компонента Edit компонент Memo может содержать несколько строк, которые задаются либо свойством Text, либо свойством Lines. Свойство Text используется для доступа ко всему содержимому компонента Memo. Например,для занесения символов в компонент, можно включить в цикл такой оператор присваивания:

 

Memo1.Text := Memo1.Text + S;

 

где S - строковая переменная. Свойство Lines используется для построчного доступа.

Свойство Lines в свою очередь является объектом класса TStrings, поэтому при работе с объектом Memo можно использовать методы доступные в классе TStrings.

TStrings – это многофункциональный абстрактный класс, предназначенный для работы с текстовми строками и связанными с ними объектами (любых потомков TObject). Он только описывает методы работы с наборами строк и сопутствующих им объектов, но как именно они хранятся, на его уровне не определено. Его потомки очень многочисленны; они играют основную роль в компонентах-списках (TListBox, TComboBox), редакторе (TMemo) и других компонентах. Обычно приходится иметь дело с TStrings как со свойством компонента. Часто экземпляры этого класса и порожденных от него классов называют наборами строк.

 

5.12.6. Свойства и методы класса Tstrings.

 

LoadFromFile('путь') –(загрузить из файла), где 'путь' – это путь к файлу.

Например, для загрузки файла c:My.txtв компонент Memo1 достаточно в соответствующий обработчик события включить инструкцию:

 

Memo1.Lines.LoadFromFile('c:My.txt');

 

Количество строк в компоненте можно узнать через свойство Count:

Memo1.Lines.Count,

 

Доступ к отдельной строке можно получить с помощью метода Strings[n] (класс Tstrings), где n– номер строки (нумерация начинается с 0). Например:

ShowMessage(Memo1.Lines.Strings[0]); // Показывает в диалоговом окне первую строку текста.

Фактически Strings - это массив строк, начинающихся со строки номер 0 и заканчивающийся строкой номер Count-1. Об этом следует помнить при написании подобных процедур доступа, иначе можно выйти за доступный предел массива, что вызовет ошибку в программе.
Для поочередного просмотра строк из компонента Memo1 можно использовать следующий обработчик.
procedure TForm1.Button1Click(Sender: TObject);
Var i:Integer; // объявление целочисленной переменной
begin
if Memo1.Lines.Count<>0 then // проверка ненулевого количества строк
for i:=0 to Memo1.Lines.Count-1 do // задается цикл, равный кол-ву строк
ShowMessage(Memo1.Lines.Strings[i]); // вывод строк в сообщение
end;

Clear (Очистка) – удаляет содержимое компонента , например,

 

Memo1.Lines.Clear.

 

Add(добавление) - добавляет строку, например,


Memo1.Lines.Add(St); где St– строковая константа или переменная.

Insert(n,St) вставляет строку Stна место строки номер n, где St– строковая константа или переменная, например,


Memo1.Lines.Insert(0,'вставляемая строка');

 

Delete(n) Удаление строки номер n, например,


Memo1.Lines.Delete(0); // удаляет первую строку

При применении процедуры удаления строк Delete помните, что сначала нужно проверять компонент TMemo на наличие строк вообще. Проверку можно осуществлять с помощью функции Count, которая возвращает количество строк.
Работа с выделенным текстом программно аналогична работе пользователя вручную. Если пользователь выберет процедуру вырезания выделенного текста в буфер или его удаление, то он пропадет. Выделение текста производится с помощью двух процедур.

Memo1.SelStart:=0; // установить начальное положение выделения
Memo1.SelLength:=15; // установить длину выделенного текста

Если необходимо всегда видеть выделенный текст, даже при переходе управления на другой элемент управления, то задайте свойству HideSelection значение false.
Работа с выделенным фрагментом текста

Memo1.ClearSelection; // удалить выделенный текст
Memo1.CutToClipboard; // вырезать в буфер обмена
Memo1.CopyToClipboard; // скопировать в буфер обмена
Memo1.PasteFromClipboard; // вставить из буфера обмена
Memo1.SelText; // эта функция возвращает текстовую строку выделенного текста

Отмена последнего изменения - процедура Memo1.Undo.

 

Замечание.Компонент Memo можно использовать для отображения на экране массива чисел. Если заносить в Memo числа с помощью оператора

Memo1.Text := Memo1.Text + S;

то при формировании таблицы надо точно устанавливать ширину поля (свойство Width). Если же использовать добавление строк (метод Add), например так

 

Form1.Memo1.Lines.Add(Sx + ' ' + Sy);

где Sx и Sy – символьные представления чисел,

то ширина поля не играет роли - каждая строка в данном случае будет содержать по два числа.

 

Пример:вывод массивов чисел в Memo.

Пусть необходимо рассчитать таблицу значений функции (например у=х*х). В качестве исходных данных будем задавать значения Xn, Dx и N - начальное значение аргумента, шаг и количество значений функции соответственно. Значения аргумента и функции будем заносить в массивы ХА и У соответственно. Выберем размер массивов равным 50 элементов. Вывод массивов будем делать в компонент Memo.

Таким образом форма должна содержать компонент Memo, поля Edit для ввода значений Xn, Dx, N и две кнопки: "Таблица" и "Закрыть". При щелчке на кнопке "Таблица" вычисляется массив значений функции У = Х * Х и выводится таблица ( значения Х и У ) в компонент Memo. При щелчке на кнопке "Закрыть" приложение закрывается. Проект формы показан на рис.5.25.1.

 

Рис.5.25.1.

 

Порядок создания.

1. Щелкнем по пиктограмме Memo и нарисуем прямоугольник в форме.

2. В инспекторе объектов откроем свойство Lines компонента Memo и удалим имеющийся там текст (его можно удалить и с помощью метода Clear).

3. Чтобы выводить таблицу из двух столбцов установим ширину компонента Memo равной 220 пикселей. Пусть таблица может содержать до 50 строк, то есть не помещается в поле компонента Memo. В этом случае надо предусмотреть полосу прокрутки по вертикали. Для этого установим для свойства ScrollBar значение ssVertical.

4. Создадим как и ранее кнопку с надписью " Таблица" (для расчета таблицы значений функции) и кнопку с надписью "Закрыть" (для эакрытия приложения).

В модуль формы добавим:

а) в раздел описания переменных

X,Xn,dX:Extended;

XА,Y : array [1..50] of Extended;

s1,s2 : String;

б) в обработчик кнопки "Таблица" добавим:

procedure TForm1.Button1Click(Sender: TObject);

Var

k:Integer;

begin

X:=StrToFloat(Edit1.Text); {Ввод исходных данных}

dx:=StrToFloat(Edit2.Text);

N:=StrToInt(Edit3.Text);

For k:=1 To N Do Begin {расчет массивов}

Y[k]:=X*X;

XА[k]:=X;

X:=X+dx;

end;

For k:=1 To 50 Do Begin {переход к символьному

представлению и построчная запись в Memo1}

Str(XА[k]:14,s1);

Str(Y[k]:14,s2);

Form1.memo1.Lines.Add(s1+' '+s2);

В результате полный текст модуля формы этого примера будет иметь вид.

unit Unimem;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls;

type

TForm1 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Memo1: TMemo;

Button1: TButton;

Button2: TButton;

Label4: TLabel;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

X,Xn,dx:Extended;

N:Integer;

XA,Y:array [1..50] of Extended;

S1, S2:String;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

Var K:Integer;

begin

X:=StrToFloat(Edit1.Text);

dx:=StrToFloat(Edit2.Text);

N:=StrToInt(Edit3.Text);

For k:=1 To N Do Begin {расчет массивов}

Y[k]:=X*X;

XA[k]:=X;

x:=x+dx;

end;

For k:=1 To N Do Begin {переход к символьному

представлению и построчная запись в Memo1}

Str(XA[k]:14,s1);

Str(Y[k]:14,s2);

Form1.memo1.Lines.Add(s1+' '+s2);

end;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Close;

end;

end.

5.12.7. Компонент StringGrid

Пиктограмма : .

Страница Палитры компонентов Additional. Этот компонент предназначен для организации представления информации в виде таблицы. Компонент StringGrid берет на себя разбивку области на прямоугольные ячейки, добавление и удаление строк и столбцов, прокрутку, управление вводом данных и обработку всех поступающих сообщений.

Общий вид компонента приведен на рис.5.25.2.

 

Рис.5.25.2.

 

Таблица состоит из двух областей — фиксированной и подвижной. Фиксированную область (выделено на рис.5.25.2 серым цветом) обычно составляют верхняя строка и левый столбец. Ячейки этой области можно использовать, например, для вертикальных и горизонтальных заголовков. Они выделяются другим цветом и всегда видимы. Их нельзя сфокусировать и выделить. Кроме того, изменять ширину и высоту ячеек таблицы мышью во время проектирования можно только передвигая границы ячеек в фиксированной области. По умолчанию для этой области отведены один столбец и одна строка, но эти числа могут быть изменены. Все остальные ячейки перемещаются при прокрутке таблицы и составляют подвижную область.

Каждый элемент таблицы (включая и неподвижную область) определяется двумя индексами: первый индекс указывает номер столбца, а второй индекс - номер строки (это прямо противоположно общепринятой в математике нумерации элементов двумерного массива). Нумерация столбцов и строк начинается с нуля (рис.5.25.2).

Содержимое каждого элемента таблицы задается свойством Cells. Обращение к отдельному элементу таблицы осуществляется так же, как и в случае массива, например

StringGrid1.Cells[1,0] := 'аргумент Х'; .

Так как ячейки таблицы имеют строковый тип, то числа предварительно надо преобразовывать в символьную форму.

Свойства компонента StringGrid.

Кроме типичных свойств (Color, Name, Width и т.п.) имеется ряд полезных свойств, которые часто используются при создании таблиц:

RowCount - количество строк;

ColCount - количество столбцов;

DefaultColWidth - ширина колонки;

DefaultRowHeight - высота строки и др.

Для доступа к ячейкам таблицы со стороны клавиатуры надо в свойстве Option установить значение подсвойства GoEditing равным True.

Свойство Options является множеством, определяющим многие свойства таблицы: наличие разделительных вертикальных и горизонтальных линий в фиксированных (goFixedVertLine и goFixedHorzLine) и не фиксированных (goVertLine и goHorzLine) ячейках, возможность для пользователя изменять с помощью мыши размеры столбцов и строк (goColSizing и goRowSizing), перемещать столбцы и строки (goColMoving и goRowMoving) и многое другое.

Свойство ScrollBars определяет наличие в таблице полос прокрутки. Причем полосы прокрутки появляются и исчезают автоматически в зависимости от того, помещается таблица в соответствующий размер, или нет.

Пример: Вывод таблицы чисел.

Создадим проект расчета таблицы значений функции аналогичный предыдущему примеру с компонентом Memo, но для представления резульратов будем использовать компонент StringGrid. Вид формы этого проекта приведен на рис.5.25.3.

 

Рис.5.25.3.

Первый фиксированный столбец будем использовати для вывода номера строки таблицы (переменная К).

Порядок создания проекта.

1. Откроем новый проект : File / New Applicanion.

2. Перейдем на страницу Additional палитры компонентов, щелкнем по птктограмме (StringGrid) и нарисуем в форме прямоугольник. Появится таблица содержащая по умолчанию 5 строк и 5 столбцов.

3. Установим значение свойства RowCount (количество строк) равным 50, а значение свойства ColCount равным трем. Снимем выделение - на экране будет таблица из трех столбцов.

4. Выделим таблицу и установим значение свойства DefaultColWidth (ширина столбцов) равным 120.

5. Создадим кнопку "Таблица" как и в предыдущем примере.

6. Двойной щелчек по кнопке - появится модуль формы. Добавим в модуль формы необходимый текст, в результате получим:

-----------------------------------------------

unit UniGrid;

{компонент StringGrid, пример таблица значений функции }

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, Grids;

 

type

TForm1 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Button1: TButton;

Button2: TButton;

Label4: TLabel;

StringGrid1: TStringGrid;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form1: TForm1;

X,Xn,dx:Extended;

N:Integer;

XA,Y:array [1..50] of Extended;

S1,S2,S3:String;

implementation

 

{$R *.DFM}

 

procedure TForm1.Button1Click(Sender: TObject);

Var K:Integer;

begin

X:=StrToFloat(Edit1.Text);

dx:=StrToFloat(Edit2.Text);

N:=StrToInt(Edit3.Text);

For k:=1 To N Do Begin {расчет массивов}

Y[k]:=X*X;

XA[k]:=X;

x:=x+dx;

end;

StringGrid1.Cells[1,0]:='X'; {заголовки столбцов}

StringGrid1.Cells[2,0]:='Y';

For k:=1 To N Do Begin

{преобразование чисел в строковое представление}

Str(XA[k]:14,s1);

Str(Y[k]:14,s2);

S3:=IntToStr(k);

StringGrid1.Cells[0,k]:= s3; {запись в таблицу}

StringGrid1.Cells[1,k]:= s1;

StringGrid1.Cells[2,k]:=s2;

end;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Close;

end;

end.

– Конец работы –

Используемые теги: компонент, Memo, обладает, рядом, типичных, визуальных, компонентов, свойств0.111

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Компонент Memo обладает рядом типичных для визуальных компонентов свойств

Что будем делать с полученным материалом:

Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Еще рефераты, курсовые, дипломные работы на эту тему:

Тип ячейки определяет строение и свойства кристалла в целом, а свойства каждого из этих кристаллов определяет свойства всего кристалла в целом
Кристаллическое строение металлов... Металлы Ме являются поликристаллическими веществами т е они состоят из... Кристаллическое состояние твердое состояние вещества...

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

Свойства портландцемента. Основные свойства строительных материалов
Производство портландцемента состоит из следующих основных технологических процессов: добычи известняка, глины или мергеля; измельчения сырьевых… Обжиг до спекания подготовленного сырья сопровождается сложными физическими… После обжига полученный клинкер направляют в специальные холодильники для быстрого охлаждения материала.С увеличением…

Дать содержательную интерпретацию первых двух главных компонент, используя вращение осей координат главных компонент
На сайте allrefs.net читайте: 8.дать содержательную интерпретацию первых двух главных компонент, используя вращение осей координат главных компонент;...

СРАВНИТЕЛЬНЫЙ АНАЛИЗ МСФО 11 «ДОГОВОРЫ ПОДРЯДА» С ПБУ 2/08 «УЧЕТ ДОГОВОРОВ СТРОИТЕЛЬНОГО ПОДРЯДА»
Этот процесс предопределяет необходимость переосмысления критериев формирования учетной и отчетной информации, более четкого определения элементов… Данная тема актуальна и потому, что в период функционирования … Помимо, осмысления и внедрения в российскую практику провозглашенных в МСФО принципов учета и отчетности, для…

Пасивні компоненти. Резистори. Конденсатори. Індуктивні компоненти
Перелік скорочень Вступ Пасивні компоненти... ПЕРЕЛІК СКОРОЧЕНЬ...

ДИСПЕРСНЫЕ СИСТЕМЫ: ОСНОВНЫЕ СВОЙСТВА И КЛАССИФИКАЦИЯ. Поверхностные явления. Адсорбция. Электрические свойства дисперсных систем. Электрокинетические явления. Устойчивость и нарушение устойчивости лиофобных золей
ФГБОу впо ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНЖЕНЕРНЫХ ТЕХНОЛОГИЙ... Кафедра физической и аналитической химии...

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

Строение и свойства компонентов, фаз и структурных составляющих железоуглеродистых сплавов
Д.К. Чернов дал первое представление о диаграмме Fe – C. 2. Компоненты железоуглеродистых сплавов Железо (Fe): №26 (Периодическая система элементов… Рисунок 1. Связь свободной энергии с типом кристаллической решетки железа -Fe… Зерна -Fe имеют ограненные края с наличием двойников: = 8,0–8,1 г/см3 I полиморфное превращение) обозначается…

Важнейшие соединения бора, алюминия иах физико-химические свойства. КО и ОВ свойства. Борная кислота. Кристаллогидрат тетраборатанатрия /бура
Содержание темы и учебно целевые вопросы... Общая характеристика р элементов Неметаллы амфотерные элементы Изменение... Элементы III А группы и IV А группы Общая характеристика групп...

0.031
Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • По категориям
  • По работам