КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Свойства компонента StringGrid
Свойства и методы класса 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. Об этом следует помнить при написании подобных процедур доступа, иначе можно выйти за доступный предел массива, что вызовет ошибку в программе. Clear (Очистка) – удаляет содержимое компонента, например,
Memo1.Lines.Clear.
Add (добавление) - добавляет строку, например,
Insert(n,St) вставляет строку Stна место строки номер n, где St– строковая константа или переменная, например,
Delete(n) Удаление строки номер n, например,
При применении процедуры удаления строк Delete помните, что сначала нужно проверять компонент TMemo на наличие строк вообще. Проверку можно осуществлять с помощью функции Count, которая возвращает количество строк. Memo1.SelStart:=0; // установить начальное положение выделения Если необходимо всегда видеть выделенный текст, даже при переходе управления на другой элемент управления, то задайте свойству HideSelection значение false. Memo1.ClearSelection; // удалить выделенный текст Отмена последнего изменения - процедура 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]:= 'аргумент Х';. Так как ячейки таблицы имеют строковый тип, то числа предварительно надо преобразовывать в символьную форму. Кроме типичных свойств (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.
Дата добавления: 2014-01-04; Просмотров: 1153; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |