2012-05-14 9 views
7

Sto usando Delphi XE2 per scrivere un'applicazione Win32 VCL. Delphi XE2 supporta il live binding. Carico il campione Biolife.xml in un'istanza TClientDataSet.Come utilizzare l'associazione live per collegare il campo blob al controllo TImage?

io in grado di associare un controllo TEdit di campo di stringa di set di dati: Specie Nome:

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

ho poi cercando di legare campo grafico a TImage controllo:

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

A quanto pare, non è così lavoro. È possibile farlo?

risposta

7

Dai un'occhiata al progetto dimostrativo BindLinkVCLProject. Ci viene mostrato anche un binding per l'immagine, quindi la mia ipotesi è che devi fare in questo modo (il Self in SourceExpression rappresenta 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