Advertisement
Matixs

Untitled

May 31st, 2023
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 3.82 KB | None | 0 0
  1. unit CandidateDelete;
  2.  
  3. interface
  4.  
  5. uses
  6.   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
  7.   Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
  8.  
  9. type
  10.   TCandidateDeleteFrame = class(TFrame)
  11.     GroupBox1: TGroupBox;
  12.     Label1: TLabel;
  13.     Label2: TLabel;
  14.     Label3: TLabel;
  15.     Label4: TLabel;
  16.     Label5: TLabel;
  17.     EditFullname: TEdit;
  18.     EditProfession: TEdit;
  19.     EditCountyNumber: TEdit;
  20.     EditParty: TEdit;
  21.     EditAge: TEdit;
  22.     BtnPrev: TButton;
  23.     BtnNext: TButton;
  24.     BtnDelete: TButton;
  25.     LBPK: TLabel;
  26.     procedure FrameEnter(Sender: TObject);
  27.     procedure BtnPrevClick(Sender: TObject);
  28.     procedure BtnNextClick(Sender: TObject);
  29.     procedure BtnDeleteClick(Sender: TObject);
  30.   private
  31.     { Private declarations }
  32.   public
  33.     { Public declarations }
  34.     Procedure FillComponents();
  35.   end;
  36.  
  37. implementation
  38.  
  39. {$R *.dfm}
  40.  
  41. uses BidirectionalCandidate, Main, Candidate, BidirectionalParty,
  42.   BidirectionalCountyNumber;
  43.  
  44. var
  45.     CurrentCandidate : Integer;
  46.  
  47. Function GetCandidate() : TCandidate;
  48. var
  49.     TempHead : PCandidateList;
  50.     CurrentCandidateNode : TCandidate;
  51.     Counter : Integer;
  52. begin
  53.     TempHead := Main.CandidateList.Head;
  54.     CurrentCandidateNode := NIL;
  55.  
  56.     Counter := 0;
  57.  
  58.     While TempHead <> NIL Do
  59.     Begin
  60.         if Counter = CurrentCandidate then
  61.         begin
  62.             CurrentCandidateNode := TempHead.Candidate;
  63.             break
  64.         end
  65.         else
  66.             Inc(Counter);
  67.         TempHead := TempHead^.Next;
  68.     End;
  69.     GetCandidate := CurrentCandidateNode;
  70. end;
  71.  
  72. Procedure TCandidateDeleteFrame.FillComponents();
  73. var
  74.     Candidate : TCandidate;
  75. begin
  76.     Candidate := GetCandidate;
  77.     if Candidate <> NIL then
  78.     begin
  79.         LBPK.Caption := Candidate.IdCandidate.ToString;
  80.         EditFullname.Text := Candidate.Fullname;
  81.         EditCountyNumber.Text := TCountyNumberList.GetCountyNumberByPK(Main.CountyNumberList, Candidate.CountyNumberId).ToString;
  82.         EditParty.Text := TPartyList.GetPartyNameByPK(Main.PartyList, Candidate.PartyId);
  83.         EditAge.Text := Candidate.Age.ToString;
  84.         EditProfession.Text := Candidate.Profession;
  85.         BtnDelete.Enabled := True;
  86.         BtnNext.Enabled := True;
  87.         BtnPrev.Enabled := True;
  88.     end
  89.     else
  90.     begin
  91.         LBPK.Caption := '';
  92.         EditFullname.Text := '';
  93.         EditCountyNumber.Text := '';
  94.         EditParty.Text := '';
  95.         EditAge.Text := '';
  96.         EditProfession.Text := '';
  97.         BtnDelete.Enabled := False;
  98.         BtnNext.Enabled := False;
  99.         BtnPrev.Enabled := False;
  100.     end;
  101. end;
  102.  
  103. procedure TCandidateDeleteFrame.BtnDeleteClick(Sender: TObject);
  104. var
  105.     KeyCandidate : Integer;
  106. begin
  107.     try
  108.         KeyCandidate := StrToInt(LBPK.Caption);
  109.         Main.CandidateList.DeleteCandidateByID(KeyCandidate);
  110.         Application.MessageBox(PChar('Успешное удаление кандидата - ' + EditFullname.Text),
  111.                                      'Удаление кандидата',MB_OK+MB_ICONINFORMATION);
  112.         Self.FrameEnter(NIL);
  113.     except
  114.         On E : Exception do
  115.             Application.MessageBox(PChar('Ошибка' + E.Message),'Удаление кандидата', MB_OK + MB_ICONSTOP);
  116.     end;
  117. end;
  118.  
  119. procedure TCandidateDeleteFrame.BtnNextClick(Sender: TObject);
  120. begin
  121.     if CurrentCandidate <> Main.CandidateList.Count - 1 then
  122.     begin
  123.         Inc(CurrentCandidate);
  124.         FillComponents;
  125.     end;
  126. end;
  127.  
  128. procedure TCandidateDeleteFrame.BtnPrevClick(Sender: TObject);
  129. begin
  130.     if CurrentCandidate <> 0 then
  131.     begin
  132.         Dec(CurrentCandidate);
  133.         FillComponents;
  134.     end;
  135. end;
  136.  
  137. procedure TCandidateDeleteFrame.FrameEnter(Sender: TObject);
  138. begin
  139.     CurrentCandidate := 0;
  140.     FillComponents;
  141. end;
  142.  
  143. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement