Domino 9 und frühere Versionen > Administration & Userprobleme
Wie kann ich das Cancel-Event ( X neben dem Fensternamen) abfangen??
kai.71:
Hallo ;)
Ich bin auf der Suche nach einer Möglichkeit, das Cancel-Event (also das X neben dem Fensternamen) abzufangen.
Ich habe etwas gefunden, um das Escape abzufangen/ zu verhindern, aber, wie gesagt, nichts für das Cancel-Event.
Hat da vlt jemand eine Lösung zur Hand?
Eine Lösung im Query-Close bzw. Query-Save ist nicht möglich, da ich dort schon einige andere Sachen abfange.
Hier für das Abfangen des Escape:
Type KeyboardBytes
kbByte(0 To 255) As Long
End Type
Declare Function GetKeyState Lib "user32" (Byval nVirtKey As Long) As Long
Declare Function GetKeyboardState Lib "user32" (kbArray As KeyboardBytes) As Long
Declare Function SetKeyboardState Lib "user32" (kbArray As KeyboardBytes) As Long
Dim kbArray As KeyboardBytes, kbOld As KeyboardBytes
Sub ESC_Taste_aus
'********************************************
'- der Code hier verhindert das schliessen des Fensters durch Esc unter bestimmten umständen
If GetKeyState(VK_ESC) Then
'Get the keyboard state
GetKeyboardState kbArray
'Change a key
kbArray.kbByte(VK_ESC) = 1
'Set the keyboard state
SetKeyboardState kbArray
SetKeyboardState kbOld
continue = False
End If
'********************************************
End Sub
Sub ESC_Taste_ein
SetKeyboardState kbOld
End Sub
Gibt es sowas auch für das Cancel-Event???
Vielen Dank
Kai
Axel:
Was soll denn das werden. Wo willst du denn auf Cancel abfragen?
Ein paar mehr Infos wären nicht schlecht.
Axel
kai.71:
OK..sorry.... ;)
also, das ist eine maske, in der der nutzer aus einer adressdatenbank eine lono-adresse auswählen kann, welche für den zugriff (ACL) auf eine andere datenbank benötigt wird.
innerhalb dieser maske existieren 2 buttons:
1) speichern & schliessen (also save und close)
2) abbrechen
wenn der nutzer abbrechen betätigt, wird ein item im dokument erzeugt, gespeichert, und der editmode auf false gesetzt.
im queryclose wird dann überprüft, ob dieses feld vorhanden ist, und wenn ja, dann wird dieses dokument gelöscht.
wenn der nutzer jetzt das kreuz betätigt, wird natürlich nicht das item erzeugt, und das dokument dann im queryclose nicht mehr gelöscht.
deswegen möchte ich das cancel-event generell abschalten, also wie bei vb (onclose......cancel=true).
ich hoffe das ist jetzt ausführlicher ;)
danke
Axel:
Ich gehe mal davon aus, dass du die Maske als Dialogbox aufrufst. In diesem Fall kannst du im QueryClose-Event mit notesUIDocument.DialogBoxCanceled prüfen ob die Dialogbox mit Cancel (auf mit dem X) verlassen wurde.
Beispiel aus der Hilfe:
(Globals)(Declarations)
%INCLUDE "lsconst.lss"
Sub Queryclose(Source As NotesUIDocument, Continue As Variant)
If Source.DialogBoxCanceled Then
If Messagebox ("Do you really want to Cancel", _
MB_YESNO+MB_ICONQUESTION, "Cancel") = IDNO Then
Continue = False
End If
End If
End Sub
Axel
kai.71:
danke, :)
aber ich rufe die maske nicht in einer dialogbox auf.
hatte an diese möglichkeit auch schon gedacht, nachdem ich das in der hilfe gefunden habe. dann müsste ich aber alles umstricken :-(
war ja bisher der meinung, das ich das cancel-event über ne api abfangen kann, oder so.
werde mal parallel mit dem umbau auf dialogbox beginnen, bevor ich nachher gar keine lösung habe.
gruss kai
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln