Hallo Lucius,
schmeiß den Timer weg. Wenn du eine download policy umsetzen möchtest, dann packe eine ActionList auf deine Form, pack deinen Code in eine Action und ordne diese Action deinem MenuItem zu. Nach dem Ausführen der Action wird mittels der private variable UnlockDownload ein timelock gesetzt. Die Action überprüft dann in der idle time ob das timelock noch existiert.
Delphi-Quellcode:
type
TDemoForm = class(TForm)
ActionList: TActionList;
DownloadAction: TAction;
MainMenu: TMainMenu;
miDownload: TMenuItem;
procedure DownloadActionExecute(Sender: TObject);
procedure DownloadActionUpdate(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
UnlockDownload: TDateTime;
end;
var
DemoForm: TDemoForm;
implementation
{$R *.dfm}
uses
DateUtils; // OneMinute lives here
procedure TDemoForm.DownloadActionExecute(Sender: TObject);
begin
// put your code here ...
UnlockDownload := Now + OneMinute * 5; // 5 minutes timelock
end;
procedure TDemoForm.DownloadActionUpdate(Sender: TObject);
begin
with Sender as TAction do
Enabled := Now > UnlockDownload;
end;
procedure TDemoForm.FormCreate(Sender: TObject);
begin
UnlockDownload := Now;
end;
Grüße vom marabu