Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



Свойства и методы класса 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.

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

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

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

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

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

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

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

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]:= 'аргумент Х';.

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





Дата публикования: 2014-12-08; Прочитано: 185 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.014 с)...