Sanduhr nur auf Fenster sichtbar, nicht auf Buttons usw.

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Sanduhr nur auf Fenster sichtbar, nicht auf Buttons usw.

Beitrag von Delle »

Hallo,

ich habe ein Fenster mit Buttons, Webgadgets, Containern usw.

Ich setze bei einer Berechung den Mauszeiger als Sanduhr:

SetClassLong_(WindowID(0),#GCL_HCURSOR,LoadCursor_(0,#IDC_WAIT))

Nach der Berechnung wieder auf:

SetClassLong_(WindowID(0),#GCL_HCURSOR,LoadCursor_(0,#IDC_ARROW))

Problem: Die Sanduhr ist zwar sichtbar auf dem Fenster, allerdings NICHT wenn man über Buttons, Webgadgets oder Container fährt.

Gibt es dafür irgendeinen Grund?

Oder muss ich jetzt jedem Gadget extra nochmal die Sanduhr zuordnen?

Thanks,
Delle
PB 6.21 | Win 11
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

... ich fürchte ja ...

warum machst du das nicht irgendwie anders?
der Mauszeiger als Sanduhr soll ja eigentlich anzeigen, dass dein Fenster nicht reagiert.
also, wenn die Buttons reagieren können, ist die Sanduhr doch eigentlich fehl am Platze...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Beitrag von Delle »

Also während der Berechnung sollen die Buttons natürlich nicht funktionieren, lassen sich auch nicht anklicken weil in einer Berechnungsschleife.

Mich wunderts nur... vielleicht muss ich einen unsichtbaren Container drüberlegen und dem die Sanduhr zuweisen hm?
PB 6.21 | Win 11
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Du änderst ja nur die Fensterklasse des Hauptfensters, aber das sollte ja
auch genügen, da Du die Buttons usw. sowieso disablen solltest, wenn sie
nicht funktionieren können, somit ist der Cursor dort eigentlich egal.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

also, wenn dein programm in einer berechnungsschleife steckt und kein (Wait)WindowEvent() ausgeführt wird, sollte die Sanduhr eigentlich automatisch auftauchen....
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Beitrag von Delle »

Naja Problem ist, dass die Buttons und Webgadgets das Programm zu 90% ausfüllen - die Sanduhr ist auf den "freien Stellen" des eigentlichen Fensters also kaum zu sehen :)
PB 6.21 | Win 11
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Beitrag von Delle »

Kaeru Gaman hat geschrieben:also, wenn dein programm in einer berechnungsschleife steckt und kein (Wait)WindowEvent() ausgeführt wird, sollte die Sanduhr eigentlich automatisch auftauchen....
Nein, es sind schon mehrere Schritt wo auch auf dem einen Container was aktualisiert werden muss. Das dauert so 10 Sekunden bis wieder zur eigentlichen Schleife (mit den Maus/Button-Abfragen) zurückgekehrt wird.
PB 6.21 | Win 11
Benutzeravatar
gnasen
Beiträge: 578
Registriert: 01.08.2007 14:28
Computerausstattung: PB 4.60

Beitrag von gnasen »

du könntest den auch im Thread nebenbei rattern lassen und weiterhin die Hauptschleife nutzen um zB einen schönen Fortschrittsbalken etc anzuzeigen.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Wenn die Sanduhr von alleine kommt, ist es ein totes Fenster, das sollte man
unbedingt vermeiden :wink:
Ich meine im CodeArchiv ist ein Code um den Cursor des Fensters zu
ändern, statt den Cursor der Classe. Mußte mal bitte selber suchen.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ts-soft hat geschrieben:Wenn die Sanduhr von alleine kommt, ist es ein totes Fenster, das sollte man
unbedingt vermeiden :wink:
ja nee, is schon klar... wunderte mich nur, dass er sagte, die buttons sind eh nich aktiv..

@Delle

lass doch ein imagegadget ne sanduhr anzeigen...
den cursor als sanduhr find ich nich so dolle, weil wie gesagt, dann würde ich davon ausgehen, dass das programm hängt.
außerdem haben nicht alle ne schön animierte sanduhr, gibt ja auch verschiedene cursor-profile.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten