PDA

Ver la Versión Completa : Procedimiento valido para todos los TEdit


jandro
10-02-2011, 17:47:43
Hola a todos.

Tengo un formulario con muchos TEdit y quería crear un procedimiento OnEnter y OnExit que cambiara el color de fondo de ese TEdit y asi aplicarselo a todos con un mismo PROCEDURE. Alguien me puede indicar como decirle a ese prodecimiento que cambie el color del TEdit que esta seleccionado en cada momento??

Mil gracias.
Saludos.

Chris
10-02-2011, 18:02:12
Selecciones con CTRL + Click todos los edits a los que quieras asignarle el mismo evento. Luego haz doble clic sobre la propiedad OnEnter por ejemplo. Delphi te creará un nuevo procedimiento para controlar el evento OnEnter que será común para todos los TEdits que hallas seleccionado. En el código del procedimiento creado deberás trabajar con el parámetro Sender de la siguiete forma:
procedure TForm1.Edit1OnEnter(Sender: TObject);
begin
if (Sender is TEdit) then
TEdit(Sender).Color := clYellow;
end;

De la misma forma has de proceder para el evento OnExit.

Ahora, debes comprender que los objetos pueden compartir un mismo controlador del evento. Para hacerlo, en el inspector de propiedades del IDE, cuando entras en una propiedad aparecerá una lista de todos los procedimientos a los que puedes asociar el manejo del evento propiedad que has seleccionado. Es algo muy similar a la lista de colores que aparece para las propiedades tipo TColor. Esta funcionalidad para los eventos es talvez muy poco conocida porque la mayoría se limita a hacer doble-clic sobre las propiedades de eventos, lo que causa que IDE siempre cree un nuevo procedimiento para manejar la ejecución del evento.

También tienes que recordar que si compartes el controlador de una evento entre distintos objetos, siempre tienes que trabajar con los parámetros (comúnmente el parámentro Sender).

Saludos,
Chris

jandro
12-02-2011, 19:38:56
Justo lo que necesitaba. Mil gracias!

Saludos.