МОУ СОШ №3 г. Осташков Тверская обл.
  
 
 
 
 

Мини-проекты в Delphi

Проект "Расписание уроков"

Класс TStringGrid . Таблица строк — компонент StringGrid.
Он представляет собой таблицу, содержащую строки. Данные таблицы могут быть только для чтения или редактируемыми. Таблица может иметь полосы прокрутки, причем заданное число первых строк и столбцов может быть фиксированным и не прокручиваться. Таким образом, можно задать заголовки столбцов и строк, постоянно присутствующие в окне компонента.
Основные свойства компонента, определяющие отображаемый текст:


Cells[ACol, ARow: Integer]: string

Строка, содержащаяся в ячейке с индексами столбца и строки ACol и ARow.

Cols[Index: Integer]: TStrings

Список строк, содержащихся в столбце с индексом Index.

Rows[Index: Integer]: TStrings

Список строк, содержащихся в строке с индексом Index.

Свойство Options является множеством, определяющим многие свойства таблицы.
Создадим проект, использующий основные свойства таблицы. Разместим на форме StringGrid. Зададим свойство Align – alClient. Раскроем  Options и установим  goEditing – true, т. е. возможность редактирования ячеек. Установим размер таблицы: ColCount – 7, RowCount-8, ширину ячеек DefaultRowWidth-100.  Заменим FixedCols на 0 и с помощью мыши уменьшим ширину первого столбца так, чтобы она была примерно равна высоте ячеек. Восстановим FixedCol=1. Осталось подогнать размер формы. Для нее установим BorderIcons.biMaximize  в false.
В разделе implementation объявим переменные:
var
GridEdit:boolean;
const day:array[1..6] of string= ('Понедельник','Вторник','Среда','Четверг,'Пятница','Суббота');
Первая служит для определения было ли редактирование расписания, Вторая массив дней недели.
Создаем процедуру для загрузки формы. В не добавляем описание переменных f- текстовый файл, st-текстовая строка, служит для хранения строки, прочитанной из файла.
procedure TForm1.FormCreate(Sender: TObject);
var i,j:byte;
f:TextFile;
st:string;


После Begin записываем оператор цикла, нумерующий строки
for i := 1 to 7 do
StringGrid1.Cells[0,i]:= IntToStr(i);
и записывающий название дней недели в заголовки таблицы
for i := 1 to 6 do
StringGrid1.Cells[i,0]:=day[i];
Устанавливаем значение
GridEdit:=false;
После проверки наличия файла связываем переменную f с именем файла grid.sav', в котором будет храниться расписание, reset (f) откраивает файл для чтения, вложенный цикл читает построчно из файла в переменную st, а затем заносит их в таблицу. После чтения данный файл закрывается оператором CloseFile (f).

Для того, чтобы узнать, было ли редактирование создаем процедуру

procedure TForm1.StringGrid1KeyPress(Sender:  TObject; var Key: Char);
begin
    GridEdit:=true;
end; 

Для этого в инспекторе объектов для StringGrid1 находим событие onKeyPress. Сохранение расписания (при наличии изменений) будет происходить при закрытии формы. В инспекторе объектов для Form1 находим событие onClose.
Данная процедура бут выглядеть так:

В ней rewrite (f) открывает файл для записи, при этом существующий файл будет переписан.
WriteLn (f, StringGrid1.Cells[i,j])-записывает данные из ячеек в файл.
Можно дополнить проект раскраской по столбцам или строкам, используя для этого событие onDrawCell.

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 
О мини-проектах
Неуловимая кнопка
Вещий камень
Перетаскивание фигур
Секундомер
Градусы-радианы
Мультик
Падение тела
Прозрачная форма
Регионы
Шарик за мышкой
Таймер
Расписание уроков
Записная книжка
Задача по физике
Определение зачеркнутой цифры
Использование Microsoft Agent в Delphi
 Арифметика
 
 
 
 
 
 
 
 
 
 
 
 
 
 
             
Hosted by uCoz