El asterisco es la
intersección de conjuntos y- ahora que lo veo - está mal

, debe ser:
Código Delphi
[-]
if State*[gdSelected, gdFocused] <> [] then
es decir,
si la intersección de State con [gdSelected, gdFocused] no es vacía, o sea,
si hay algo en la intersección de State y [gdSelected, gdFocused].
Es una forma de abreviar:
Código Delphi
[-]
if (gdSelected in State) or (gdFocused in State) then
// Saludos