2012-05-14 28 views
7

Estoy usando Delphi XE2 para escribir una aplicación VCL win32. Delphi XE2 admite encuadernación en vivo. Cargué la muestra Biolife.xml en una instancia TClientDataSet.¿Cómo se usa el enlace activo para vincular el campo blob al control de TImage?

Me capaz de enlazar un control TEdit al campo de cadena del conjunto de datos: Nombre de la especie:

object BindLinkEdit11: TBindLink 
    Category = 'Links' 
    SourceMemberName = 'Species Name' 
    ControlComponent = Edit1 
    SourceComponent = BindScopeDB1 
    ParseExpressions = <> 
    FormatExpressions = < 
    item 
     ControlExpression = 'Text' 
     SourceExpression = 'DisplayText' 
    end> 
    ClearExpressions = <> 
end 

entonces intentar enlazar campo gráfico a TImage de control:

object BindLinkImage11: TBindLink 
    Category = 'Links' 
    SourceMemberName = 'Graphic' 
    ControlComponent = Image1 
    SourceComponent = BindScopeDB1 
    ParseExpressions = <> 
    FormatExpressions = < 
    item 
     ControlExpression = 'Picture' 
     SourceExpression = 'Value' 
    end> 
    ClearExpressions = <> 
end 

Al parecer, no lo hace trabajo. ¿Es eso posible?

Respuesta

7

Eche un vistazo al proyecto de demostración BindLinkVCLProject. También se muestra un enlace para la imagen, así que yo creo que necesita para hacerlo de esta manera (la Self en SourceExpression representa un campo blob):

object BindLinkImageHandler: TBindLink 
    Category = 'Links' 
    SourceMemberName = 'Graphic' 
    ControlComponent = Image1 
    SourceComponent = BindScopeDB1 
    ParseExpressions = < 
    item 
     ControlExpression = 'Picture' 
     SourceExpression = 'Self' 
    end> 
    FormatExpressions = < 
    item 
     ControlExpression = 'Picture' 
     SourceExpression = 'Self' 
    end> 
    ClearExpressions = < 
    item 
     ControlExpression = 'Picture' 
     SourceExpression = 'nil' 
    end> 
end 
Cuestiones relacionadas