Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Nach bestimmter Zeit Menuitem wieder aktivieren.

  Alt 6. Dez 2005, 12:18
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
  Mit Zitat antworten Zitat