GadgetID bei #PB_Any
GadgetID bei #PB_Any
Hallo ich habe festgestellt das die ID eines Gadgets bei PB Any bei einem Callback ein anderes ist als dass welches das Gadget beim erstellen zurückliefert. Wie kann ich also von dieser Api ID auf die echte ID kommen?
- 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
Code: Alles auswählen
ID = ButtonGadget(#PB_Any, 0,0,0,0,"")
hWnd = GadgetID(ID)
hWnd ermittelt durch GadgetID() ist das Handle für Windows
und ohne #PB_Any
Code: Alles auswählen
hWnd = ButtonGadget(0, 0,0,0,0,"")
dessen erster Wert dem Handle entspricht
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
Noch mal etwas anschaulicher:
Code: Alles auswählen
Structure PB_GadgetStructure
Gadget.l
*vt
UserData.l
OldCallback.l
Daten.l[4]
EndStructure
hwnd = OpenWindow(0,10,10,200,200,"")
CreateGadgetList(hwnd)
*button.PB_GadgetStructure = ButtonGadget(#PB_Any, 0,0,100,20,"")
Repeat
event = WaitWindowEvent()
If event = #PB_Event_Gadget
If EventGadget() = *button
Debug "PBID = " + Str(*button)
Debug "hwnd = " + Str(*button\Gadget)
EndIf
EndIf
Until event = #PB_Event_CloseWindow
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.

Worauf zeigt dieser Pointer, wenn ich keine Structure definiere? Oder andersts-soft hat geschrieben:... Genaugenommen wird der Pointer zu einer GadgetStructure zurückgegeben,
dessen erster Wert dem Handle entspricht
gefragt, kann ich auch ohne zuvor definierter Structure auf diese Daten
zurückgreifen?
Nein, ich habe die Suche nicht benutzt, und deshalb auch nichts dazu gefunden... 

- Tafkadasom2k5
- Beiträge: 1578
- Registriert: 13.08.2005 14:31
- Kontaktdaten:
Wenn du keine Struktur definierst, bzw garnicht nachguckst was in dieser steht, interessiert die Struktuir garnicht. Dashier ist nur eine Möglichkeit, den Inhalt eines Butto-Gadgets sichtbar zu machen.
Also ohne Struktur ist dieses Handle einfach nur ein Handle, und mit dieser Struktur ist es möglich den Inhalt des Buttons auszulesen.
Handle = Pointer der Struktur.
Ohne Struktur -> Nur als Handle zu gebrauchen
Mit Struktur -> Handle als Pointer nutzen, und Daten auslesen
(Ich hoffe du verstehst was ich meine
)
Gr33tz
Tafkadasom2k5
Edit: Der Pointer zeigt auf dieselben Daten, wie als wenn du eine Struktur definiert hättest. Die Struktur hilft sozusagen nur zur Trennung der Daten und dem Auslesen der länge, also wieweit gepeekt werden muss.
Also ohne Struktur ist dieses Handle einfach nur ein Handle, und mit dieser Struktur ist es möglich den Inhalt des Buttons auszulesen.
Handle = Pointer der Struktur.
Ohne Struktur -> Nur als Handle zu gebrauchen
Mit Struktur -> Handle als Pointer nutzen, und Daten auslesen
(Ich hoffe du verstehst was ich meine

Gr33tz
Tafkadasom2k5
Edit: Der Pointer zeigt auf dieselben Daten, wie als wenn du eine Struktur definiert hättest. Die Struktur hilft sozusagen nur zur Trennung der Daten und dem Auslesen der länge, also wieweit gepeekt werden muss.
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Ja, Danke. Hatte ich mir auch so vorgestellt. Aber noch etwas. Woher habt
ihr diese Informationen? Da das ja sicher auch mit Fenstern geht, frage ich
mich, wie die Structure da aussehen muss? Richtig benutzt, kann dass ja
eine Menge Tipparbeit ersparen. Habe ich das in der Hilfe überlesen...
ihr diese Informationen? Da das ja sicher auch mit Fenstern geht, frage ich
mich, wie die Structure da aussehen muss? Richtig benutzt, kann dass ja
eine Menge Tipparbeit ersparen. Habe ich das in der Hilfe überlesen...

Nein, ich habe die Suche nicht benutzt, und deshalb auch nichts dazu gefunden... 

- PureLust
- Beiträge: 1145
- Registriert: 21.07.2005 00:02
- Computerausstattung: Hab aktuell im Grunde nur noch 'nen Lenovo Yoga 2 Pro im Einsatz.
- Wohnort: am schönen Niederrhein
@André:
Da ja die Frage nach den internen PB-Strukturen bereits öfter gestellt wurde, könnte man da nicht mal eine Anfrage an Fred stellen, ob er diese Strukturen nicht evtl. offiziell freigeben und man sie ggfl. sogar mit in die Hilfe aufnehmen könnte?
Oder aber, sie zumindest so ähnlich wie die "PureBasic library descriptor.txt" mit beigelegt würden (was ja z.B. in der v4 schon garnicht mehr der Fall ist)?
Das wäre glaube ich für viele eine große Hilfe, die versuchen PureBasic besser zu verstehen und möglichst effektiv damit zu programmieren.
Dank und Gruß, PureLust.
Da ja die Frage nach den internen PB-Strukturen bereits öfter gestellt wurde, könnte man da nicht mal eine Anfrage an Fred stellen, ob er diese Strukturen nicht evtl. offiziell freigeben und man sie ggfl. sogar mit in die Hilfe aufnehmen könnte?
Oder aber, sie zumindest so ähnlich wie die "PureBasic library descriptor.txt" mit beigelegt würden (was ja z.B. in der v4 schon garnicht mehr der Fall ist)?
Das wäre glaube ich für viele eine große Hilfe, die versuchen PureBasic besser zu verstehen und möglichst effektiv damit zu programmieren.
Dank und Gruß, PureLust.
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
- 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
Die Structure steht in Gadget.h im Librariy-SDK. Ist auch nur im
Zusammenhang von Libraries, die Gadgets erstellen, sinnvoll einsetzbar. In
der Hilfe sind solche Themen deplaziert. Ergänzende Library SDK
Beschreibung wäre natürlich wünschenswert, aber nicht in der normalen Hilfe
Zusammenhang von Libraries, die Gadgets erstellen, sinnvoll einsetzbar. In
der Hilfe sind solche Themen deplaziert. Ergänzende Library SDK
Beschreibung wäre natürlich wünschenswert, aber nicht in der normalen Hilfe
Code: Alles auswählen
RunProgram("notepad", #PB_Compiler_Home + "Library SDK\LccWin32\SampleGadget\Gadget.h", "")
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.

- PureLust
- Beiträge: 1145
- Registriert: 21.07.2005 00:02
- Computerausstattung: Hab aktuell im Grunde nur noch 'nen Lenovo Yoga 2 Pro im Einsatz.
- Wohnort: am schönen Niederrhein
@André:
Vielen Dank. Ich glaube, sowas könnte einigen interessierten PB'lern dabei helfen, PB noch besser zu verstehen und noch bessere Programme damit zu erstellen.
Vielen Dank. Ich glaube, sowas könnte einigen interessierten PB'lern dabei helfen, PB noch besser zu verstehen und noch bessere Programme damit zu erstellen.

[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)