Delphi - Разработать модель хранения данных и необходимое количество классов

Ответить
Аватара пользователя
sl1mus

Delphi - Разработать модель хранения данных и необходимое количество классов

Сообщение sl1mus »

Доброго времени суток, Уважаемые Форумчане!

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


читать дальше »


То,что я балбес я знаю!Просто экзамен уже на носу!



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



Код:

Код: Выделить всё

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.
Ответить

Вернуться в «Программирование и базы данных»