SendProgressUnit.pas 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. {
  2. TIGCC IDE
  3. Copyright (C) 2000-2004 Sebastian Reichelt
  4. This program is free software; you can redistribute it and/or modify
  5. it under the terms of the GNU General Public License as published by
  6. the Free Software Foundation; either version 2, or (at your option)
  7. any later version.
  8. This program is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. GNU General Public License for more details.
  12. You should have received a copy of the GNU General Public License
  13. along with this program; if not, write to the Free Software Foundation,
  14. Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  15. }
  16. unit SendProgressUnit;
  17. interface
  18. uses
  19. LinkUnit,
  20. Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  21. StdCtrls, ComCtrls;
  22. type
  23. TSendProgressForm = class(TForm)
  24. ProgressBar: TProgressBar;
  25. FileNameLabel: TLabel;
  26. CancelButton: TButton;
  27. procedure CancelButtonClick(Sender: TObject);
  28. procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  29. private
  30. public
  31. Cancelled: Boolean;
  32. CloseNow: Boolean;
  33. end;
  34. function ProgressProg(ID: Pointer; Progress: PDWord): Boolean;
  35. implementation
  36. {$R *.DFM}
  37. function ProgressProg(ID: Pointer; Progress: PDWord): Boolean;
  38. begin
  39. with TSendProgressForm (ID) do begin
  40. ProgressBar.Position := Progress^;
  41. Result := not Cancelled;
  42. end;
  43. Application.ProcessMessages;
  44. end;
  45. procedure TSendProgressForm.CancelButtonClick(Sender: TObject);
  46. begin
  47. Cancelled := True;
  48. end;
  49. procedure TSendProgressForm.FormCloseQuery(Sender: TObject;
  50. var CanClose: Boolean);
  51. begin
  52. CanClose := CloseNow;
  53. if not CanClose then
  54. Cancelled := True;
  55. end;
  56. end.