Sanduhr nur auf Fenster sichtbar, nicht auf Buttons usw.
Re: Sanduhr nur auf Fenster sichtbar, nicht auf Buttons usw.
Genau, die Sanduhr ist auch nur dazu gedacht, wenige Sekunden zu überbrücken. Dauert es wissentlich länger, sollte man wirklich eine andere Lösung finden.
Gruß, Frank
- Falko
- Admin
- Beiträge: 3535
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten:
Re: Sanduhr nur auf Fenster sichtbar, nicht auf Buttons usw.
Ist zwar nicht die beste Lösung, aber ich würde es z.B. so probieren, damit die IF-Anweisung auch
darauf reagieren kann.
darauf reagieren kann.
Code: Alles auswählen
If OpenWindow(0, 0, 0, 240, 110, "Änderung des Cursors", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ButtonGadget(0, 10, 10, 115, 90, "Sanduhr-Cursor über diesem ButtonGadget einschalten", #PB_Button_MultiLine)
HourGlassCursor = LoadCursor_(0, #IDC_WAIT)
SetClassLong_(WindowID(0),#GCL_HCURSOR, HourGlassCursor)
Repeat
WindowEvent = WaitWindowEvent()
Select WindowEvent
Case #PB_Event_Gadget
If EventGadget() = 0
If ChangeCursorAboveGadget
ChangeCursorAboveGadget = #False
SetGadgetText(0, "Sanduhr-Cursor über diesem ButtonGadget einschalten")
Else
ChangeCursorAboveGadget = #True
SetGadgetText(0, "Sanduhr-Cursor über diesem ButtonGadget ausschalten")
EndIf
EndIf
EndSelect
If ChangeCursorAboveGadget
GetCursorPos_(CursorPos.POINT)
MapWindowPoints_(0, WindowID(0), @CursorPos, 1)
If ChildWindowFromPoint_(WindowID(0), CursorPos) <= GadgetID(0)
SetCursor_(HourGlassCursor)
EndIf
EndIf
Until WindowEvent = #PB_Event_CloseWindow
DestroyCursor_(HourGlassCursor)
EndIf
Re: Sanduhr nur auf Fenster sichtbar, nicht auf Buttons usw.
@Falko
Den Code hatten wir schon: http://www.purebasic.fr/german/viewtopi ... 50#p210250
Und ob "= GadgetID(0)" oder "<= GadgetID(0)" spielt keine Rolle, da wir uns auf den Code von Frabbing beziehen und nicht von Shardik.
Den Code hatten wir schon: http://www.purebasic.fr/german/viewtopi ... 50#p210250
Und ob "= GadgetID(0)" oder "<= GadgetID(0)" spielt keine Rolle, da wir uns auf den Code von Frabbing beziehen und nicht von Shardik.

- Falko
- Admin
- Beiträge: 3535
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten:
Re: Sanduhr nur auf Fenster sichtbar, nicht auf Buttons usw.
Welchen Code von Frabbing?RSBasic hat geschrieben:...da wir uns auf den Code von Frabbing beziehen und nicht von Shardik
Sorry, für den netten Versuch. Jetzt sehe ich, das auf Buttons der Pausenring nicht gewünscht ist.

Gruß, Falko
Re: Sanduhr nur auf Fenster sichtbar, nicht auf Buttons usw.
Einfach ein Beitrag weiter runter scrollen: http://www.purebasic.fr/german/viewtopi ... 02#p290902
Darum gehts die ganze Zeit. Ist ja jetzt sowieso erledigt, da wir jetzt wissen, wozu das ganze gut sein soll.
Der andere Code, den Shardik damals im Jahre 2008 vorgeschlagen hat, funktioniert ja auch vorher schon.
Darum gehts die ganze Zeit. Ist ja jetzt sowieso erledigt, da wir jetzt wissen, wozu das ganze gut sein soll.
Der andere Code, den Shardik damals im Jahre 2008 vorgeschlagen hat, funktioniert ja auch vorher schon.

- Falko
- Admin
- Beiträge: 3535
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten:
Re: Sanduhr nur auf Fenster sichtbar, nicht auf Buttons usw.
RSBasic hat geschrieben:Das funktioniert bei mir auch nicht.ts-soft hat geschrieben:Frabbing hat geschrieben:Poste mal einen Mini-Code dazuCode: Alles auswählen
OpenWindow(0, #PB_Ignore, #PB_Ignore, 640, 480, "minicode") SetCursor_(LoadCursor_(0, #IDC_WAIT)) Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
Versuchs damit:Code: Alles auswählen
EnableExplicit Define EventID If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) SetClassLongPtr_(WindowID(0),#GCL_HCURSOR, LoadCursor_(0, #IDC_WAIT)) Repeat EventID=WaitWindowEvent() If EventID = #PB_Event_CloseWindow End EndIf ForEver EndIf
Hier noch etwas simpler, auch wenn RSBasic hier alles gelöst hat

Code: Alles auswählen
OpenWindow(0, #PB_Ignore, #PB_Ignore, 640, 480, "minicode")
hcursor.l = LoadCursor_(0,#IDC_WAIT)
holdcursor.l = SetCursor_(hcursor)
Delay(2000)
retval = SetCursor_(holdcursor)
hcursor = LoadCursor_(0,#IDC_ARROW)
holdcursor = SetCursor_(hcursor)
Delay(2000)
retval = SetCursor_(holdcursor)
hcursor = LoadCursor_(0,#IDC_CROSS )
holdcursor = SetCursor_(hcursor)
Delay(2000)
retval = SetCursor_(holdcursor)
Re: Sanduhr nur auf Fenster sichtbar, nicht auf Buttons usw.
Wieso simpler? Was spricht gegen meine Einzeilen-Lösung? 

Gruß, Frank
Re: Sanduhr nur auf Fenster sichtbar, nicht auf Buttons usw.
Nö, das habe ich nicht. Mein Code auf Seite 3, den du zitiert hast, benutzt ja nen anderen API-Befehl und das war ja hier nicht gefragt.Falko hat geschrieben:auch wenn RSBasic hier alles gelöst hat![]()


- Falko
- Admin
- Beiträge: 3535
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten:
Re: Sanduhr nur auf Fenster sichtbar, nicht auf Buttons usw.
Ich habe ja auch nur meine Meinung vertreten
Da bei mir der alte Code von Shardik nicht lief, hatte ich den
angepasst. Denn die API ChildWindowFromPoint ist wohl in ihren Parametern
geändert worden, oder?
Der Einzeiler ist natürlich die simpelste Form.
Aber wie man sieht, viele Wege führen nach Rom.
Gruß, Falko

Da bei mir der alte Code von Shardik nicht lief, hatte ich den
angepasst. Denn die API ChildWindowFromPoint ist wohl in ihren Parametern
geändert worden, oder?
Der Einzeiler ist natürlich die simpelste Form.

Aber wie man sieht, viele Wege führen nach Rom.

Gruß, Falko
Re: Sanduhr nur auf Fenster sichtbar, nicht auf Buttons usw.
Nein. Man muss nur beachten, dass der zweite Parameter kein Zeiger auf eine Struktur ist, sondern die Struktur selbst. Sind also drei Parameter.Denn die API ChildWindowFromPoint ist wohl in ihren Parametern
geändert worden, oder?
Das ist eher untypisch.
Gruß, Frank