- •Задание.............................................................................................................................9
- •Задание............................................................................................................................11
- •2. Тема: Объектно-ориентированное программирование. Разработка класса – наследника стандартного класса Delphi
- •2.1 Задание
- •2.2 Описание одного из стандартных классов Delphi tCheckBox
- •2.3 Текст программы
- •3.3 Таблицы каскадных стилей
- •3.4 Программа работы с xml - документом
- •4. Тема: Объектно-ориентированное программирование. Разработка базового и производных классов. Обработка исключительных ситуаций. Запись экземпляров классов в документ xml
- •4.1 Задание
- •4.2 Описание иерархии и содержимого классов
- •4.3 Текст программы
- •4.4 Пример работы программы
- •4.5 Исходный файл и файл результатов
3.3 Таблицы каскадных стилей
Таблицы стилей приведены в листинге 3.2 и 3.3
Листинг 3.2. style.css
|
name {margin-top:5px; font-size:16pt; font-weight: bold; color: red; text-decoration:underline} date {margin-left:5px; font-style:italic; font-size:12pt} studq {font-weight:italic; margin-left:5px; color:green; font-size: 12pt} specq {font-weight: bold; font-size:12pt; margin-left:5px; } univ {display:block; margin-top:10px; } |
Листинг 3.3. stylo.css
|
/* File Name: stylo.css */ name { display:block; margin-top:12pt; font-size:12pt; color:blue;} date {margin-left:5px; font-style:italic} studq {margin-left:5px; font-weight:italic;} specq { margin-left:10pt; font-weight: bold } |
3.4 Программа работы с xml - документом
Для добавления и просмотра элементов создана программа. Ее вид представлен на рисунке 3.2, а исходный код в листинге 3.4.
Рисунок 3.2 Результат выполнения программы
Листинг 3.4. Исходный текст программы
|
unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, xmldom, XMLIntf, msxmldom, XMLDoc, Grids;
type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Button1: TButton; Button2: TButton; Button3: TButton; XMLDocument1: TXMLDocument; StringGrid1: TStringGrid; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); var Node : IXMLNode; begin XMLDocument1.DocumentElement.AddChild('univ',XMLDocument1.DocumentElement.ChildNodes.Count); Node:=XmlDocument1.DocumentElement.ChildNodes[XMLDocument1.DocumentElement.ChildNodes.Count-1]; Node.ChildNodes['name'].Text:=Edit1.Text; Node.ChildNodes['date'].Text:=Edit2.Text; Node.ChildNodes['studq'].Text:=Edit3.Text; Node.ChildNodes['specq'].Text:=Edit4.Text; XMLDocument1.SaveToFile(XMLDocument1.FileName); end;
procedure TForm1.Button2Click(Sender: TObject); var i,j:integer; begin StringGrid1.Cells[0,0]:='Название'; StringGrid1.Cells[1,0]:='Дата'; StringGrid1.Cells[2,0]:='Студентов'; StringGrid1.Cells[3,0]:='Специальностей'; StringGrid1.RowCount:=Xmldocument1.DocumentElement.ChildNodes.Count; StringGrid1.ColCount:=XMLDocument1.DocumentElement.ChildNodes['univ'].ChildNodes.Count; for i:=0 to XMLDocument1.DocumentElement.ChildNodes.Count-1 do for j:=0 to XMLDocument1.DocumentElement.ChildNodes[1].ChildNodes.Count-1 do StringGrid1.Cells[j,i]:=XMLDocument1.DocumentElement.ChildNodes[i].ChildNodes[j].Text; end;
procedure TForm1.Button3Click(Sender: TObject); begin Form1.Close; end;
end. |