Seite 1 von 1

ColorBlock und ItemSelect

Verfasst: Mi, 15. Aug 2012 12:15
von messing
Servus,

läßt sich der Status ItemSelected abfragen?

Ich möchte über die Selektierung im XbpBrowse die Farbe der Zelle verändern. So wie z.B. bei negativen Wert rot darstellen.
Die Zelle soll jedoch erst die Frabe verändern, nachdem sie mit Doppelklick selectiert wurde, unabhängig vom Wert. Nur durch den Selektionszustand.
Über den :colorblock kann ich Aufgrund der Werte die Farbe ändern, funktioniert das auch nur über die Selektierung?

Code: Alles auswählen

   ::DatenBrowse:GetColumn(1):ColorBlock := {|mp1,mp2,obj| ;
            IIF( obj:ItemSelected()=.T., {GRA_CLR_RED,},{GRA_CLR_WHITE,} ) }

Re: ColorBlock und ItemSelect

Verfasst: Mi, 15. Aug 2012 12:42
von georg
Hallo, messing -


schau Dir mal die Callback-Methode :lbDblClick() an. Die wird ausgelöst durch einen Doppelklick und sollte somit die Bedingung "itemselected" erfüllen.


Gruss,

Georg

Re: ColorBlock und ItemSelect

Verfasst: Mi, 15. Aug 2012 13:25
von messing
Hi Georg,

ItemSelect ist nicht das Problem, sondern der ColorBlock. Wie bekommt man in den ColorBlock eine ItemSelect Abfrage rein um Festzustellen ob Selektiert wurde oder nicht.

Aktion ausführen über Itemselect benutze ich um einen Filter zu setzen. Wert in der einen DBF = Filter für andere DBF.
Nur wollte ich im Browse dann diese Zeile / Zelle farblich verändern, damit der Nutzer im Browse sieht, worauf gefiltert wird.

Re: ColorBlock und ItemSelect

Verfasst: Mi, 15. Aug 2012 13:32
von georg
Hallo, messing -


vielleicht verstehe ich Dich falsch, aber der itemSelected ist doch der Auslöser, dem das Verändern des ColorBlock folgt?

In diesem Fall führst Du über den Callback Slot :lbDblClick() den entsprechenden ColorBlock aus.


Gruss,

Georg

Re: ColorBlock und ItemSelect

Verfasst: Mi, 15. Aug 2012 14:11
von messing
Servus, könntest du mal bei der Definition helfen?

Muß der :lbDblClick() in den Colorblock, oder Zusätzlich
z.B. ::Browse:lbdblClick() ???

Re: ColorBlock und ItemSelect

Verfasst: Mi, 15. Aug 2012 14:15
von Tom
Ein ItemSelected kann auch über ein Keyboard-Event ausgelöst werden. Aber ich halte es für den falschen Weg, den Colorblock zu evaluieren, wenn eben ItemSelected ausgelöst wurde - schließlich würde jedes anschließende Neuzeichnen der Zelle automatisch wieder die alten Farben reaktivieren. Sinnvoller wäre es, an den ItemSelected-Slot die Belegung einer Variablen zu hängen, die die Zelle eindeutig identifiziert, und im ColorBlock selbst eben - standardmäßig - abzufangen, ob die Zelle die gerade aktivierte ist.