ListIconGadget aktives Element/Eintrag (SetGadgetState)
-
- Beiträge: 35
- Registriert: 24.09.2009 13:31
- Wohnort: München
ListIconGadget aktives Element/Eintrag (SetGadgetState)
Hallo zusammen,
so siehts aus:
In meinem ListIconGadget kann ich Einträge markieren und auf Wunsch entfernen oder bearbeiten. Daraus ergibt sich der Umstand, daß die Liste nach dieser Veränderung gelöscht und neu geschrieben werden muß. (Der "Remove" Befehl bringt mich an dieser Stelle nicht weiter.)
Problem:
Wenn die Liste gelöscht und neu geschrieben wird, verliere ich die Markierung des aktiven Elementes. Mit "SetgadgetItemState" oder "SetGadgetState" kann ich zwar die Markierung wieder herstellen, aber ab dem Zeitpunkt nimmt mein Programm keine Eingaben mehr an. Es scheint als wird der Fokus und sämtliche Eingaben auf einen toten Punkt geschoben. Das Programm läuft, ist aber für den Nutzer faktisch tot.
"SetGadgetItemState" halte ich für einen wichtigen Befehl den ich noch öfter brauchen werde. Kann mir bitte jemand erklären was mit diesem Befehl ausgeführt wird, und wie ich mein Problem lösen kann. Die PB-Hilfe, welche mir verät, daß damit ein Eintrag markiert weden kann, bringt mich hier nicht weiter!
Gruß
so siehts aus:
In meinem ListIconGadget kann ich Einträge markieren und auf Wunsch entfernen oder bearbeiten. Daraus ergibt sich der Umstand, daß die Liste nach dieser Veränderung gelöscht und neu geschrieben werden muß. (Der "Remove" Befehl bringt mich an dieser Stelle nicht weiter.)
Problem:
Wenn die Liste gelöscht und neu geschrieben wird, verliere ich die Markierung des aktiven Elementes. Mit "SetgadgetItemState" oder "SetGadgetState" kann ich zwar die Markierung wieder herstellen, aber ab dem Zeitpunkt nimmt mein Programm keine Eingaben mehr an. Es scheint als wird der Fokus und sämtliche Eingaben auf einen toten Punkt geschoben. Das Programm läuft, ist aber für den Nutzer faktisch tot.
"SetGadgetItemState" halte ich für einen wichtigen Befehl den ich noch öfter brauchen werde. Kann mir bitte jemand erklären was mit diesem Befehl ausgeführt wird, und wie ich mein Problem lösen kann. Die PB-Hilfe, welche mir verät, daß damit ein Eintrag markiert weden kann, bringt mich hier nicht weiter!
Gruß
Re: ListIconGadget aktives Element/Eintrag (SetGadgetState)
der ist aber genau für diese Funktionalität da: RemoveGadgetItem(). Alles andere ist kappes.Freizeitcoder hat geschrieben:(Der "Remove" Befehl bringt mich an dieser Stelle nicht weiter.)
Schreib doch mal kurz, warum das für Dich nicht geeignet scheint.
Grüße ... Kiffi
a²+b²=mc²
- 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: ListIconGadget aktives Element/Eintrag (SetGadgetState)
Wie werden die Daten verwaltet? LinkList, Array oder im Gadget?
Wieviele Daten?
Wie sieht das Eventloop aus?
Sagen: Das geht nicht, dieses ist nicht geeignet usw. ohne Code ist sinnlos.
Man sollte schon versuchen sein Problem genauestens zu beschreiben und einen
ausführbaren Code zu entwickeln, der dieses verdeutlicht.
Es gibt hier keine Hellseher, Dein fehlendes Codebeispiel kostet dem Helfer extra Zeit,
aber was schreibe ich hier, es ist wohl sinnlos, werde ich mich wieder anderen
Dingen zuwenden
Gruß
Thomas
Wieviele Daten?
Wie sieht das Eventloop aus?
Sagen: Das geht nicht, dieses ist nicht geeignet usw. ohne Code ist sinnlos.
Das liegt doch an Deinem Code, den ich hier nicht entdecken kann.Freizeitcoder hat geschrieben:Es scheint als wird der Fokus und sämtliche Eingaben auf einen toten Punkt geschoben. Das Programm läuft, ist aber für den Nutzer faktisch tot.
Man sollte schon versuchen sein Problem genauestens zu beschreiben und einen
ausführbaren Code zu entwickeln, der dieses verdeutlicht.
Es gibt hier keine Hellseher, Dein fehlendes Codebeispiel kostet dem Helfer extra Zeit,
aber was schreibe ich hier, es ist wohl sinnlos, werde ich mich wieder anderen
Dingen zuwenden

Gruß
Thomas
-
- Beiträge: 35
- Registriert: 24.09.2009 13:31
- Wohnort: München
Re: ListIconGadget aktives Element/Eintrag (SetGadgetState)
einen kleinen Beispielcode kann ich leider nicht extrahieren.
Der Umstand den ich Beschreibe liegt aber auch nicht im Code, sondern in der grundsätzlichen Funktionalität des Befehles "SetGadgetItemState".
Gehen wir mal davon aus, daß ich irgend ein dahergelaufenes "ListIconGadget" habe. In diesem Gadget markiere ich nun mit der Maus einen Eintrag. Anschließend lösche ich die Liste, und fülle sie erneut mit den gleichen Einträgen. Die Markierung eines Elementes fliegt dadurch natürlich raus.
Mit "SetGadgetItemState" kann ich nun einen Eintrag wieder markieren lassen. So weit ist ja alles klar und funktioniert auch prächtig.
Mein Problem besteht darin, daß nun sämtliche Eingaben und Interaktionsmöglichkeiten mit dem Programm nicht mehr angenommen werden. Ich besitze nur noch einen ScreenShot von meinem Program.
Das heißt, der Befehl "SetGadgetitemState" setzt den Fokus, nach der Markierung des Elementes, irgend woander hin!
Ich denke es ist tatsächlich so, daß der Befehl das Programm auf den angegebenen Listeneintrag "Fokusiert". Dadurch ist nur noch der Listeneintrag interessant, und der Rest des Programmes wird, hinsichtlich der Eingaben, nicht mehr beachtet. Frage ist, wie kann ich ausdrücken, daß nach dieser Aktion das Programm wieder ganz normal fortfahren soll. Nach dem Motto: "Brav, schön hast Du das gemacht, und jetzt gib mir bitte die Kontrolle des restlichen Programmes wieder".
Gruß
Der Umstand den ich Beschreibe liegt aber auch nicht im Code, sondern in der grundsätzlichen Funktionalität des Befehles "SetGadgetItemState".
Gehen wir mal davon aus, daß ich irgend ein dahergelaufenes "ListIconGadget" habe. In diesem Gadget markiere ich nun mit der Maus einen Eintrag. Anschließend lösche ich die Liste, und fülle sie erneut mit den gleichen Einträgen. Die Markierung eines Elementes fliegt dadurch natürlich raus.
Mit "SetGadgetItemState" kann ich nun einen Eintrag wieder markieren lassen. So weit ist ja alles klar und funktioniert auch prächtig.
Mein Problem besteht darin, daß nun sämtliche Eingaben und Interaktionsmöglichkeiten mit dem Programm nicht mehr angenommen werden. Ich besitze nur noch einen ScreenShot von meinem Program.
Das heißt, der Befehl "SetGadgetitemState" setzt den Fokus, nach der Markierung des Elementes, irgend woander hin!
Ich denke es ist tatsächlich so, daß der Befehl das Programm auf den angegebenen Listeneintrag "Fokusiert". Dadurch ist nur noch der Listeneintrag interessant, und der Rest des Programmes wird, hinsichtlich der Eingaben, nicht mehr beachtet. Frage ist, wie kann ich ausdrücken, daß nach dieser Aktion das Programm wieder ganz normal fortfahren soll. Nach dem Motto: "Brav, schön hast Du das gemacht, und jetzt gib mir bitte die Kontrolle des restlichen Programmes wieder".
Gruß
- 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: ListIconGadget aktives Element/Eintrag (SetGadgetState)
Code: Alles auswählen
SetActiveGadget()
Re: ListIconGadget aktives Element/Eintrag (SetGadgetState)
SetGadgetItemState() fokusiert doch nicht das ganze Programm nurnoch auf das Item im Gadget, dann würde ja kein Programm, dass diesen Befehl benutzt weiterlaufen und dafür hab ich selbst schon zu viele mit diesem Befehl geschriebenl. Ein Code, der dein Problem beschreibt, währe sehr hilfreich.
Ich verkaufe Rechtschreibfehler und jede menge GROßBUCHSTABEN. Alles unbegrenzt zu haben.
-
- Beiträge: 35
- Registriert: 24.09.2009 13:31
- Wohnort: München
Re: ListIconGadget aktives Element/Eintrag (SetGadgetState)
Nachdem ich einige Stunden versucht hatte das Programm zu einen Beispielcode umzuwandeln, bin ich selbst darauf gekommen. Ich habe mir eine schöne Schleife gebastelt! Eingaben wurden nicht mehr angenommen, nur die Maus konnte ich noch bewegen.
Die EventType Abfrage war der Auslöser: Flag - #PB_EventType_Change (meldet Veränderungen im gesamten Programm)
Ich habe mit der System-Konstante " #PB_EventType_Change" nach Veränderungen suchen lassen, und führte bei positiver Rückmeldung einen refresh() der gesamten Listen in allen Panelen des Programms durch. Am Ende des refresh() kam das "SetGadgetState" um die Zeile wieder zu markieren. Dies wiederum wurde von der EventType-Abfrage sogleich als Veränderung erkannt, und ein erneuter refresh() wurde eingeleitet...... usw. usw. usw. Ein Klassiker eben!
Sorry für die dämliche Frage.... war mir sicher es hätte etwas mit dem Befehl zu tun. Das ist eben das Schwierige wenn man neue Sprachen lernt. Man kann sich zu Anfang bei nichts sicher sein, und muß die Fehler erstmal überall suchen.
Trotzdem danke.
Die EventType Abfrage war der Auslöser: Flag - #PB_EventType_Change (meldet Veränderungen im gesamten Programm)
Ich habe mit der System-Konstante " #PB_EventType_Change" nach Veränderungen suchen lassen, und führte bei positiver Rückmeldung einen refresh() der gesamten Listen in allen Panelen des Programms durch. Am Ende des refresh() kam das "SetGadgetState" um die Zeile wieder zu markieren. Dies wiederum wurde von der EventType-Abfrage sogleich als Veränderung erkannt, und ein erneuter refresh() wurde eingeleitet...... usw. usw. usw. Ein Klassiker eben!
Sorry für die dämliche Frage.... war mir sicher es hätte etwas mit dem Befehl zu tun. Das ist eben das Schwierige wenn man neue Sprachen lernt. Man kann sich zu Anfang bei nichts sicher sein, und muß die Fehler erstmal überall suchen.
Trotzdem danke.
- 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: ListIconGadget aktives Element/Eintrag (SetGadgetState)
Das ist eins der Vorteile, wenn man so verfährt, wie ich sagte.Nachdem ich einige Stunden versucht hatte das Programm zu einen Beispielcode umzuwandeln, bin ich selbst darauf gekommen
#PB_EventType_Change darf naturlich nur nach einem GadgetEvent, das dieses supported abgefragt werden,
niemals darüber in der Hierarchie!
Ohne ausführbares Codebeispiel ist helfen im allg. nicht möglich und mit ist es manchmal garnicht mehr
erforderlich

Gruß
Thomas