Advertisement
MaksNew

Unit2

Sep 18th, 2021
763
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 3.27 KB | None | 0 0
  1. unit Unit2;
  2.  
  3. interface
  4.  
  5. uses
  6.   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  7.   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
  8.  
  9. type
  10.   TAddForm = class(TForm)
  11.     EditName: TEdit;
  12.     EditNumber: TEdit;
  13.     AddButton: TButton;
  14.     Label1: TLabel;
  15.     Label2: TLabel;
  16.     Label3: TLabel;
  17.     procedure AddButtonClick(Sender: TObject);
  18.   private
  19.     { Private declarations }
  20.   public
  21.     { Public declarations }
  22.   end;
  23.  
  24. var
  25.   AddForm: TAddForm;
  26.   RowCount: Integer;
  27.  
  28. implementation
  29. uses Unit1;
  30. {$R *.dfm}
  31.  
  32. function IsNameCorrect(Name: String): boolean;
  33. var
  34.   IsCorrect: Boolean;
  35.   I, buf: Integer;
  36. begin
  37.   IsCorrect := True;
  38.   I := 1;
  39.   if Name.Length = 0 then
  40.     IsCorrect := False;
  41.   while (I < Name.Length+1) and IsCorrect do
  42.   begin
  43.     buf := Ord(Name[1]);
  44.     if not(((Ord(Name[i]) < 91) and (Ord(Name[i]) > 64)) or ((Ord(Name[i]) < 123) and (Ord(Name[i]) > 96))) then
  45.       IsCorrect := False;
  46.     Inc(I);
  47.   end;
  48.   IsNameCorrect := IsCorrect;
  49. end;
  50.  
  51. function IsNumberCorrect(Number: String): boolean;
  52. var
  53.   IsCorrect: Boolean;
  54.   I: Integer;
  55. begin
  56.   IsCorrect := True;
  57.   I := 1;
  58.   if Number.Length = 0 then
  59.     IsCorrect := False;
  60.   while (I < Number.Length+1) and IsCorrect do
  61.   begin
  62.     try
  63.       StrToInt(Number[i]);
  64.     except
  65.       IsCorrect := False;
  66.     end;
  67.     Inc(I);
  68.   end;
  69.   IsNumberCorrect := IsCorrect;
  70. end;
  71.  
  72. procedure TAddForm.AddButtonClick(Sender: TObject);
  73. var
  74.   Current, Buf: PNode;
  75.   I: Integer;
  76. begin
  77.   if(IsNameCorrect(EditName.Text) and IsNumberCorrect(EditNumber.Text)) then
  78.   begin
  79.     Inc(RowCount);
  80.     if(Head = nil) then
  81.     begin
  82.       New(Head);
  83.       Head.Data.Name := EditName.Text;
  84.       Head.Data.PhoneNumber := EditNumber.Text;
  85.       S2.Table.RowCount := S2.Table.RowCount + 1;
  86.       Head.Next := Nil;
  87.     end
  88.     else
  89.     begin
  90.       if Ord(EditName.Text[1]) < Ord(Head.Data.Name[1]) then //
  91.       begin
  92.         New(Current);
  93.         Current.Data.Name := EditName.Text;
  94.         Current.Data.PhoneNumber := EditNumber.Text;
  95.         Current.Next := Head;
  96.         Head := Current;
  97.       end
  98.       else
  99.       begin
  100.         New(Current);
  101.         Current := Head;
  102.         while (Current.Next <> nil) and (Ord(EditName.Text[1]) > Ord(Current.Next.Data.Name[1])) do
  103.           Current := Current.Next;
  104.         if (Current.Next = nil) then
  105.         begin
  106.           New(Current.Next);
  107.           Current.Next.Data.Name := EditName.Text;
  108.           Current.Next.Data.PhoneNumber := EditNumber.Text;
  109.           Current.Next.Next := nil;
  110.         end
  111.         else
  112.         begin
  113.           New(Buf);
  114.           Buf.Data.Name := EditName.Text;
  115.           Buf.Data.PhoneNumber := EditNumber.Text;
  116.           Buf.Next := Current.Next;
  117.           Current.Next := Buf;
  118.         end;
  119.       end;
  120.     end;
  121.     S2.Table.RowCount := RowCount;
  122.     I := 0;
  123.     Current := Head;
  124.     while I < RowCount do
  125.     begin
  126.       S2.Table.Cells[0, I] := Current.Data.Name;
  127.       S2.Table.Cells[1, I] := Current.Data.PhoneNumber;
  128.       Inc(I);
  129.       Current := Current.Next;
  130.     end;
  131.     EditName.Clear;
  132.     EditNumber.Clear;
  133.     AddForm.Close;
  134.   end
  135.   else
  136.     ShowMessage('Проверьте корректность введённых данных!');
  137. end;
  138.  
  139. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement