Dúvida com editor de propriedades

09/12/2009

1

Saudações pessoal!
Estou com uma pequena dúvida sobre um componente que estou desenvolvendo, vamso ver se alguém consegue me ajudar.

na estrutura do componente eu tenheo 3 classes:

TBemaCashTool  = class (TComponent)
TBemaCashToolCollection  = class (TCollection)
TBemaCashToolCollectionItem  = class (TCollectionItem)

o caso é o seguinte, em TBemaCashToolCollectionItem tenho uma propriedade string (CampoOrigem) que deverá me mostrar uma lista de campos disponiveis para seleção de um clientdataset que é por sua vez propriedade de TBemaCashTool mas o problema é que ao implementar o método GetValues me deparei com um problema conforme indicado abaixo, não consigo ter acesso a propriedade ClientDataSet para coletar a lista dos campos.


procedure TShowFieldEditor.GetValues(Proc: TGetStrProc);
Var BemacashTool : TBemaCashToolCollectionitem;
   i : integer;
begin
 BemacashTool:= GetComponent(0) as TBemaCashToolCollectionitem;
//-- aqui  começa os problemas
if Assigned(BemacashTool.ClientDataSet) then
   begin
     If BemacashTool.ClientDataSet.Fields.Count > 1 then
     For i:= 0 to BemacashTool.ClientDataSet.Fields.Count -1 do
       begin
         Proc(BemacashTool.ClientDataSet.Fields[i].FieldName);
       end;
   end;
end;


//--- uso esta linha para registrar o editor
RegisterPropertyEditor(TypeInfo(string), TBemaCashToolCollectionItem, 'DataField', TShowFieldEditor);



o que poderia ser feito para que eu consiga ter acesso ao Clientdataset?

agradeço caso possa me dar uma dica.

Grato,
Brener Bento Leão
Responder