setmaximumformunit.pas 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. unit setmaximumformunit;
  2. {$mode objfpc}{$H+}
  3. interface
  4. uses
  5. Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, Spin,
  6. ButtonPanel, LCLTranslator;
  7. type
  8. { TSetMaximumForm }
  9. TSetMaximumForm = class(TForm)
  10. DecisionButtonPanel: TButtonPanel;
  11. MaximumLabel: TLabel;
  12. MaximumSpinEdit: TSpinEdit;
  13. procedure CancelButtonClick(Sender: TObject);
  14. procedure OKButtonClick(Sender: TObject);
  15. private
  16. ResultValue: Integer;
  17. public
  18. function RequestValue(OriginalValue: Integer; MaxValue: Integer = 999): Integer;
  19. end;
  20. var
  21. SetMaximumForm: TSetMaximumForm;
  22. implementation
  23. {$R *.lfm}
  24. { TSetMaximumForm }
  25. procedure TSetMaximumForm.OKButtonClick(Sender: TObject);
  26. begin
  27. ResultValue := MaximumSpinEdit.Value;
  28. Close;
  29. end;
  30. procedure TSetMaximumForm.CancelButtonClick(Sender: TObject);
  31. begin
  32. Close;
  33. end;
  34. function TSetMaximumForm.RequestValue(OriginalValue: Integer; MaxValue: Integer
  35. ): Integer;
  36. begin
  37. ResultValue := OriginalValue;
  38. MaximumSpinEdit.MaxValue := MaxValue;
  39. MaximumSpinEdit.Value := OriginalValue;
  40. ShowModal;
  41. RequestValue := ResultValue;
  42. end;
  43. end.