Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Procedimiento valido para todos los TEdit (https://www.clubdelphi.com/foros/showthread.php?t=72320)

jandro 10-02-2011 17:47:43

Procedimiento valido para todos los TEdit
 
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:
Código Delphi [-]
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.


La franja horaria es GMT +2. Ahora son las 09:30:34.

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