Работа в дельфи

Автор работы: Пользователь скрыл имя, 28 Мая 2012 в 01:46, курсовая работа

Краткое описание

Delphi — результат развития языка Турбо Паскаль, который, в свою очередь, развился из языка Паскаль. Паскаль был полностью процедурным языком, Турбо Паскаль, начиная с версии 5.5, добавил в Паскаль объектно-ориентированные свойства, а в Object Pascal — динамическую идентификацию типа данных с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемом интроспекцией — данная технология получила обозначение RTTI. Так как все классы наследуют функции базового класса TObject, то любой указатель на объект можно преобразовать к нему, после чего воспользоваться методом ClassType и функцией TypeInfo, которые и обеспечат интроспекци

Содержание

ВВЕДЕНИЕ 4

1 ТЕОРЕТИЧЕСКАЯ ЧАСТЬ 6

1.1 Обзор программных средств 6

1.2 Постановка задачи 8

1.3 Алгоритм решения задачи 8

1.4 Блок-схема алгоритма решения задачи 9

2 ПРАКТИЧЕСКАЯ ЧАСТЬ 11

2.1 Решение поставленной задачи в Delphi 11

2.2 Описание интерфейса среды Delphi 11

2.3 Перечень используемых в программе идентификаторов 13

2.4 Тексты основных модулей и вид форм приложения 14

2.5 Графическое представление результатов 18

2.6 Анализ полученных результатов 19

ЗАКЛЮЧЕНИЕ 20

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ 21

Вложенные файлы: 1 файл

VVEDENIE (1).docx

— 507.88 Кб (Скачать файл)

end;

procedure TForm1.Button1Click(Sender: TObject);

type Ttovar = record

name:string[15];

kolich:integer;

ves:real; end;

var all:array[1..50] of Ttovar;

    temp: Ttovar;

    imax,i, j, m :integer;

    polki, yacheiki, p_temp, ya_temp:integer;

    tvr:bool;

begin

Memo1.Clear;

  imax:=SpinEdit1.Value;

  for i:=1 to imax do begin

     all[i].name:=StringGrid1.Cells[1,i];

     all[i].kolich:=strtoint(StringGrid1.Cells[2,i]);

     all[i].ves:=strtofloat(StringGrid1.Cells[3,i]);

  end;

   for i:=1 to imax do begin

                    m:=i;

                    for j:=i+1 to imax do

                      if all[j].ves>all[m].ves  then m:=j;

                      temp:=all[m]; all[m]:=all[i]; all[i]:=temp;

                    end;

  polki:=strtoint(Edit1.Text);

  yacheiki:=strtoint(Edit2.Text);

      p_temp:=1;

      m:=1;

      ya_temp:=all[m].kolich;

      tvr:=true;

  for i:=1 to polki do begin

  memo1.Lines.Add('   ');

  memo1.Lines.Add('---на '+inttostr(i)+'-ю  полку ----');

     for j:=1 to yacheiki do begin

                       if tvr then begin

                           memo1.Lines.Add(inttostr(j)+')  '+all[m].name);

                           ya_temp:=ya_temp-1;

                                    if  ya_temp=0 then begin m:=m+1;

                                        ya_temp:=all[m].kolich;

                                               if m>imax then tvr:=false

                                                         else tvr:=true;

                                                         end  end

                          else  memo1.Lines.Add(inttostr(j)+')'+'empty ');

end;

      end;

end;

procedure TForm1.Button2Click(Sender: TObject);

var NameSaveParFile:string;

begin

if SaveDialog1.Execute then

  NameSaveParFile:= SaveDialog1.FileName;

Memo1.Lines.SaveToFile(NameSaveParFile+'.txt');

Button3.Enabled:=true;

end;

procedure TForm1.Button3Click(Sender: TObject);

var i:integer;

Prn:TextFile;

begin

if PrintDialog1.Execute then begin

Printer.Copies:=PrintDialog1.Copies;

Printer.Canvas.Font.Name:='Times New Roman';

Printer.Canvas.Font.Size:=14;

AssignPrn(Prn);

try

Rewrite(Prn);

try

for i := 0 to Memo1.Lines.Count - 1 do

writeln(Prn,Memo1.Lines[i]);

with Canvas  do

TextOut((ClientWidth - TextWidth(Memo1.Lines[i])) div 2,

         (ClientHeight - TextHeight(Memo1.Lines[i])) div 2,Memo1.Lines[i]);

finally

CloseFile(Prn);

end;

except

on EInOutError do

MessageDlg('Ошибка печати текста.', mtError, [mbOk], 0);

end;

end;

end;

end.

 

 

Информация о работе Работа в дельфи