Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Filtrar elementos que aparecen en una propiedad tipo Combo (https://www.clubdelphi.com/foros/showthread.php?t=6935)

__cadetill 28-01-2004 09:47:47

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 :D

Bueno, ya me direis

__cadetill 02-02-2004 22:06:46

Up del hilo para ver si alguien se anima a responder o por si necesitáis más aclaraciones (sólo tenéis que pedirlas ;))

jachguate 03-02-2004 01:29:53

a mi me parece muy buena... y realmente no creo que haya otra forma de hacerlo...

Hasta luego. ;)

__cadetill 03-02-2004 20:25:04

Pues gracias Juan Antonio, que no me había acordado de dartelas :p

Nos leemos ;)


La franja horaria es GMT +2. Ahora son las 14:13:26.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi