Templates by BIGtheme NET
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
  • Seite:
  • 1
  • 2

THEMA:

Fenster "obenauf" verschwindet nach hinten 13 Sep 2021 14:08 #1

  • AbsoluteFosback3
  • Offline
  • Gold Boarder
  • Gold Boarder
  • Beiträge: 209
  • Dank erhalten: 117
Ein Fenster, das immer sichtbar sein soll, kann man mit der Option "obenauf" nach oben bringen.
Das erste mal wo mir das passiert ist hatte ich mich gewundert: Nanu, hatte ich das Pgm noch nicht gestartet? Startete es nochmal und merkte erst später, dass es jetzt doppelt da war, denn das Fenster das eigentlich obenauf sein sollte hatte sich nach hinten verkrümelt. Jetzt weiß ich es, dass das passieren kann und schiebe die anderen Fenster beiseite, das Fenster angeklickt und jetzt die anderen Fenster wieder an die richtige Position geschoben und das Fenster das obenauf sein sollte bleibt wieder oben.
Unter welchen Umständen das Fenster nach hinten wandert wissen die Götter, denn das passiert nicht jeden Tag und ich starte doch eigentlich immer die gleichen Programme.
(das gilt für cX4 und cX5)
Folgende Benutzer bedankten sich: Soko

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Fenster "obenauf" verschwindet nach hinten 13 Sep 2021 14:37 #2

  • Stefan
  • Stefans Avatar
  • Offline
  • Administrator
  • Administrator
  • Beiträge: 1228
  • Dank erhalten: 1756
Hallo!
Diese Option bringt das Fenster nach vorne und hält es normalerweise dort, sofern das nicht beim nächsten "Anzeige-Fenster"-Befehl wieder abgeschaltet wird.
Andere Gründe für ein Zurücksetzen dieser Anweisung kenne ich nicht - wenn du das mal reproduziert bekommst, immer her damit!.

In der nächsten Version ist die Option TriState (Ja/Nein/Beibehalten), damit man sie nicht versehentlich wieder abschaltet.
Auch wird die Option dann in der Skriptzeile angezeigt.

Gruß
Stefan
Folgende Benutzer bedankten sich: Soko, daywalker

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Letzte Änderung: von Stefan.

cX.Fenster(n).ImmerOben verschwindet nach hinten 25 Sep 2021 09:54 #3

  • Soko
  • Sokos Avatar
  • Offline
  • Platinum Boarder
  • Platinum Boarder
  • Beiträge: 536
  • Dank erhalten: 439
Hallo,

obenauf funktioniert bei mir
.Immeroben  aber wohl noch nicht...
Btw. Stefan, warum heißt es bei Fenster nicht auch .obenauf?
Ciao,
Joachim

cX4Web cX4Web Code

Was ist das?

1 *** Fenster ImmerOben
2 Starte calc.exe
3 Anzeige-Fenster 'Testfenster1', ID='Testfenster1'
4 Anzeige-Fenster 'Testfenster2', ID='Testfenster2'
5 Anzeige-Fenster 'Testfenster3', ID='Testfenster3'
6 Setze in [cX.Fenster(Testfenster2).ImmerOben]: '1'
7 Warte Endlos (Warten auf zu behandelnde Ereignisse)
8 :: Anzeige(Testfenster*)_Schließen
9 Beende Skript

cX4Web Code: Einfach anklicken zum Kopieren und in click.EXE 5.0 einfügen


  (9 Zeilen, cX 5.0.8.4)

 

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

cX.Fenster(n).ImmerOben verschwindet nach hinten 25 Sep 2021 13:19 #4

  • Stefan
  • Stefans Avatar
  • Offline
  • Administrator
  • Administrator
  • Beiträge: 1228
  • Dank erhalten: 1756
Hallo, Joachim!

Da nur 1 Fenster "oben auf" sein kann, kommt das System durcheinander, weil du ja überall das Attribut gesetzt hast.
Wenn du das bei den Fenstern selbst weglässt, müsste das über den Setze-Befehl klappen (habe das aber nochmals überarbeitet, damit das auch mit fremden Fenstern sicherer funktioniert).

Und das Fenster.ImmerOben war schon in cX4 so - da ändere ich ungern was...

Liebe Grüße
Stefan

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

cX.Fenster(n).ImmerOben verschwindet nach hinten 25 Sep 2021 13:53 #5

  • Soko
  • Sokos Avatar
  • Offline
  • Platinum Boarder
  • Platinum Boarder
  • Beiträge: 536
  • Dank erhalten: 439
Hallo Stefan,

ja dann klappt es.
Wollte nur darauf hinweisen, dass es nicht geht, wenn ObenAuf in mehreren Fenstern aktiviert ist.
Dann vielleicht ein Hinweis in der Hilfe, dass ObenAuf und auch ImmerOben erst zurückgesetzt werden sollte, bevor es erneut benutzt wird.
Eine abfrage, ist schon ein Fenster oben, dies dann zurücksetzen und das neue nach oben setzzen get nicht?
Wobei ich zugeben muss, dass ich diese Funktion bislang nur äußerst Sparsam eingesetzt habe...

Btw. ImmerOben scheint da offensichtlich nicht ganz so wählerisch zu sein (Siehe Beispiel)

> war schon in cX4 so - da ändere ich ungern was...
Kein Problem...

Ciao,
Joachim

cX4Web cX4Web Code

Was ist das?

1 *** Fenster
2 Fenster setzen 'Rechner*' Schließen
3 Starte calc.exe
4 Anzeige-Fenster 'Nicht definiert', ID='Testfenster1', X=10, Y=10
5 Eingabe-Element Text='normal' (ID='Eingabe_1', Zielfenster='Testfenster1')
6 Anzeige-Fenster 'Kein', ID='Testfenster2', X=20, Y=20, Rahmen: kein
7 Anzeige-Fenster 'Einfach', ID='Testfenster3', X=30, Y=30, Rahmen: einfach
8 Warte Pause, Dauer 1
9 Setze in [cX.Fenster(Rechner*).ImmerOben]: '1'
10 Warte Pause, Dauer 1
11 Setze in [cX.Fenster(Nicht*).ImmerOben]: '1'
12 Warte Pause, Dauer 1
13 Setze in [cX.Fenster(Rechner*).ImmerOben]: '1'
14 Warte Pause, Dauer 1
15 Anzeige-Fenster 'Nicht definiert', ID='Testfenster1', X=10, Y=10
16 Eingabe-Element Text='Obenauf' (ID='Eingabe_1', Zielfenster='Testfenster1')
17 Warte Pause, Dauer 1
18 Setze in [cX.Fenster(Rechner*).ImmerOben]: '1'
19 Warte Pause, Dauer 1
20 Setze in [cX.Fenster(Nicht*).ImmerOben]: '0'
...

cX4Web Code: Einfach anklicken zum Kopieren und in click.EXE 5.0 einfügen


  (26 Zeilen, cX 5.0.8.4)

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Letzte Änderung: von Soko.

cX.Fenster(n).ImmerOben verschwindet nach hinten 25 Sep 2021 15:05 #6

  • Stefan
  • Stefans Avatar
  • Offline
  • Administrator
  • Administrator
  • Beiträge: 1228
  • Dank erhalten: 1756
Hallo, Joachim!
Oha - da quälst du cX und Windows ja richtig...!

Das Dumme daran ist halt, dass ich wenig Kontrolle über diesen TopMost-Zustand habe. Beim Anzeige-Befehl setze ich die .TopMost-Eigenschaft, wenn der Schalter nicht schwarz (=undefiniert) ist, bei cX.Fenster sende ich die HWND_TOPMOST-Nachricht.
Wie Windows dann damit umgeht, da bleibt mir nur zuzusehen... Ich weiß momentan auch gar nicht, ob/wie ich das aktuelle "TopMost"-Fenster finden könnte.

Ich habe nun der Vollständigkeit halber noch cX.Anzeige().ImmerOben nachgerüstet, damit man für eigene Fenster einfach wie gewohnt die ID angeben kann und nicht über den Fenstertitel gehen muss, wo dann eben diese .TopMost-Eigenschaft gesetzt wird. cX.Fenster().ImmerOben muss natürlich weiterhin für den Taschenrechner (eben fremde Fenster) verwendet werden.
Vielleicht macht das die Sache ja etwas einfacher zu verwenden und (wer weiß?) auch systematischer...

Liebe Grüße
Stefan

 
Folgende Benutzer bedankten sich: Soko, MiB

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Seite:
  • 1
  • 2

Community

Wir benutzen Cookies

Wir nutzen Cookies auf unserer Website. Diese Cookies sind essenziell für den Betrieb dieser Website. Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.

Sie sind noch nicht Mitglied unserer Community? Melden Sie sich jetzt an!

Anmelden