MadCortez

Untitled

Nov 10th, 2021
290
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 5.30 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.ComCtrls, Vcl.StdCtrls;
  8.  
  9. type
  10.   TForm2 = class(TForm)
  11.     TreeView1: TTreeView;
  12.     NewTermin: TButton;
  13.     NewSubTermin: TButton;
  14.     Label1: TLabel;
  15.     Edit1: TEdit;
  16.     Label2: TLabel;
  17.     Edit2: TEdit;
  18.     AddBt: TButton;
  19.     Button1: TButton;
  20.     Button2: TButton;
  21.     Button3: TButton;
  22.     Button4: TButton;
  23.     Button5: TButton;
  24.     procedure AddBtClick(Sender: TObject);
  25.     procedure NewTerminClick(Sender: TObject);
  26.     procedure NewSubTerminClick(Sender: TObject);
  27.     procedure Button1Click(Sender: TObject);
  28.     procedure Button2Click(Sender: TObject);
  29.     procedure Button3Click(Sender: TObject);
  30.     procedure Button4Click(Sender: TObject);
  31.     procedure Button5Click(Sender: TObject);
  32.     procedure AddToHash(S: String);
  33.   private
  34.     { Private declarations }
  35.   public
  36.     { Public declarations }
  37.   end;
  38.  
  39. var
  40.   Form2: TForm2;
  41.   Flag, n, m, kk, kkk: Integer;
  42.   hash: array[1..10000] of String;
  43.  
  44. implementation
  45.  
  46. {$R *.dfm}
  47.  
  48. procedure TForm2.AddToHash(S: String);
  49. var
  50.    i, key: Integer;
  51. begin
  52.    for i := 1 to length(s) do
  53.       key := key + ord(s[i]);
  54.    key := key mod 10000;
  55.    hash[key] := S;
  56. end;
  57.  
  58. procedure TForm2.AddBtClick(Sender: TObject);
  59. var
  60.    Find: TTreeNode;
  61.    i, j, key: Integer;
  62.    FindFlag: Boolean;
  63.    arr: array[1..100] of integer;
  64.    S: String;
  65. begin
  66.    if Flag = 1 then
  67.    begin
  68.       TreeView1.Items.Add(nil, Edit1.Text);
  69.       AddToHash(Edit1.Text);
  70.       TreeView1.Items.AddChild(TreeView1.Items.Item[n], 'Страница: ' + Edit2.Text);
  71.       Inc(n, 2);
  72.       Edit1.Visible := False;
  73.       Label1.Visible := False;
  74.       AddBt.Visible := False;
  75.    end;
  76.    if Flag = 2 then
  77.    begin
  78.       TreeView1.Items.AddChild(TreeView1.Selected, Edit1.Text);
  79.       Find := TreeView1.Selected.GetLastChild;
  80.       m := 0;
  81.       While TreeView1.Items.Item[m] <> Find Do
  82.          Inc(m);
  83.       TreeView1.Items.AddChild(TreeView1.Items.Item[m], 'Страница: ' + Edit2.Text);
  84.       Inc(n, 2);
  85.       Edit1.Visible := False;
  86.       Label1.Visible := False;
  87.       AddBt.Visible := False;
  88.    end;
  89.    if Flag = 3 then
  90.    begin
  91.       TreeView1.Selected.Text := Edit1.Text;
  92.       if TreeView1.Selected.getFirstChild.Text[1] = 'С' then
  93.          TreeView1.Selected.getFirstChild.Text := 'Страница: ' + Edit2.Text
  94.       else
  95.          TreeView1.Selected.getLastChild.Text := 'Страница: ' + Edit2.Text;
  96.       Edit1.Visible := False;
  97.       Label1.Visible := False;
  98.       AddBt.Visible := False;
  99.    end;
  100.    if Flag = 4 then
  101.    begin
  102.       FindFlag := False;
  103.       for i := kkk to TreeView1.Items.Count - 1 do
  104.          if TreeView1.Items.Item[i].Text = Edit1.Text then
  105.          begin
  106.             kkk := i + 1;
  107.             TreeView1.Items.Item[i].Parent.Selected := True;
  108.             TreeView1.SetFocus;
  109.             FindFlag := True;
  110.             break;
  111.          end;
  112.       if not(FindFlag) then
  113.       begin
  114.          MessageDlg('Подтермин не найден', mtError, [mbOK], 0);
  115.          kkk := 0;
  116.          Edit1.Visible := False;
  117.          Label1.Visible := False;
  118.          AddBt.Visible := False;
  119.          AddBt.Caption := 'Добавить';
  120.       end;
  121.    end;
  122.    if Flag = 5 then
  123.    begin
  124.       FindFlag := False;
  125.       for i := kk to TreeView1.Items.Count - 1 do
  126.          if TreeView1.Items.Item[i].Text = Edit1.Text then
  127.          begin
  128.             kk := i + 1;
  129.             TreeView1.Items.Item[i].Selected := True;
  130.             TreeView1.SetFocus;
  131.             FindFlag := True;
  132.             break;
  133.          end;
  134.       if not(FindFlag) then
  135.       begin
  136.          MessageDlg('Термин не найден', mtError, [mbOK], 0);
  137.          kk := 0;
  138.          Edit1.Visible := False;
  139.          Label1.Visible := False;
  140.          AddBt.Visible := False;
  141.          AddBt.Caption := 'Добавить';
  142.       end;
  143.    end;
  144.    Label2.Visible := False;
  145.    Edit2.Visible := False;
  146.    Edit2.Text := '';
  147. end;
  148.  
  149. procedure TForm2.Button1Click(Sender: TObject);
  150. begin
  151.    TreeView1.Selected.Delete;
  152. end;
  153.  
  154. procedure TForm2.Button2Click(Sender: TObject);
  155. begin
  156.    Flag := 3;
  157.    AddBt.Caption := 'Изменить';
  158.    Label1.Visible := True;
  159.    Label2.Visible := True;
  160.    Edit1.Visible := True;
  161.    Edit2.Visible := True;
  162.    AddBt.Visible := True;
  163. end;
  164.  
  165. procedure TForm2.Button3Click(Sender: TObject);
  166. begin
  167.    TreeView1.AlphaSort;
  168. end;
  169.  
  170. procedure TForm2.Button4Click(Sender: TObject);
  171. begin
  172.    Flag := 4;
  173.    AddBt.Caption := 'Найти';
  174.    Label1.Visible := True;
  175.    Edit1.Visible := True;
  176.    AddBt.Visible := True;
  177. end;
  178.  
  179. procedure TForm2.Button5Click(Sender: TObject);
  180. begin
  181.    Flag := 5;
  182.    AddBt.Caption := 'Найти';
  183.    Label1.Visible := True;
  184.    Edit1.Visible := True;
  185.    AddBt.Visible := True;
  186. end;
  187.  
  188. procedure TForm2.NewSubTerminClick(Sender: TObject);
  189. begin
  190.    Flag := 2;
  191.    Label1.Visible := True;
  192.    Label2.Visible := True;
  193.    Edit1.Visible := True;
  194.    Edit2.Visible := True;
  195.    AddBt.Visible := True;
  196. end;
  197.  
  198. procedure TForm2.NewTerminClick(Sender: TObject);
  199. begin
  200.    Flag := 1;
  201.    Label1.Visible := True;
  202.    Label2.Visible := True;
  203.    Edit1.Visible := True;
  204.    Edit2.Visible := True;
  205.    AddBt.Visible := True;
  206. end;
  207.  
  208. end.
Add Comment
Please, Sign In to add comment