Kommt mir bekannt vorRSBasic hat geschrieben: Sonstige:
• Anderes Icon im MessageRequester
WinAPI Library (Snippets) (1163 Beispielcodes)
- 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
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Hallo. Erstmal :
für mich API-"Noob" eine wahre Fundgrube.
Da hab ich versucht dein Programmbeispiel Gadgets->Mouseover auszuprobieren, aber es funktioniert nicht !
Dein Schnipsel ist
Da hab ich versucht dein Programmbeispiel Gadgets->Mouseover auszuprobieren, aber es funktioniert nicht !
Laut MSDN sind es nur 2 Parameter, die diese Funktion erwartet, aber ich kriegs ums umfallen nicht hin.Fehlermeldung : PtInRect() : Falsche Anzahl an Parametern !
Dein Schnipsel ist
Code: Alles auswählen
Procedure Thread()
Repeat
GetWindowRect_(GadgetID(1),re.RECT)
GetCursorPos_(pt.POINT)
If PtInRect_(re,pt\x,pt\y)=1 ; <----- Hier die falsche Anzahl an Parametern
SetGadgetText(2,"MouseOver: Ja")
Else
SetGadgetText(2,"MouseOver: Nein")
EndIf
Delay(100)
ForEver
EndProcedure
If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(0))
ButtonGadget(1,10,10,100,20,"Test-Button",0)
TextGadget(2,10,40,100,20,"",0)
EndIf
CreateThread(@Thread(),0)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
- 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
Der Code enthält 2 Fehler. Zu PtInRect_() siehe:
http://www.purebasic.fr/english/viewtop ... 893#274893
Threadprocedure hat immer einen parameter
http://www.purebasic.fr/english/viewtop ... 893#274893
Threadprocedure hat immer einen parameter
Code: Alles auswählen
Procedure Thread(dummy)
Repeat
GetWindowRect_(GadgetID(1),re.RECT)
GetCursorPos_(pt.POINT)
If PtInRect_(re, pt\y << 32 + pt\x) = 1
SetGadgetText(2,"MouseOver: Ja")
Else
SetGadgetText(2,"MouseOver: Nein")
EndIf
Delay(100)
ForEver
EndProcedure
If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(0))
ButtonGadget(1,10,10,100,20,"Test-Button",0)
TextGadget(2,10,40,100,20,"",0)
EndIf
CreateThread(@Thread(),0)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- 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
Oh, doch, PtInRect_() wurde in PB4.30 geändert und der fehlende Parameteredel hat geschrieben:Da hat sich ueberhaupt nichts geaendert.RSBasic hat geschrieben:@Bisonte
Danke fürs Melden,
in PB 4.20 hat es damals noch funktioniert und auch wegen dem Parameter des Threads, da brauchte man nicht unbedingt einen Parameter.
Aber das hat sich anscheinend geändert^^
einer Threadprocedure wird jetzt auch vom Compiler angemeckert, war aber
schon immer erforderlich (fehlen führte zu merkwürdigen fehlern)
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

thx. Das mit der Parameterübergabe für Threads hatte ich auch schon gemerkt, aber 
Achja und natürlich CreateGadgetList() entfernen
war der schlüsselPtInRect_(re, pt\y << 32 + pt\x)
Achja und natürlich CreateGadgetList() entfernen
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom

