Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Detectar cambio de ItemIndex en ComboBox (https://www.clubdelphi.com/foros/showthread.php?t=36663)

ixMike 19-10-2006 20:35:13

Detectar cambio de ItemIndex en ComboBox
 
Hola a todos!!! ;)

Explico: estoy haciendo un componente (derivado de TCustomComboBox), similar a TFilterComboBox, pero que sea compatible con la forma de tratar los filtros en mi programa (que es más simple, como "txt;log;mp3").
El caso es que necesito saber cuándo se modifica la propiedad ItemIndex para colocar el código adecuado para cambiar la propiedad que devuelve el filtro actual.

Muchas gracias de antemano. ;)

dec 19-10-2006 20:52:32

Hola,

Acaso fuera bastante recurrir al método "GetItemIndex" de la clase "TCustomCombo", de la que deriva "TCustomComboBox", cada vez que fuera preciso obtener la propiedad correspondiente, ¿o me equivoco? ;)

ixMike 19-10-2006 20:57:43

Sí, ya, o sencillamente a la propiedad ItemIndex, pero... ¿Cuándo la llamo?

dec 19-10-2006 21:15:22

Hola,

Cita:

El caso es que necesito saber cuándo se modifica la propiedad ItemIndex para colocar el código adecuado para cambiar la propiedad que devuelve el filtro actual.
No entiendo del todo cuando dices "para colocar el código adecuado para cambiar la propiedad que devuelve el filtro actual"...

Lo siento. No me queda claro el asunto... porque,... ¿qué es eso de cambiar la propiedad que devuelve el filtro actual? Cuando se recupera una propiedad en realidad puede estar llamándose a un método, internamente, en la clase a la que pertenezca, entonces...

Código Delphi [-]
type
  TComboBoxEx = class(TCustomComboBox)
  private
    FFilter: string;
    function GetFilter : string;
  published
    property Filter: string read GetFilter write FFilter;
  end;

implementation

{ TComboBoxEx }

function TComboBoxEx.GetFilter: string;
begin
  // Cuando quieres acceder a la propiedad Filter
  // pasas por este método... ¿no podrías aquí hacer
  // lo que te fuera menester? Pregunto. :-)
end;

Nota: Envío este mensaje con cierto resquemor... creo que no estoy entendiendo bien el problema, o, directamente, no sé atar el cascabel al gato, que todo puede ser. ;)

seoane 19-10-2006 21:18:01

Vamos a ver si te puede servir esto. El objeto TCustomCombobox cuenta con el método Select que se llama cada vez que se selecciona un elemento. Tu solo tienes que implementar ese método en tu nuevo componente.

Código Delphi [-]
type
  TMiCombo = class(TCustomCombobox)
  protected
    procedure Select; override;
  end;

{ TMiCombo }

procedure TMiCombo.Select;
begin
  inherited;
  // Por ejemplo hacemos que pite cada vez que seleccionamos algo
  Windows.Beep(500,100);
end;

dec 19-10-2006 21:39:03

Hola,

Pues sí; está bien visto Domingo: parece lo natural. Acaso eso sea, precisamente, lo que necesita el compañero. :)


La franja horaria es GMT +2. Ahora son las 08:45:01.

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