Fenster nicht zweimal öffnen [erledigt]
Moderator: Moderatoren
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 486
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
Fenster nicht zweimal öffnen [erledigt]
Hallo,
wie kann ich verhindern, daß ein Benutzer ein Child-Fenster per pushbutton 2 oder mehrmals öffnet?
wie kann ich verhindern, daß ein Benutzer ein Child-Fenster per pushbutton 2 oder mehrmals öffnet?
Zuletzt geändert von Wolfgang_B am Sa, 15. Feb 2020 12:40, insgesamt 1-mal geändert.
Beste Grüße
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2825
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 96 Mal
- Danksagung erhalten: 13 Mal
Re: Fenster nicht zweimal öffnen
Hallo, Wolfgang -
z.B. indem Du den PushButton solange deaktivierst, wie das Fenster offen ist. Oder Du verwendest einen Zähler in der Routine, die das Fenster anzeigt. Ist der Zähler > 0, gibt es eben kein neues Fenster.
Das Problem ist eben immer nur, dass man diese Schalter überwachen und entsprechend wieder zurücksetzen muss.
z.B. indem Du den PushButton solange deaktivierst, wie das Fenster offen ist. Oder Du verwendest einen Zähler in der Routine, die das Fenster anzeigt. Ist der Zähler > 0, gibt es eben kein neues Fenster.
Das Problem ist eben immer nur, dass man diese Schalter überwachen und entsprechend wieder zurücksetzen muss.
Liebe Grüsse aus der Eifel,
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 486
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
Re: Fenster nicht zweimal öffnen
genau, daran scheitere ich gerade
PB ausblenden, kein Problem. Aber wieder einblenden ... Ich habe noch nicht begriffen, wo man landet, wenn man aus einem Browse ein anderes Fenster eröffnet und dieses wieder schließt ...
Nachtrag:
habs jetzt geschafft!! Weis zwar nicht ob das besonders elegant ist, aber es funktioniert
PB ausblenden, kein Problem. Aber wieder einblenden ... Ich habe noch nicht begriffen, wo man landet, wenn man aus einem Browse ein anderes Fenster eröffnet und dieses wieder schließt ...
Code: Alles auswählen
oXbpV := XbpPushButton():new( oXbp9, , {10,y}, {135,20}, { { XBP_PP_BGCLR, XBPSYSCLR_BUTTONMIDDLE }, { XBP_PP_FGCLR, -58 } } )
oXbpV:caption := "test"
oXbpV:tabStop := .T.
oXbpV:create()
oXbpV:activate := {|| MIT_OBJ( aMit, oXbpV) }
FUNCTION MIT_OBJ( aMit, oXbpV )
oBrowse:itemSelected := {| uNIL1, uNIL2, self | OBJ_EDIT2("E", aMit[1], VAL(oBrowse:getData()[8]) )}
RETURN( NIL )
habs jetzt geschafft!! Weis zwar nicht ob das besonders elegant ist, aber es funktioniert
oDlgV:close := {|| oDlgV:destroy(), oXbpV:visible := .T., oXbpV:configure() }
Beste Grüße
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2825
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 96 Mal
- Danksagung erhalten: 13 Mal
Re: Fenster nicht zweimal öffnen
Hallo, Wolfgang -
ich arbeite z.B. sehr viel mit Threads. In einem meiner Programme wäre das "neue" Fenster in einem Thread untergebracht. Wenn Du zum Thread-Start einen Link auf den PushButton übergibst:
Zumindest sinngemäss, ich denke, Du verstehst die Idee dahinter.
ich arbeite z.B. sehr viel mit Threads. In einem meiner Programme wäre das "neue" Fenster in einem Thread untergebracht. Wenn Du zum Thread-Start einen Link auf den PushButton übergibst:
Code: Alles auswählen
FUNCTION EinFenster(oButton)
Local oThread
oThread := Thread():new()
oThread:start({|| EinFensterAuf(oButton)}}
RETURN(.T.)
FUNCTION EinFensterAuf(oButton)
...
oButton:disable()
... viel Code, und ein Event-Loop, dann, am Ende:
oButton:enable()
RETURN(.T.)
Liebe Grüsse aus der Eifel,
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 486
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
Re: Fenster nicht zweimal öffnen
Hallo Georg,
kann ich nachvollziehen, obwohl ich mit dem Thema Threads immer noch etwas im Nebel stochere.
Aber trotzdem danke für die Tipps.
kann ich nachvollziehen, obwohl ich mit dem Thema Threads immer noch etwas im Nebel stochere.
Aber trotzdem danke für die Tipps.
Beste Grüße
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9361
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Fenster nicht zweimal öffnen
Äh. Wenn ein Child-Fenster nur einmal geöffnet werden soll, erzeugt man es modal. Dann hat es diese Eigenschaft automatisch.
Herzlich,
Tom
Tom
- Martin Altmann
- Foren-Administrator
- Beiträge: 16514
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Fenster nicht zweimal öffnen
Tom,
macht aber - je nach Aufgabenstellung - keinen Sinn, weil man dann nicht mehr bei angezeigtem Child-Fenster in das Hauptfenster zurück kommt
Viele Grüße,
Martin
macht aber - je nach Aufgabenstellung - keinen Sinn, weil man dann nicht mehr bei angezeigtem Child-Fenster in das Hauptfenster zurück kommt
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9361
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Fenster nicht zweimal öffnen
Dann sollte die Frage nach der Aufgabenstellung beantwortet werden. Wenn verhindert werden soll, dass das Fenster ein zweites Mal geöffnet werden kann, weil vor jedem weiteren Schritt erst einmal dieser beendet werden muss, dann wäre Modalität das Mittel der Wahl. Wenn es nur darum geht, dass nicht zweimal parallel das gleiche gemacht werden kann, muss mit den hier vorgeschlagenen Mitteln gearbeitet werden. Wobei ich es für kritisch halte, ein Objekt aus einem anderen Thread heraus zu manipulieren (Georgs Vorschlag). Denn dieser andere Thread läuft asynchron. Der Starthread kann vor ihm beendet werden.
Herzlich,
Tom
Tom
- Werner_Bayern
- Der Entwickler von "Deep Thought"
- Beiträge: 2125
- Registriert: Sa, 30. Jan 2010 22:58
- Wohnort: Niederbayern
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 75 Mal
Re: Fenster nicht zweimal öffnen
Servus Wolfgang,
warum nicht einfach so:
warum nicht einfach so:
Code: Alles auswählen
oXbpV:activate := {|uNIL1, uNIL2, self|self:disable(), MIT_OBJ( aMit, oXbpV), self:enable()}
es grüßt
Werner
<when the music is over, turn off the lights!>
Werner
<when the music is over, turn off the lights!>
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 486
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
Re: Fenster nicht zweimal öffnen
Werner,
der PB wird zwar ausgeblendet, wenn ich aber das Fenster, welches mit MIT_OBJ() geöffnet wurde wieder schließe, erscheint der Button nicht mehr ..
der PB wird zwar ausgeblendet, wenn ich aber das Fenster, welches mit MIT_OBJ() geöffnet wurde wieder schließe, erscheint der Button nicht mehr ..
Beste Grüße
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
- Werner_Bayern
- Der Entwickler von "Deep Thought"
- Beiträge: 2125
- Registriert: Sa, 30. Jan 2010 22:58
- Wohnort: Niederbayern
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 75 Mal
Re: Fenster nicht zweimal öffnen
Weil Du in MIT_OBJ() irgendwas damit machst. Brauchst Du aber vermutl. dadurch nicht mehr.
es grüßt
Werner
<when the music is over, turn off the lights!>
Werner
<when the music is over, turn off the lights!>
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 486
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
Re: Fenster nicht zweimal öffnen
stimmt, geht!!
Danke
Danke
Beste Grüße
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: Fenster nicht zweimal öffnen
hi,
schon mal an einen "Schalter" gedacht
schon mal an einen "Schalter" gedacht
Code: Alles auswählen
STATIC lRunning := .F.
IF lRunning = .T.
RETURN
ELSE
lRunning := .T.
// hier der Code
lRunning := .F.
ENDIF
gruss by OHR
Jimmy
Jimmy