Seite 1 von 1
Fenster eines Gadgets ermitteln (crossplatform)
Verfasst: 30.11.2011 13:31
von Bisonte
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...
Re: Fenster eines Gadgets ermitteln (crossplatform)
Verfasst: 30.11.2011 13:45
von ts-soft
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
Gruß
Thomas
Re: Fenster eines Gadgets ermitteln (crossplatform)
Verfasst: 30.11.2011 14:03
von Bisonte
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...
Re: Fenster eines Gadgets ermitteln (crossplatform)
Verfasst: 30.11.2011 14:13
von ts-soft
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 )
Re: Fenster eines Gadgets ermitteln (crossplatform)
Verfasst: 30.11.2011 15:00
von Bisonte
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

)
Re: Fenster eines Gadgets ermitteln (crossplatform)
Verfasst: 30.11.2011 15:11
von ts-soft
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

Re: Fenster eines Gadgets ermitteln (crossplatform)
Verfasst: 10.12.2011 15:03
von Bisonte
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.