Autor Thema: Dialogbox ohne 'X'  (Gelesen 6322 mal)

botschi

  • Gast
Dialogbox ohne 'X'
« 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 »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Dialogbox ohne Kreuz
« Antwort #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.  ;)

Bernhard

botschi

  • Gast
Re: Dialogbox ohne Kreuz
« Antwort #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  :-\

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])

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Dialogbox ohne Kreuz
« Antwort #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

botschi

  • Gast
Re: Dialogbox ohne Kreuz
« Antwort #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?

botschi

  • Gast
Re: Dialogbox ohne Kreuz
« Antwort #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  ???
« Letzte Änderung: 21.11.06 - 10:11:55 von botschi »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Dialogbox ohne 'X'
« Antwort #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

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: Dialogbox ohne 'X'
« Antwort #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
Gruß
Demian

botschi

  • Gast
Re: Dialogbox ohne 'X'
« Antwort #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!

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: Dialogbox ohne 'X'
« Antwort #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 »
Gruß
Demian

botschi

  • Gast
Re: Dialogbox ohne 'X'
« Antwort #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!

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: Dialogbox ohne 'X'
« Antwort #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
Gruß
Demian

botschi

  • Gast
Re: Dialogbox ohne 'X'
« Antwort #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?

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: Dialogbox ohne 'X'
« Antwort #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.
Gruß
Demian

botschi

  • Gast
Re: Dialogbox ohne 'X'
« Antwort #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...  ???

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.

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: Dialogbox ohne 'X'
« Antwort #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?
Gruß
Demian

botschi

  • Gast
Re: Dialogbox ohne 'X'
« Antwort #16 am: 23.11.06 - 11:42:58 »
Ja, zuweisen geht nur über das Ticket, welches im Bearbeitungsmodus ist

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: Dialogbox ohne 'X'
« Antwort #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?
Gruß
Demian

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Dialogbox ohne 'X'
« Antwort #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
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... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: Dialogbox ohne 'X'
« Antwort #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
Gruß
Demian

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz