Ver Mensaje Individual
  #1  
Antiguo 28-01-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Reputación: 25
__cadetill Va por buen camino
Filtrar elementos que aparecen en una propiedad tipo Combo

Hola compañeros

Tengo un componente que, una de sus propiedades es de tipo TComponent, por lo que en el Inspector de Objetos me aparece un combo y, al desplegarlo, todos los componentes. Bien, pues mi intención es sólo mostrar determinado tipo de componentes en el desplegable y no puedo cambiar el tipo de la propiedad porque no me deriban del mismo sitio todos los tipos de componentes que quiero mostrar.

Bueno, lo he hecho reescribiendo el método GetValues de dicha propiedad de la siguente forma:

Código:
procedure TDataBaseProperty.GetValues(Proc: TGetStrProc);
var
  i : integer;
begin
  with ConnectAdapterGenerador do
  begin
    for i := 0 to Count - 1 do
      Designer.GetComponentNames(GetTypeData(GetClass(i).ClassInfo), Proc);
  end;
end;
Donde ConnectAdapterGenerador es un onjeto que tiene, entre otras, la cantidad de Classes que necesito (Count) y métodos para para obtener una clase determinada (GetClass).

Es decir, hago lo mismo que haría el GetValues por defecto, pero llamando al procedimiento Designer.GetComponentNames por cada Classe que a mi me interesa.

Esto funciona, pero, la pregunta es, ¿es la forma correcta de hacerlo? ¿hay otra manera más "elegante"? Es que esta no me termina de hacer el peso

Bueno, ya me direis
Responder Con Cita