2010-06-12 5 views
0

J'ai créé un composant dynamique TClientDataSet et essayé de déclencher l'événement OnCalcFields .... cela n'a pas fonctionné. Le code ressemble à ceci ...impossible de déclencher un événement pour le composant créé dynamiquement

table := TClientDataset.Create(Application); 
    table.OnCalcFields := tableCalcFields; //where 'tablecalcfields' is the method defined by me. 
    table.FieldDefs := Query1.FieldDefs; 
    table.CreateDataSet; 
    table.Open; 
    Query1.First; 
    while not Query1.Eof do 
    begin 
    table.Append; 
    for I := 0 to Query1.FieldList.Count - 1 do 
    begin 
     table.FieldValues[table.FieldList[i].DisplayName] := 
        Query1.FieldValues[Query1.FieldList[i].DisplayName]; 
    end; 
    Query1.next; 
    table.Post; 
    end; 
    DataSource2.DataSet := table; 
    table.First; 

après cela, je modifier les informations sur le DBGrid (datasource2 est setted à elle), à ​​ce moment l'événement doit tirer (si vous disposez d'un composant de temps de conception, il sera)

Merci pour les réponses, Vijay

+0

Est-ce tout ce que vous faites? OnCalcFields ne sera pas lancé tant que vous n'aurez pas positionné l'ensemble de données sur un enregistrement dans le tableau ... –

+0

Désolé pour le code moins, j'ai édité mon post. –

+0

Je ne sais pas si c'est lié, mais il me semble étrange de créer l'ensemble de données avec le propriétaire Application. Normalement, ce serait une forme ou un datamodule. –

Répondre

0

Le code n'a pas de champs calculés.

Questions connexes