José Luis,
Me parece interesante el tema que planteas para lo siguiente: imagínate una ficha de clientes, productos, acreedores, etc...
Quedaría muy bien que en esa ficha el nombre, por ejemplo, pudiera quedar "remarcado" con un estilo a "lo" evernote.
Quizá para lo que yo digo sea suficiente una simple modificacion en el método TGet:Paint(). De entrada no pondría la x para borrado y si estableceria dos o tres categorías de remarcado. Ejemplo: el nombre en la ficha tendria la maxima importancia, el tag importante, con marco y rojo (suave). Otro tag de menor importancia seria por ejemplo la poblacion, con marco mas fino y verde suave.
En el fondo todo esto es simplemente darle mas funcionalidad a la clase TGet en el momento del TGet:Paint(), cuando el objeto NO tiene el foco.
Seria algo asi:
oGet:bLevelTag:= {|| 1 } // Categoria del tag. 1, 2, 3. Es DINAMICO porque puede cambiar segun el valor del get o valor de otras variables.
oGet:oFntLevelTag1:= xxxxxx // Font para cuando se aplique el tag 1
oGet:nClrLevelTag1:= CLR_xxxxxx // Color para cuando se aplique el tag 1
oGet:oFntLevelTag2:= xxxxxx // Font para cuando se aplique el tag 2
oGet:nClrLevelTag2:= CLR_xxxxxx // Color para cuando se aplique el tag 2
oGet:oFntLevelTag3:= xxxxxx // Font para cuando se aplique el tag 3
oGet:nClrLevelTag3:= CLR_xxxxxx // Color para cuando se aplique el tag 3
Quiza, en prevision de mayores funcionalidades y de no ensuciar mucho el codigo del TGet , se podria crear una clase auxiliar a la TGet que fuera una contenedora de propiedades para el tema este de los tags TTagProp que posibilitaria infinitos niveles de remarcado.
CLASS TTagProp
DATA nLevel
DATA nClr
DATA oFnt
END CLASS
CLASS TGet
DATA bLevelTag
METHOD AddTag() INLINE aTail(aAadd(aTags, TTagProp():New()))
DATA aTags INIT {}
END CLASS
METHOD Paint() CLASS TGet()
* Pinta Get con parametros del ::aTags[Eval(::bLevelTag)]
RETURN NIL
* Y en el programa
oGet:= TGet():New(.........)
// Aqui añadir tantos tags como niveles de importancia (o remark) queremos darle al TGet()
oTag:= oGet:AddTag()
oTag:nClr:= CLR_RED
oTag:= oGet:AddTag()
oTag:nClr:= CLR_BLUE
En fin... espero haberme explicado.
Saludos