Autor Thema: Messagebox/Maske nur bestimmte Zeit lang anzeigen  (Gelesen 1572 mal)

Offline ArcTan

  • Frischling
  • *
  • Beiträge: 14
Hallo,

vielleicht hat jemand eine Idee zu folgendem Problem:

Ich speichere Kennwörter in einer Datenbank und möchte das Kennwort, das in einem Dokument in einem versteckten (und verschlüsselten) Feld abgelegt ist, nach Klicken auf einen Button nur maximal 10 Sekunden lang anzeigen lassen.

Eine Standard-Messagebox bietet diese Funktionalität ja nicht. Also habe ich ein bisschen mit Masken und dem Notes Timer 'rumprobiert:

In den Declarations der Maske habe ich hinterlegt:

Dim elapsedTime As Integer
Dim elapsedTimer As NotesTimer
Const ANZEIGEZEIT=10
Dim thisdoc As NotesUIDocument

Dann gibts noch den Timer Handler:

Sub elapsedTimerHandler(S As NotesTimer)
   Dim workspace As New NotesUIWorkspace
   Set thisdoc = workspace.CurrentDocument
   elapsedTime=elapsedTime+1
   Call uidoc.fieldsettext("zeit","Fenster schließt automatisch in " + Str(ANZEIGEZEIT-elapsedTime) + " Sek.")
   Set S=Nothing
   thisdoc.close   
   
End Sub

Leider schließt sich jedoch die Form nicht von selbst...

Wäre dankbar für einen Hinweis. Vielleicht gibt es ja noch eine bessere Möglichkeit?

Grüße
ArcTan

Offline rar

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 856
  • Geschlecht: Männlich
  • Des passt scho
    • click
Re: Messagebox/Maske nur bestimmte Zeit lang anzeigen
« Antwort #1 am: 02.09.05 - 14:51:02 »
Hi ArcTan,
du könntest es mit sleep versuchen....

Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUidocument
Dim doc As NotesDocument
Set uidoc = ws.Currentdocument
Set doc = uidoc.Document
Call uidoc.FieldSetText("PWAnzeige",doc.PW(0) + "      (Bald ist es wieder weg.)")
Sleep(10)   
Call uidoc.FieldSetText("PWAnzeige","")

Der Code in ein Button, daneben das Feld PWAnzeige (Berechnet auf sich selber)

HTH
†090620141300

Offline Wilhelm

  • Aktives Mitglied
  • ***
  • Beiträge: 214
  • Geschlecht: Männlich
Re: Messagebox/Maske nur bestimmte Zeit lang anzeigen
« Antwort #2 am: 02.09.05 - 14:55:31 »
Na, besser gut kopiert als schlecht Programmiert?   ;D

Nur mal so als Hinweis: Wenn Du thisDoc as Ui deklarierst und das Frontend dann als Uidoc und nicht als thisdoc ansprichst, dann läuft Dein Code nicht besonders gut.

Wenn Du nicht darauf angewiesen bist, das das Dokument für die 10 Sekunden bearbeitbar bleibt, dann versuchs doch mit der Sleep funktion:

Zitat
Sub Click(Source As Button)
   
   Dim ws As NotesUiWorkspace
   Dim uidoc As NotesUiDocument
   Dim intSeconds As Integer
   
   Set ws = New NotesUiWorkspace
   Set uidoc = ws.CurrentDocument
   
   intSeconds = 10
   
   Do While Not  intSeconds = 0
      
      Call uidoc.FieldSetText("Zeit", "Noch " + Cstr(intSeconds) + " Sekunden bis das Dokument geschlossen wird...")
      Call uidoc.Refresh
      
      intSeconds = intSeconds  - 1
      Sleep 1
      
   Loop
   
   Call uidoc.Save
   Call uidoc.Close
   
End Sub


Gruß

Willi
Ich will endlich die F9-Taste in diesem Forum haben!!!

Offline ArcTan

  • Frischling
  • *
  • Beiträge: 14
Re: Messagebox/Maske nur bestimmte Zeit lang anzeigen
« Antwort #3 am: 05.09.05 - 11:16:15 »
Super, klappt. Vielen Dank für Eure Tipps.

(Ok, Willi, mit dem uidoc hast Du natürlich recht...)

Gruß
ArcTan

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz