AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
24.05.12 - 08:50:49
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino 7
| |-+  ND7: Entwicklung (Moderatoren: eknori, Glombi, koehlerbv)
| | |-+  Dialogbox ohne 'X'
« vorheriges nächstes »
Seiten: [1] 2 Nach unten Drucken
Autor Thema: Dialogbox ohne 'X'  (Gelesen 1381 mal)
botschi
Gast
« am: 21.11.06 - 09:28:25 »

Hallo liebe Leute,

ich nutze eine Dialogbox mit folgendem Aufruf:

dialogbox = ws.Dialogbox("dialogzuweisen",True,True,True,False,False,False,"Ticket zuweisen", dlg, True, True)

Kann man der Dialogbox irgendwie sagen, dass sie oben rechts kein 'X' haben soll?

Also ich möchte erreichen, dass man einen meiner Knöpfe drücken muss, um das Fenster wieder zu schliessen.
Kann mir da jemand helfen?
« Letzte Änderung: 21.11.06 - 11:26:31 von botschi » Gespeichert
koehlerbv
Moderator
Gold Platin u.s.w. member:)
*****
Online Online

Geschlecht: Männlich
Beiträge: 19052



« Antworten #1 am: 21.11.06 - 09:37:14 »

Verstehe ich nicht: Warum willst Du den Windows-Standard brechen, wenn Du doch auf "Abbruch durch User" sowieso reagieren musst?

Um das Kreuz wegzubekommen, müsstest Du Dich auch an ein MS-Forum wenden, dann die Dialogbox-Funktionalität kommt direkt aus den Tiefen des Betriebssystems. Notes macht da nur einen API-Call.  Wink

Bernhard
Gespeichert
botschi
Gast
« Antworten #2 am: 21.11.06 - 09:43:52 »

Ich habe eine Dialogbox, mit einigen Knöpfen, u.a. ein 'Abbrechen'.
Leider verhalten sich der Knopf und das 'X' unterschiedlich  Undecided

Das muss natürlich an meinem Code liegen...
Wenn ich das 'X' betätige, dann geht nicht nur die Dialogbox zu, sondern das darunter liegende Doc schliesst sich auch. Man bekommt für das darunter liegende also die Frage 'Wollen Sie speichern?".

Ich finde dafür keinen Hebel und wollte deswegen das 'X' entfernen... Kein guter Ansatz, ich weiss...

In meinem Knopf habe ich folgende Formeln:
@SetField("abbruch";"abbruch");
@Command([FileCloseWindow])
Gespeichert
koehlerbv
Moderator
Gold Platin u.s.w. member:)
*****
Online Online

Geschlecht: Männlich
Beiträge: 19052



« Antworten #3 am: 21.11.06 - 09:49:26 »

Du musst den Return Value von Dialogbox auswerten, dann weisst Du auch, was der User gemacht hat und kannst reagieren.
In der Beschreibung hast Du übrigens genau umgedreht erklärt  als das, was Du wirklich tust.

Bernhard
Gespeichert
botschi
Gast
« Antworten #4 am: 21.11.06 - 09:53:24 »

In der Beschreibung hast Du übrigens genau umgedreht erklärt  als das, was Du wirklich tust.

Was meinst Du genau?
Gespeichert
botschi
Gast
« Antworten #5 am: 21.11.06 - 09:56:41 »

Wenn ich in der Box meine eigenen Knöpfe habe, also diesen Parameter auf 'True' setze:

noOkCancel
Hinweis  This parameter is new with Release 5.
Boolean. Optional. Specify True to not display the OK button.

Wie kann ich denn den Rückgabewert bestimmen? Der ist bei mir immer 'True', auch wenn ich meinen 'Abbrechen'-Knopf drücke, obwohl ich diesen als 'Abbrechen' definiert habe  Huh
« Letzte Änderung: 21.11.06 - 10:11:55 von botschi » Gespeichert
koehlerbv
Moderator
Gold Platin u.s.w. member:)
*****
Online Online

Geschlecht: Männlich
Beiträge: 19052



« Antworten #6 am: 21.11.06 - 18:50:33 »

Deinene Buttons müssen entweder alle Aktionen bereits selber abschliessen (keine weitere Behandlung im weiteren Code) oder Du musst einen Rückgabecode vereinbaren und global hinterlegen. Das Verfahren ist also anders als mit der "normalen" Dialogbox.

Bernhard
Gespeichert
Demian
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 565



« Antworten #7 am: 22.11.06 - 11:16:11 »

Hallo,

du könntest das vielleicht auch in einer do while-Schleife lösen.

In etwa so:

do while Dialogbox = ""
dialogbox = work.prompt....
loop

Dann wird bei Drücken auf x Die Dialogbox erneut angezeigt, und zwar solange, bis der Rückgabewert nicht mehr "" ist.

Gruß
Demian
Gespeichert

Gruß
Demian
botschi
Gast
« Antworten #8 am: 22.11.06 - 11:42:18 »

Oha.
Hab ich noch nicht probiert, aber hört sich interessant an. Daran hab ich noch gar nicht gedacht.

Danke dafür!
Gespeichert
Demian
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 565



« Antworten #9 am: 23.11.06 - 07:40:13 »

Mir fällt gerade auf, ich habe da was verwechselt. Die Dialogbox gibt nicht "" zurück sondern false. Habe es mit workspace.prompt verwechselt (siehe Code oben).

Also statt "" müsstest du false einsetzen.

Gruß
Demian



« Letzte Änderung: 23.11.06 - 07:42:56 von Demian » Gespeichert

Gruß
Demian
botschi
Gast
« Antworten #10 am: 23.11.06 - 09:33:05 »

Ich habs jetzt noch nicht probiert, aber mein Problem ist ja, dass ich nie ein false bekomme.
Wie Bernhard sagte, ich muss wohl einen Rückgabecode vereinbaren.

Es sind jetzt andere Sachen dazwischen gekommen, aber da muss ich auch nochmal ran!
Gespeichert
Demian
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 565



« Antworten #11 am: 23.11.06 - 10:06:10 »

Hallo Botschi,

habe jetzt mal deinen Code genommen (bis auf das Dokument dlg)

Dim work As New NotesUIWorkspace
Dim a As Variant
   
Do While a = False
a = work.DialogBox("Test",True,True,True,False,False,False,"Ticket zuweisen", , True, True)
Msgbox a
Loop   


Bei Klicken auf X gibt er mir false zurück und ruft die Box erneut auf. Das das jetzt nur mit dem angegebenen Dokument zusammenhängt, kann ich mir eigentlich nicht vorstellen.

Gruß
Demian
Gespeichert

Gruß
Demian
botschi
Gast
« Antworten #12 am: 23.11.06 - 10:36:42 »

Ich nicht, ich kriege trotzdem immer ein true. Auch wenn ich Deinen Code nutze.
Do While dialogbox = False
      dialogbox = ws.Dialogbox("dialogzuweisen",True,True,True,False,False,False,"Ticket zuweisen", dlg, True, True)
   Loop   
Unsere Masken unterscheiden sich vielleicht... Wo kann denn noch der Unterschied liegen?
Gespeichert
Demian
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 565



« Antworten #13 am: 23.11.06 - 10:49:10 »

und wenn du mal die Maske dlg weglässt?
Wie gesagt, habe diesen Parameter ja offen gelassen und bei mir kommt false. Also kann es eigentlich nur daran liegen.
Gespeichert

Gruß
Demian
botschi
Gast
« Antworten #14 am: 23.11.06 - 11:00:19 »

Dann bekomme ich ein:
"DialogBox kann in diesem Kontext nicht verwendet werden. Es muss ein Dokument ausgewählt werden."
Ich dachte auch das Doc ist optional...  Huh

Vielleicht nochmal kurz zum Aufruf:
Ich habe eine Ticketmaske. Will ich das Ticket jemandem zuweisen, drücke ich auf einen Knopf und dann soll die Dialogbox aufgehen.
Gespeichert
Demian
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 565



« Antworten #15 am: 23.11.06 - 11:39:31 »

OK,ich hatte den Code innerhalbs einer geöffneten Maske ausgeführt, sonst kommt die Meldung mit dem Kontext.

Ist diese Ticketmaske geöffnet?
Gespeichert

Gruß
Demian
botschi
Gast
« Antworten #16 am: 23.11.06 - 11:42:58 »

Ja, zuweisen geht nur über das Ticket, welches im Bearbeitungsmodus ist
Gespeichert
Demian
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 565



« Antworten #17 am: 23.11.06 - 11:50:13 »

Dann verstehe ich das mit der Kontextmeldung nicht. Die kam bei mir auch, als ich den Code aus einer Ansicht heraus starten wollte, weil ich nicht dran gedacht habe.

Kannst du die .ntf hochladen?
Gespeichert

Gruß
Demian
Tode
Gold Platin u.s.w. member:)
*****
Online Online

Geschlecht: Männlich
Beiträge: 2804


Geht nicht, gibt's (fast) nicht... *g*


« Antworten #18 am: 23.11.06 - 12:01:26 »

auch wenn ich jetzt alles über den Haufen werfe, was hier bisher diskutiert wurde, aber ist die While- Schleife nicht in Wirklichkeit zu spät ?

Ich würde es so lösen, dass sich die Dialogbox beim Klick auf das X schlicht und ergreifend nicht schliesst.

Das ist ganz einfach...

Dein OK- Button / Dein Abbrechen- Button:
irgendwo in die Formel ein @Environment( "Knopf_Gedrueckt" ; "1" ) (oder ses.SetEnvironmentVar( ) in Script.

Dann im QueryClose der Dialog- Maske:
Dim ses as New NotesSession
Dim cont as String
cont = ses.GetEnvironmentString( "Knopf_Gedrueckt" )
call ses.SetEnvironmentVar( "Knopf_Gedrueckt" , "" )
if cont <> "1" then
continue = False
end if

und aus die Maus: die Maske lässt sich nur noch über die Buttons schliessen, das "x" hat keinerlei Auswirkungen mehr (genausowenig wie die Taste Esc übrigens, das wäre nämlich das nächste gewesen, wenn Du es geschafft hättest, das x auszublenden...)

HTH
Tode
Gespeichert

Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen...

Alles beim alten zu lassen kostet nichts.....
                         .....nichts als die Zukunft !


pers. Infos:
seit 1995 in der Notes/Domino Administration und Programmierung, Senior Consultant (hört sich so schön hochtrabend an) zu allem möglichen rund um Notes/Domino (Blackberry, Traveler, Sametime, Quickr, ein bisschen Lotus Connections...)
Demian
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 565



« Antworten #19 am: 23.11.06 - 12:08:15 »

Hallo Tode,

inwiefern ist die Schleife zu spät? Also, bei mir funzt. Die Dialogbox flackert kurz und ist wieder da.

Gruß
Demian
Gespeichert

Gruß
Demian
Seiten: [1] 2 Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: Tinte / Toner günstig