Таблица
Цель занятий: научиться отобразить табличные данные. Изучить основные возможности компонентов: StringGrid, UpDown.
Особенности изложения: для каждого занятия: вначале необходимо повторить теоретический материал предыдущего занятия (в форме опроса) (5 мин.) и объявить цели текущего занятия
На занятиях ученики выполняют практическое задание (Таблица). Нужно обратить внимание, что ширину столбцов таблицы можно задавать на этапе проектирования. Также не надо забывать включать режим редактирования таблицы (свойство goEditing). В противном случае, ячейки таблицы нельзя будет редактировать.
Так же, как и свойства Caption и Text, свойство таблицы Cells (и по совместительству двухмерный массив) является типом String, так что для отображения в нём числовых данных, либо их считывания, нужно использовать функции преобразования типов.
Обратить внимание, что для задания каких-либо начальных параметров программы, существует событие формы OnCreate.

Пояснения:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, Grids;
type
TForm1 = class(TForm)
GridOut: TStringGrid;
UpDown: TUpDown;
Bevel1: TBevel;
Bevel2: TBevel;
editRow: TEdit;
Label1: TLabel;
ButtonRND: TButton;
ButtonCalk: TButton;
ButtonExit: TButton;
procedure ButtonExitClick(Sender: TObject);
procedure ButtonCalkClick(Sender: TObject);
procedure ButtonRNDClick(Sender: TObject);
procedure UpDownClick(Sender: TObject; Button: TUDBtnType);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.ButtonCalkClick(Sender: TObject);
var V,f:Integer;
begin
(* -- Заполнение всех строк второго столбца таблицы результатом вычисления функции --*)
// Задаём цикл от 1 до количества строк
For f:=1 to GridOut.RowCount do
if GridOut.Cells[0,f]'' then begin
//Проверяем, пустая ли строка?
//Получаем числовое значение аргумента из ячейки с номером строки f
V:= StrToInt ( GridOut.Cells[0,f] );
// Помещаем результат во второй столбец, в ячейку с номером строки f
GridOut.Cells[1,f]:=IntToStr( Sqr( V ) )
End
Else
// Если да, то выводим сообщение об ошибке
GridOut.Cells[1,f]:='Ошибочка';
end;
procedure TForm1.ButtonExitClick(Sender: TObject);
begin
// задание числа строк
GridOut.RowCount := UpDown.Position+1;
Form1.Close;
end;
procedure TForm1.ButtonRNDClick(Sender: TObject);
var f:Integer;
begin
// -- Заполнение всех строк первого столбца таблицы случайными числами --
For f:=1 to GridOut.RowCount do
// Заполняем первый столбец случайными числами от -10 до 10
GridOut.Cells[0,f] := IntToStr(Random(21)-10);
(* Вызываем процедуру OnClick кнопки "Вычислить" для вычисления значений функции*)
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
// Задания заголовков в фиксированных областях таблицы
GridOut.Cells[0,0]:='x';
GridOut.Cells[1,0]:='y(x)=x^2';
// Активизация генератора случайных чисел
Randomize;
// Задание числа строк в однострочном редакторе (через счётчик)
UpDown.Position:=3;
// Задание числа строк в таблице через вызов событий OnClic на счётчике
UpDownClick(Sender, btNext);
end;
procedure TForm1.UpDownClick(Sender: TObject; Button: TUDBtnType);
begin
// Задание числа строк
GridOut.RowCount := UpDown.Position+1;
end;
end.