Erklärung zu Property

  • Ich lese immer wieder property, aber checke nicht, was man damit machen kann.
    Gibts da irgendwo eine deutsche Erklärung, am besten mit Beispiel.
    Die englsichen Sites zu verstehen, fällt mir extrem schwer.

  • Hallo,
    Hmm...
    Ich versuchs mal in einfachen Worten zu erklären.
    SetProperty ist ein ins Kodi-Sysrem gesetzter Punkt der abgefragt werden kann, ob er vorhanden ist oder nicht.
    Im Prinzip ähnlich wie das SetString.
    Strings werden aber in eine Liste geschrieben.Der wechsel beim String dauert im verhältniss zum Property sehr lange.

    Deshalb nutzt man für schnelle wechsel eines Zustandes das Property und fragt es mit "IsEmpty" ab.

    Um es noch mal zu verdeutlichen.
    Strings werden bei dauernden Zuständen (wie z.B. Menüpunkte ändern) verwendet.
    Sie werden (weil in eine Liste geschrieben) bei Skin Neustart wieder eingelesen.

    Propertys werden bei Abfragen genutzt wenn der skin schon geladen ist.
    Die Abfrage kann dann auf eine condition gelegt werden
    (um z.B eine Animation auszulösen).
    Die reaktionszeit ist da ähnlich wie beim HasFocus.

    Also..
    Ich setze das Property...z.B mit <onfocus>SetProperty(clockcontrol,AN,Home)</onfocus>

    Ich kann jetzt das Property abfragen ob es Empty ist oder nicht z.B....
    <animation type="Conditional" condition="!IsEmpty(Window(Home).Property(clockcontrol))">
    oder <animation type="Conditional" condition="IsEmpty(Window(Home).Property(clockcontrol))">

    ..und muß beim verlassen das Property wieder clearen also ablöschen.
    z.B. mit <onfocus>ClearProperty(clockcontrol,Home)</onfocus>

    Weiß nicht ob ich dir das einigermaßen verständlich machen konnte. :)

    Grüße

  • Ich habs jetzt so verstanden.
    Nach nen System-Neustart sind die Propertys immer leer.
    Und:
    Der Name deines Propertys ist "clockcontrol". und due schreibst "AN" rein.
    Was macht das "Home"?

    Edit:
    Ah ich glaub ich habs verstanden, man muss ein Property für jedes window setzen. global gehen dann nur die strings.
    Oder ginge dann hier $INFO[Window(Home).Property(clockcontrol)] um an das property "fremder" window zu kommen?

    BTW:
    Weißt du wohin so Sachen wie Strings und Settings geschrieben werden?

  • Ich weiß es nicht genau, aber ich denke Global in die GUI des Skins.
    Eine Liste im Sinne "txt" gibt es nicht.

    Ja genau...Propertys sind nur im Skin vorhanden, den man nutzt.
    Soweit mir bekannt gehen auch Propertys nicht überall.

    Das "AN" kann durch beliebiges ersetzt werden.

    Ich find gerade die Erklärung nicht, wie die Aufschlüsselungen der ID´s sind und wie sich das Property zusammensetzt.

    Vielleicht fällts mir die Tge noch in die hände ;)

    ...oder es kann jemand anders aushelfen :)

    Grüße

  • Edit:
    Ah ich glaub ich habs verstanden, man muss ein Property für jedes window setzen. global gehen dann nur die strings.
    Oder ginge dann hier $INFO[Window(Home).Property(clockcontrol)] um an das property "fremder" window zu kommen?

    BTW:
    Weißt du wohin so Sachen wie Strings und Settings geschrieben werden?

    Propertys werden mit der Angabe (Home) für das Fenster Home gesetzt. Ohne weiß ichs auch nicht genau, aus Gewohnheit mache ich es immer mit..
    $INFO[Window(videos).Property(clockcontrol)]
    wäre damit die Entsprechung wenn das Property in der Myvideonav gesetzt wurde.

    Mit dem Aufruf hast du aber Überall drauf Zugriff, auch in einem anderen Fenster.
    Aufbau ist immer der selbe
    SetProperty(Propertyname,Wert,Fenstername)
    Clearproperty(Propertyname,Fenstername)

    Durch den Zusatz (Fenstername) kannst du dich in jedem anderen Fenster darauf beziehen.. Damit sind sie genauso Variabel wie strings, und funktionieren eigentlich immer.
    Strings werden in die Guisettings geschrieben bis isengard, Propertys landen glaub ich im Speicher (deswegen sind sie auch leer wenn Kodi Beended wird).

    Einschränkungen gibt es nur wenn du die Vergleichen (Stringcompare und Substring) willst:
    Dort kannst du die Werte nur über Umwege Auslesen.
    Aber auch das geht..

    Die Schwierigkeit ist dann eher immer wie schon angedeutet das du je nach Einsatz drauch achten musst es immer vorher zu füllen oder zu leeren.
    Es ist aber die einzige Möglichkeit z.B. den Focus eines "anderen" Fensters zu Bestimmen, wie eine Sidebar in der Myvideo NAV z.B...

    Grüße

  • OK, wie ist es nun wenn ich einen custom Screen erstellt habe, kann ich den auch irgendwie einen Name zuweisen, damit ich propertys entsprechend anlegen kann? z.B. "PDC"

    Und zweitens, wie ist das mit den Propertys direkt im control?
    Z.B. in der OSMC Skin gefunden.

    Spoiler anzeigen


    Externer Inhalt abload.de
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

  • OK, wie ist es nun wenn ich einen custom Screen erstellt habe, kann ich den auch irgendwie einen Name zuweisen, damit ich propertys entsprechend anlegen kann? z.B. "PDC"

    In dem Fall die ID des Fensters, also sowas wie Window(1110).Property

    Direct im Contreol weiß ich nicht genau was du meinst, in einem Label wäre es dann $INFO[Window(1110).Property(xxx)] falls das meinst.

    Zum Script kann ich dir nichts sagen, nutze ich nicht..

    Grüße

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!