Leeres Gadget
Leeres Gadget
Hi,
kennt jemand eine Möglichkeit (ohne API!) ein Gadget so zu erstellen oder zu verändern, dass es keinerlei Inhalt anzeigt? Natürlich, ohne HideGadget... oder den hidden-Style. Der scheidet aus verschiedenen Gründen aus.
Keinerlei Inhalt bedeutet hier: Kein Pixel wird gesetzt, also komplett transparent.
kennt jemand eine Möglichkeit (ohne API!) ein Gadget so zu erstellen oder zu verändern, dass es keinerlei Inhalt anzeigt? Natürlich, ohne HideGadget... oder den hidden-Style. Der scheidet aus verschiedenen Gründen aus.
Keinerlei Inhalt bedeutet hier: Kein Pixel wird gesetzt, also komplett transparent.
Gruß, Frank
Re: Leeres Gadget
Du kannst einen ContainerGadget mit der Größe "0,0" erstellen. Da dieses Gadget ohne Flag borderless ist, ist es nicht sichtbar, egal was sich im ContainerGadget befindet. Reicht dir das?
Re: Leeres Gadget
Code: Alles auswählen
Enumeration
#Window
#Gadget
EndEnumeration
OpenWindow(#Window, 0, 0, 800, 600, "WindowTitle", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
StringGadget(#Gadget, 0, -100, 400, 20, "Hallo Welt!")
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindowAber ich würde das nicht zu sehende Gadget erst garnicht erstellen, das wäre wohl die einfachste Variante.
Wenn du also nicht HideGadget verwenden willst (warum auch immer) wozu erstellst du überhaupt das Gadget?
Um Inhalte zu speichern kannst du Variablen oder Speicherblöcke nutzen
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: Leeres Gadget
Nein leider nicht. Ich vergaß, die Größe sollte real sein, sagen wir mal z.B. 160x120 Pixel.
Das ganze soll eine Art übergeordnetes Gadget für weitere normale (Child-)Gadgets sein, darf aber nicht sichtbar und auch nicht hidden sein. Es muss auch ein richtiges Gadget sein, das mit PB erstellt wurde, ohne API also.
Hab selber bislang leider keine Möglichkeit gefunden.
Das ganze soll eine Art übergeordnetes Gadget für weitere normale (Child-)Gadgets sein, darf aber nicht sichtbar und auch nicht hidden sein. Es muss auch ein richtiges Gadget sein, das mit PB erstellt wurde, ohne API also.
Hab selber bislang leider keine Möglichkeit gefunden.
Gruß, Frank
Re: Leeres Gadget
Soll das vielleicht ein Overlay-Gadget sein? Also ein Gadget, welches auf ein anderes Gadget positioniert werden soll?
Vielleicht sagst du uns, was du vor hast.
Vielleicht sagst du uns, was du vor hast.
Re: Leeres Gadget
Wenn du ein ContainerGadget brauchst, warum nimmst du dann nicht das ContainerGadget mit 160x120 ?
Das ist nicht sichtbar und ist dafür auch gedacht.
Wenn du nicht so um den heißen Brei reden würdest, könnte dir man vielleicht besser helfen.
Es ergibt für mich keinen Sinn, zB ein ListViewGadget zu erstellen, welches aber nicht sichbar ist
Das ist nicht sichtbar und ist dafür auch gedacht.
Wenn du nicht so um den heißen Brei reden würdest, könnte dir man vielleicht besser helfen.
Es ergibt für mich keinen Sinn, zB ein ListViewGadget zu erstellen, welches aber nicht sichbar ist
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: Leeres Gadget
Ich bin nur an dieser speziellen Lösung interessiert, die ich oben genau beschrieben habe. Etwas Alternatives, Selbstgemaltes oder Controls auf Basis einer eigenen Class (damit wäre es sehr einfach) scheiden aber leider aus mehreren unterschiedlichen Gründen aus, damit erübricht sich eine weitere Erklärung, bzw. scheiden Alternativen - die ich ansonsten immer gerne entgegen nehme, an dieser Stelle aber nicht funktionieren werden - von vornherein aus.
Ich brauche nicht zwinged ein Containergadget, irgendein Gadget reicht mir, bei dem man z.B. per Subclassing alle Ausgaben unterdrückt.
Natürlich ist eine farbige Fläche sichtbar, spätestens, wenn der Hintergrund bunt ist; und das ist er.Wenn du ein ContainerGadget brauchst, warum nimmst du dann nicht das ContainerGadget mit 160x120 ?
Das ist nicht sichtbar und ist dafür auch gedacht.
Ich brauche nicht zwinged ein Containergadget, irgendein Gadget reicht mir, bei dem man z.B. per Subclassing alle Ausgaben unterdrückt.
Für mich aber schon. Kennst du dazu eine Möglichkeit?Es ergibt für mich keinen Sinn, zB ein ListViewGadget zu erstellen, welches aber nicht sichbar ist
Gruß, Frank
Re: Leeres Gadget
Die von PB bereitgestellten Gadgets sind alle nicht transparent, daher wird es ohne API schwierig.
Mit API kannst du beispielsweise dafür sorgen, dass ein TextGadget transparent ist, aber ohne API ist das so nicht möglich.
\\Edit:
Kannst du mir erklären, warum du kein HideGadget() nutzen möchtest?
\\Edit2:
Und was ist, wenn du dein "Overlay"-Gadget hinter deinem Gadget erstellst, damit es überdeckt wird, aber dennoch in dieser Position vorhanden ist?
Mit API kannst du beispielsweise dafür sorgen, dass ein TextGadget transparent ist, aber ohne API ist das so nicht möglich.
\\Edit:
Kannst du mir erklären, warum du kein HideGadget() nutzen möchtest?
\\Edit2:
Und was ist, wenn du dein "Overlay"-Gadget hinter deinem Gadget erstellst, damit es überdeckt wird, aber dennoch in dieser Position vorhanden ist?
Re: Leeres Gadget
API geht nur nicht bei der reinen Gadget-Erstellung. Ist es erzeugt, kann ich durchaus auf API zurückgreifen.RSBasic hat geschrieben:Die von PB bereitgestellten Gadgets sind alle nicht transparent, daher wird es ohne API schwierig.
Mit API kannst du beispielsweise dafür sorgen, dass ein TextGadget transparent ist, aber ohne API ist das so nicht möglich.
\\Edit:
Kannst du mir erklären, warum du kein HideGadget() nutzen möchtest?
\\Edit2:
Und was ist, wenn du dein "Overlay"-Gadget hinter deinem Gadget erstellst, damit es überdeckt wird, aber dennoch in dieser Position vorhanden ist?
Eine tolle Möglichkeit ist die API LockWindowUpdate(), die unterdrückt ein Neuzeichnen. Leider aber nicht, wenn das ganze Fenster manuell neugezeichnet wird, was manchmal der Fall ist.
Zu 1.: Ja, aktuell hidden-Gadgets bedeuten in der Anwendung schon ein Nicht-Vorhandensein. Die Anwendung (ein visueller Designer übrigens) ignoriert diese in manchen Situationen.
Zu 2.: Das geht nicht, weil das unsichtbare Gadget mehrere Gadget binden soll. D.H., verschiebe ich das Unsichtbare, sollen alle seine Childs mitwandern, wie bei normalen Parents üblich.
Gruß, Frank
Re: Leeres Gadget
Ah ein VD, ich habs geahnt. Für PB oder für eine andere Programmiersprache? Ich hoffe, für eine andere Sprache.
Und was ist, wenn du jedes Gadget, welches erstellt werden soll, automatisch in einem ContainerGadget (+2px Größe) unterbringst? Dann hättest du einen unsichtbaren Rahmen, den du anfassen kannst.
Oder die Gadgets, die du in Gruppen verschieben möchtest, in einem ContainerGadget plazierst.
Ansonsten hätte ich eigentlich gesagt, dass du einfach ein transparentes Overlay-Gadget/-Fenster bei MouseHover drauflegst, damit du das unterliegende Gadget verschieben oder in der Größe ändern kannst.
Btw: Es gibt auch einfach die Möglichkeit, das Gadget unter der Maus zu ermitteln.
Und was ist, wenn du jedes Gadget, welches erstellt werden soll, automatisch in einem ContainerGadget (+2px Größe) unterbringst? Dann hättest du einen unsichtbaren Rahmen, den du anfassen kannst.
Oder die Gadgets, die du in Gruppen verschieben möchtest, in einem ContainerGadget plazierst.
Ansonsten hätte ich eigentlich gesagt, dass du einfach ein transparentes Overlay-Gadget/-Fenster bei MouseHover drauflegst, damit du das unterliegende Gadget verschieben oder in der Größe ändern kannst.
Btw: Es gibt auch einfach die Möglichkeit, das Gadget unter der Maus zu ermitteln.

