Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Разработать модель хранения данных и необходимое количество классов (http://forum.oszone.net/showthread.php?t=252404)

sl1mus 26-01-2013 20:16 2075623

Разработать модель хранения данных и необходимое количество классов
 
Доброго времени суток, Уважаемые Форумчане!
Прошу помощи у Специалистов (каковым сам не являюсь) в изменении кода программы, для того чтобы она не походила на плагиат,и в тоже время продолжала функционировать.
читать дальше »
То,что я балбес я знаю!Просто экзамен уже на носу!

Заранее благодарен! Надеюсь на Ваше понимание!
Код:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, ComCtrls, StdCtrls, ComplPK, Mask, ExtCtrls;

type
  TForm1 = class(TForm)
    TreeView1: TTreeView;
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Panel1: TPanel;
    RadioGroup1: TRadioGroup;
    Edit1: TEdit;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Edit2: TEdit;
    Edit3: TEdit;
    Button5: TButton;
    procedure FormActivate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure TreeView1Change(Sender: TObject; Node: TTreeNode);
    procedure Button2Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
  private
    { Private declarations }
    Input: boolean;
    SelectedNode: TTreeNode;
    SelectedNodeIndex: integer;
    ArrayIndex: integer;
    ComplArray: array of TComplPK;
    TreeNodes: array [1..4] of TTreeNode;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormActivate(Sender: TObject);
var
  i0: 0..4;
begin
  Input:=False;
  Panel1.Hide;
  Button3.Enabled:=False;
  Button4.Enabled:=False;
  ArrayIndex:=0;
  TreeView1.Items.GetFirstNode.Expand(True);
  for i0:=1 to 4 do
    TreeNodes[i0]:=TreeView1.Items.Item[i0];
end;

// Процедура нажатия кнопки "Ввод данных"
procedure TForm1.Button1Click(Sender: TObject);
begin
  Panel1.Show;
  Button1.Enabled:=False;
  Button2.Enabled:=False;
  Button5.Enabled:=False;
  Button3.Enabled:=True;
  Button4.Enabled:=True;
  Input:=True;
end;

// Процедура нажатия кнопки "Сохранить"
procedure TForm1.Button3Click(Sender: TObject);
var
  Item: 0..4;
  Index: integer;
begin
  Item:=1;
  if Input then      // Вводим новые данные
    begin
      Index:=ArrayIndex;
      SetLength(ComplArray,ArrayIndex+1);
      ComplArray[ArrayIndex]:=TComplPK.Create;
    end
  else              // Редактируем уже имеющиеся данные
    Index:=SelectedNodeIndex;
  case RadioGroup1.ItemIndex of
    0: ComplArray[Index].TypeName:=tcProc;
    1: begin
        ComplArray[Index].TypeName:=tcMem;
        Item:=2;
      end;
    2: begin
        ComplArray[Index].TypeName:=tcDisc;
        Item:=3;
      end;
    3: begin
        ComplArray[Index].TypeName:=tcMon;
        Item:=4;
      end;
  end;
  ComplArray[Index].ModelName:=Edit1.Text;
  try
    begin
      ComplArray[Index].ComplCost:=StrToFloat(Trim(Edit2.Text));
      ComplArray[Index].ComplCol:=StrToInt(Trim(Edit3.Text));
    end;
  except
    ShowMessage('Неправильно ввели цену или количество!');
    ComplArray[Index].Free;
    EXIT;
  end;
  if Input then  // Вводим новые данные
    ArrayIndex:=ArrayIndex+1
  else            // Редактируем старые данные
    SelectedNode.Delete;
  TreeView1.Items.AddChild(TreeNodes[Item],Edit1.Text);
  // Дерево всегда развернуто
  TreeView1.Items.GetFirstNode.Expand(True);
  TreeView1Change(Sender,SelectedNode);
  // Скрываем панель ввода
  Panel1.Hide;
  Button1.Enabled:=True;
  Button2.Enabled:=True;
  Button5.Enabled:=True;
  Button3.Enabled:=False;
  Button4.Enabled:=False;
end;

// Процедура нажатия кнопки "Отменить"
procedure TForm1.Button4Click(Sender: TObject);
begin
  Panel1.Hide;
  Button1.Enabled:=True;
  Button2.Enabled:=True;
  Button5.Enabled:=True;
  Button3.Enabled:=False;
  Button4.Enabled:=False;
end;

// Редактирование характеристик элементов
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
var
  i0: integer;
begin
  SelectedNode:=Node;
  Label1.Caption:='Тип: ';
  Label2.Caption:='Модель: ';
  Label3.Caption:='Цена: ';
  Label4.Caption:='Количество: ';
  for i0:=0 to ArrayIndex-1 do
    if ComplArray[i0].ModelName=Node.Text then
      begin
        Label1.Caption:='Тип: '+Node.Parent.Text;
        Label2.Caption:='Модель: '+Node.Text;
        Label3.Caption:='Цена: '+FloatToStr(ComplArray[i0].ComplCost)+' руб.';
        Label4.Caption:='Количество: '+IntToStr(ComplArray[i0].ComplCol);
      end;
end;

// Процедура нажатия кнопки "Удалить"
procedure TForm1.Button2Click(Sender: TObject);
var
  i0, j0: integer;
begin
  if MessageDlg('Удалить объект?',mtWarning,mbOKCancel,0)=1 then
    // Нахождение и удаление объекта
    for i0:=0 to ArrayIndex-1 do
      if ComplArray[i0].ModelName=SelectedNode.Text then
        begin
          SelectedNode.Delete;
          ComplArray[i0].Free;
          for j0:=i0 to ArrayIndex-2 do
            ComplArray[j0]:=ComplArray[j0+1];
          ComplArray:=Copy(ComplArray,0,ArrayIndex-1);
          ArrayIndex:=ArrayIndex-1;
          BREAK;
        end;
end;

// Процедура нажатия кнопки "Редактировать"
procedure TForm1.Button5Click(Sender: TObject);
var
  i0: integer;
begin
  for i0:=0 to ArrayIndex-1 do
    if ComplArray[i0].ModelName=SelectedNode.Text then
      begin
        SelectedNodeIndex:=i0;
        Button1Click(Sender);
        case ComplArray[i0].TypeName of
          tcProc: RadioGroup1.ItemIndex:=0;
          tcMem: RadioGroup1.ItemIndex:=1;
          tcDisc: RadioGroup1.ItemIndex:=2;
          tcMon: RadioGroup1.ItemIndex:=3;
        end;
        Edit1.Text:=ComplArray[i0].ModelName;
        Edit2.Text:=FloatToStr(ComplArray[i0].ComplCost);
        Edit3.Text:=IntToStr(ComplArray[i0].ComplCol);
      end;
  Input:=False;
end;

end.


BlackEric 27-01-2013 20:20 2076323

Код:

var  i0: 0..4;
Оно вообще компилируется?


Время: 19:32.

Время: 19:32.
© OSzone.net 2001-