mysjkin Skrevet 28. februar 2005 Skrevet 28. februar 2005 Jeg lager en databasefrontend i delphi og skulle gjerne hatt en funksjon som logger ut brukeren dersom det ikke har vært noen aktivitet i et gitt intervall. Ser for meg noe slikt: keyboard eller mouse event lagrer tidspunkt til en variabel en ontimer kjøres med passende mellomrom og skjekker om tiden > variabelen+intervall i så fall logg ut evt keyboard eller mouse events resetter en timer ontimer ser på hvor langt timeren har kommet hvis timer > intervall : logg ut. Jeg kan behandle mouse eller keyboard events på form-nivå. Problemet er imidlertid at applikasjonen består av mange forms, hvorav ca halvparten er basert på en templateform jeg har definert selv, mens resten er basert rett på tform, har lite lyst til å lage enda et lag med arv her... Nå mens jeg skriver, er jeg muligheten: TForm | V TAppForm (custom key og mouse eventhandler) -> Div forms, nå basert på TForm | V TFTemplate (Eksiserende grunnlag for datentryforms i applikasjonen Vil bli litt fiklete å dytte inn TAppForm i hieriarkiet, men det er kanskje eneste løsningen dersom jeg ikke vil legge inn ny key og mouse handler i samtlige skjemaer.. M.
gerri28 Skrevet 28. februar 2005 Skrevet 28. februar 2005 (endret) dropp en TApplicationEvents og en TTimer. sett timeren til 60000, så vil dette lukke programmet etter 10 min med inaktivitet. implementation var x:integer = 0; {$R *.dfm} procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); begin case msg.message of WM_MOUSEFIRST..WM_MOUSELAST: x:= 0; WM_KEYFIRST..WM_KEYLAST: x:= 0; end; end; procedure TForm1.Timer1Timer(Sender: TObject); begin inc(x); if x > 10 then close; end; Endret 28. februar 2005 av gerri28
mysjkin Skrevet 28. februar 2005 Forfatter Skrevet 28. februar 2005 Ikke værre? Takk skal du ha! (Utrolig hvor lett en del ting er når man bare vet hvordan ) M.
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå