Hallo...
Wie kann man (am besten mit PB Nativen Mitteln), herausbekommen, auf welchem
Fenster sich ein Gadget befindet ?
Unter Windows bekomme ich das mit GetParent_ hin, aber bei den anderen Systemen
stehe ich leider im Dunkeln.
Könnte mir jemand meine Wissenslücke füllen ?
Edith sagt : Sinn und Zweck ist es, einige WindowsAPI Funktionen für andere OS umzubauen...
Fenster eines Gadgets ermitteln (crossplatform)
Fenster eines Gadgets ermitteln (crossplatform)
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
Re: Fenster eines Gadgets ermitteln (crossplatform)
Code: Alles auswählen
CompilerIf #PB_Compiler_OS = #PB_OS_Windows
Import ""
CompilerElse
ImportC ""
CompilerEndIf
PB_Object_GetThreadMemory(MemoryID)
PB_Gadget_Globals.i
EndImport
Procedure GetGadgetParent()
Protected *Globals = PB_Object_GetThreadMemory(PB_Gadget_Globals)
ProcedureReturn PeekI(*Globals)
EndProcedure
Thomas
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.

Re: Fenster eines Gadgets ermitteln (crossplatform)
Vielen Dank.
Aber zwei Fragen hab ich noch....
1. Gibt es dann die WindowID oder die PB Interne Id ?
2. Woher weisst Du das ?
Also damit meine ich, woher kennst du die Import Geschichten : wie die Funktionen heissen,
was für Parameter und wofür sie gut sind ?
Das hab ich schon öfter gesehen, und war immer wieder verblüfft...
Aber zwei Fragen hab ich noch....
1. Gibt es dann die WindowID oder die PB Interne Id ?
2. Woher weisst Du das ?
Also damit meine ich, woher kennst du die Import Geschichten : wie die Funktionen heissen,
was für Parameter und wofür sie gut sind ?
Das hab ich schon öfter gesehen, und war immer wieder verblüfft...
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
Re: Fenster eines Gadgets ermitteln (crossplatform)
zu 1: Gibt das OS Handel zurück.
zu 2: Steht alles im SDK sowie in den mitgelieferten Libs
(weiteres z.B. http://www.realsource.de/index.php/down ... or-pb-libs )
zu 2: Steht alles im SDK sowie in den mitgelieferten Libs
(weiteres z.B. http://www.realsource.de/index.php/down ... or-pb-libs )
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.

Re: Fenster eines Gadgets ermitteln (crossplatform)
Wieder Danke.
Ok, die Fragerei hört nicht auf
Das PBLIBTool zeigt mir die Namen diverser Funktionen an... aber mit dem sil.exe
bekomm ich, ausser mit dem beiliegendem Bild zu sehendem Suchstring, keine Ausgabe.
Wobei ich mich auch noch frage... SDK. Ist damit der Ordner im PB-Installationsverzeichnis
gemeint, oder ein extra herunterzuladenes Teil ?
Weil im PB-SDK Ordner finde ich so im groben nichts, womit man auf Parameter einzelner,
nicht öffentlichen PB-Libfunktionen schliessen könnte. (oder schubs mich mal drauf
)
Ok, die Fragerei hört nicht auf

Das PBLIBTool zeigt mir die Namen diverser Funktionen an... aber mit dem sil.exe
bekomm ich, ausser mit dem beiliegendem Bild zu sehendem Suchstring, keine Ausgabe.
Wobei ich mich auch noch frage... SDK. Ist damit der Ordner im PB-Installationsverzeichnis
gemeint, oder ein extra herunterzuladenes Teil ?
Weil im PB-SDK Ordner finde ich so im groben nichts, womit man auf Parameter einzelner,
nicht öffentlichen PB-Libfunktionen schliessen könnte. (oder schubs mich mal drauf

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
Re: Fenster eines Gadgets ermitteln (crossplatform)
SDK - Ordner ist richtig, da sind eine Menge Informationen enthalten, wenn man es mal richtig
durchackert und die notwendigen C-Grundkenntnisse hat. Die Parameter zu ermitteln ist mehr
eine Mischung aus Logik und Try- & Error. Die meisten Dinge hat edel der hallodri entdeckt
durchackert und die notwendigen C-Grundkenntnisse hat. Die Parameter zu ermitteln ist mehr
eine Mischung aus Logik und Try- & Error. Die meisten Dinge hat edel der hallodri entdeckt

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.

Re: Fenster eines Gadgets ermitteln (crossplatform)
Was ich gerade entdeckt habe:
Die Funktion GetGadgetParent() gibt nicht die WindowID des Fensters zurück,
auf dem es sich befindet, sondern die aktuelle GadgetListe.
Also wenn ich mit UseGadgetList() auf einem anderen Fenster Gadgets erstelle,
und nicht wieder mit UseGadgetList() zurückschwenke, wird immer noch das 2.
Fenster mit WindowID ausgegeben.
Sollte man diese Funktion des Verständnisses wegen besser umbenennen in
GetWindowGadgetList() ?
Also beim Erstellen eines Gadgets ist das vollkommen ausreichend. Es muss
nur die ID mit dem Gadget gespeichert werden.
Der Name ist halt nur verwirrend.
Die Funktion GetGadgetParent() gibt nicht die WindowID des Fensters zurück,
auf dem es sich befindet, sondern die aktuelle GadgetListe.
Also wenn ich mit UseGadgetList() auf einem anderen Fenster Gadgets erstelle,
und nicht wieder mit UseGadgetList() zurückschwenke, wird immer noch das 2.
Fenster mit WindowID ausgegeben.
Sollte man diese Funktion des Verständnisses wegen besser umbenennen in
GetWindowGadgetList() ?
Also beim Erstellen eines Gadgets ist das vollkommen ausreichend. Es muss
nur die ID mit dem Gadget gespeichert werden.
Der Name ist halt nur verwirrend.
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