Frm_CompressionRatio.pas 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. unit Frm_CompressionRatio;
  2. interface
  3. uses
  4. Winapi.Windows, Winapi.Messages,
  5. System.SysUtils,
  6. System.Variants, System.Classes,
  7. Vcl.Graphics, Vcl.Controls, Vcl.Forms,
  8. Vcl.Dialogs,
  9. Vcl.StdCtrls,
  10. GLS.FileVfsPAK;
  11. type
  12. TFrmCompressionRatio = class(TForm)
  13. BtnForOk: TButton;
  14. BtnForCancel: TButton;
  15. CbForRatio: TComboBox;
  16. procedure FormCreate(Sender: TObject);
  17. procedure BtnForCancelClick(Sender: TObject);
  18. procedure BtnForOkClick(Sender: TObject);
  19. private
  20. FCompressionRatio: TZCompressedMode;
  21. FDefaultCbrMode: TZCompressedMode;
  22. procedure SetDefaultCbrMode(const Value: TZCompressedMode);
  23. public
  24. property CompressionRatio: TZCompressedMode read FCompressionRatio
  25. write FCompressionRatio;
  26. property DefaultCbrMode: TZCompressedMode read FDefaultCbrMode
  27. write SetDefaultCbrMode;
  28. end;
  29. var
  30. FrmCompressionRatio: TFrmCompressionRatio;
  31. function SelectCompressionRatio(const ADefaultCbrMode: TZCompressedMode = Auto): TZCompressedMode;
  32. implementation
  33. uses
  34. TypInfo;
  35. {$R *.dfm}
  36. // SelectCompressionRatio
  37. //
  38. function SelectCompressionRatio(const ADefaultCbrMode: TZCompressedMode = Auto): TZCompressedMode;
  39. begin
  40. if not Assigned(FrmCompressionRatio) then
  41. FrmCompressionRatio.Create(nil);
  42. FrmCompressionRatio.DefaultCbrMode := ADefaultCbrMode;
  43. FrmCompressionRatio.ShowModal;
  44. Result := FrmCompressionRatio.CompressionRatio;
  45. end;
  46. // TFrmCompressionRatio.FormCreate
  47. //
  48. procedure TFrmCompressionRatio.FormCreate(Sender: TObject);
  49. var
  50. I: TZCompressedMode;
  51. begin
  52. FCompressionRatio := Auto;
  53. FDefaultCbrMode := Auto;
  54. for I := Low(TZCompressedMode) to High(TZCompressedMode) do
  55. CbForRatio.Items.Add(GetEnumName(TypeInfo(TZCompressedMode), Ord(I)));
  56. end;
  57. procedure TFrmCompressionRatio.SetDefaultCbrMode(
  58. const Value: TZCompressedMode);
  59. begin
  60. FDefaultCbrMode := Value;
  61. CbForRatio.ItemIndex := ord(DefaultCbrMode);
  62. end;
  63. // TFrmCompressionRatio.BtnForCancelClick
  64. //
  65. procedure TFrmCompressionRatio.BtnForCancelClick(Sender: TObject);
  66. begin
  67. FCompressionRatio := None;
  68. end;
  69. // TFrmCompressionRatio.BtnForOkClick
  70. //
  71. procedure TFrmCompressionRatio.BtnForOkClick(Sender: TObject);
  72. begin
  73. FCompressionRatio := TZCompressedMode(CbForRatio.ItemIndex);
  74. end;
  75. end.