Advertisement
Guest User

Untitled

a guest
May 28th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 2.11 KB | None | 0 0
  1. unit frmMain;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, StdCtrls, ExtCtrls, frmCount, Contnrs;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     BAddFrame: TButton;
  12.     GroupBox1: TGroupBox;
  13.     Edit1: TEdit;
  14.     procedure BAddFrameClick(Sender: TObject);
  15.     procedure FormCreate(Sender: TObject);
  16.   private
  17.     { Private-Deklarationen }
  18.   public
  19.     procedure AdderClick(Sender: TObject);
  20.     procedure RemoveClick(Sender: TObject);
  21.   end;
  22.  
  23. var
  24.   Form1: TForm1;
  25.   frames: TObjectList;
  26.   total: Integer;
  27.  
  28. implementation
  29.  
  30. {$R *.dfm}
  31.  
  32. procedure TForm1.AdderClick(Sender: TObject);
  33. var frm: TAdderframe;
  34. begin
  35.   frm := ((Sender as TButton).Parent as TAdderframe);
  36.  
  37.   total := total + frm.subtotal;
  38.  
  39.   Edit1.Text := IntToStr(total);
  40. end;
  41.  
  42. procedure TForm1.BAddFrameClick(Sender: TObject);
  43. var
  44.   frame: TAdderframe;
  45. begin
  46.   frame := TAdderframe.Create(Groupbox1);
  47.  
  48.   frame.Name := '';
  49.   frame.Parent := Groupbox1;
  50.   frame.Width := Groupbox1.ClientWidth-2;
  51.  
  52.   frame.Top := frame.Height * frames.Count;
  53.  
  54.  
  55.   frame.BAdd.OnClick := AdderClick;
  56.   frame.BRemoveFrame.OnClick := RemoveClick;
  57.  
  58.   frames.Add(frame);
  59. end;
  60.  
  61. procedure TForm1.FormCreate(Sender: TObject);
  62. begin
  63.   frames := TObjectList.Create;
  64.   total := 0;
  65. end;
  66.  
  67. procedure TForm1.RemoveClick(Sender: TObject);
  68. var i: Integer;
  69. begin
  70.   frames.Remove((Sender as TControl).Parent);
  71.  
  72.   for I := 0 to frames.count - 1 do
  73.   begin
  74.     (frames[i] as TAdderframe).Top := (frames[i] as TAdderframe).Height * i;
  75.   end;
  76.  
  77. end;
  78.  
  79. end.
  80.  
  81.  
  82. =============================
  83.  
  84. unit frmCount;
  85.  
  86. interface
  87.  
  88. uses
  89.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  90.   Dialogs, StdCtrls;
  91.  
  92. type
  93.   TAdderframe = class(TFrame)
  94.     EAmount: TEdit;
  95.     BAdd: TButton;
  96.     BRemoveFrame: TButton;
  97.     procedure EAmountChange(Sender: TObject);
  98.   private
  99.     { Private-Deklarationen }
  100.   public
  101.     subtotal: Integer;
  102.   end;
  103.  
  104. implementation
  105.  
  106. {$R *.dfm}
  107.  
  108. procedure TAdderframe.EAmountChange(Sender: TObject);
  109. begin
  110.   subtotal := StrToIntDef(EAmount.Text,0);
  111. end;
  112.  
  113. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement