Einzelnen Beitrag anzeigen

Benutzerbild von thkerkmann
thkerkmann

Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
 
Delphi 2010 Professional
 
#9

Re: Automatisch abmelden von Benutzer nach Zeit ohne Handlun

  Alt 19. Sep 2009, 12:49
So hab ich das aber nicht gemeint:

Delphi-Quellcode:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  Counter := 30; //die 30 kann sich ändern, daher müsste ich jedesmal aus der DB lesen.
end;

procedure TForm1.AutoAbmeldenTimer(Sender: TObject);
begin
  for i := 0 to Counter do
    begin
      ..
      Counter -1;
    end;
  Abmelden.Click;
end;
Der Counter kann eine Variable deines Forms sein - nicht Global.
Was soll die Schleife ?

Delphi-Quellcode:
type
  TForm1 = class(TForm)
   ...
   FCounter: integer;
   FCounterStart: integer;
   ...
  end;

procedure TForm1.OnCreate (Sender:TObject);
begin
  FCounterStart := AusDBGelesen;
  FCounter := FCounterStart;
end;

procedure TForm1.Anmelden;
begin
  FCounterStart := AusDBGelesen; // auch hier möglich und sinnvoll.
  FCounter := FCounterStart;
end;

procedure TForm1.OnMouseMove(...);
begin
  FCounter := FCounterStart;
end;

procedure TForm1.AutoAbmeldenTimer(Sender:tObject);
begin
  if FCounter > 0 then
  begin
    dec(FCounter);
    if FCounter = 0 then
       Abmelden;
  end;
end;
Ich verwende in meinen Programmen gerne Actionlists. Hier kann man prima ein OnAction Event programmieren, bei dem man den FCounter wieder auf FCounterStart zurücksetzt. Da braucht man keinen Hook, kein OnMouseMove oder onKeypress. Man kann natürlich auch alle drei verwenden um den FCounter zu retriggern.

Gruss
Thomas Kerkmann
Ich hab noch einen Koffer in Borland.
http://thomaskerkmann.wordpress.com/
  Mit Zitat antworten Zitat