Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-08-2004
Chelo Chelo is offline
Registrado
 
Registrado: jun 2004
Posts: 9
Poder: 0
Chelo Va por buen camino
Question En que objeto está parado el mouse?

Hola gente del foro.

A lo mejor Uds. me puedan ayudar....
Necesito saber como hacer para conocer sobre que componente (que los creará el usuario...por ejemplo un Tedit) está parado el mouse?
Esto lo pregunto por que necesito crear y borrar objetos del tipo Tedit y no sé como hacer para saber sobre cual está parado.

Desde ya muchas gracias.
Marcelo
Responder Con Cita
  #2  
Antiguo 05-08-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
No se como pretendes crear/borrar los componentes.. pero ciñendome a tu pregunta, te recomiendo la lectura de la ayuda sobre el método TWinControl.ControlAtPos.

Esto es aplicable para la forma, o el contenedor (parent) de cualquier control. Por ejemplo, un panel, o un ScrollBox.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 05-08-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.284
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Chelo
Necesito saber como hacer para conocer sobre que componente (que los creará el usuario...por ejemplo un Tedit) está parado el mouse?
Esto lo pregunto por que necesito crear y borrar objetos del tipo Tedit y no sé como hacer para saber sobre cual está parado.
Supongo que lo que deseas hacer es que el usuario pueda borrar componentes igual que se hace en diseño (IDE de Delphi), por lo tanto supongo que cuando dices que el ratón está "parado" entiendo que es cuando el usuario selecciona un clontrol (hace un click sobre él).
Creo que en ese caso deberías intentar "cazar" los eventos de ratón sobre los componentes.
Por ejemplo al crear los componentes en runtime, "enganchas/capturas" uno de los eventos del componente (mouseDown, por ejemplo) a una rutina que te permita manejar la selección de éstos componentes (uno o varios y que por ejemplo los distinga de los no-seleccionados);

No se si me he explicado del todo bien, si no queda claro ya dirás...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 07-08-2004
Chelo Chelo is offline
Registrado
 
Registrado: jun 2004
Posts: 9
Poder: 0
Chelo Va por buen camino
Cita:
Empezado por Neftali
Supongo que lo que deseas hacer es que el usuario pueda borrar componentes igual que se hace en diseño (IDE de Delphi), por lo tanto supongo que cuando dices que el ratón está "parado" entiendo que es cuando el usuario selecciona un clontrol (hace un click sobre él).
Creo que en ese caso deberías intentar "cazar" los eventos de ratón sobre los componentes.
Por ejemplo al crear los componentes en runtime, "enganchas/capturas" uno de los eventos del componente (mouseDown, por ejemplo) a una rutina que te permita manejar la selección de éstos componentes (uno o varios y que por ejemplo los distinga de los no-seleccionados);

No se si me he explicado del todo bien, si no queda claro ya dirás...
Exactamente lo que quiero hacer es que el usr pueda crear tantos Tedit como quiera y si se le ocurre borrar alguno que lo pueda hacer activándolo y apretando en un botón.
Responder Con Cita
  #5  
Antiguo 07-08-2004
Chelo Chelo is offline
Registrado
 
Registrado: jun 2004
Posts: 9
Poder: 0
Chelo Va por buen camino
Cita:
Empezado por Neftali
Supongo que lo que deseas hacer es que el usuario pueda borrar componentes igual que se hace en diseño (IDE de Delphi), por lo tanto supongo que cuando dices que el ratón está "parado" entiendo que es cuando el usuario selecciona un clontrol (hace un click sobre él).
Creo que en ese caso deberías intentar "cazar" los eventos de ratón sobre los componentes.
Por ejemplo al crear los componentes en runtime, "enganchas/capturas" uno de los eventos del componente (mouseDown, por ejemplo) a una rutina que te permita manejar la selección de éstos componentes (uno o varios y que por ejemplo los distinga de los no-seleccionados);

No se si me he explicado del todo bien, si no queda claro ya dirás...
Exactamente lo que quiero hacer es que el usr pueda crear tantos Tedit como quiera y si se le ocurre borrar alguno que lo pueda hacer activándolo y apretando en un botón que por ejemplo se llame quitar elemento.
Gracias-
Responder Con Cita
  #6  
Antiguo 09-08-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.284
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Podrías hacerlo, por ejemplo:
* Con una nueva opción en el menú contextual del control de diga: "Borrar componente".
* Seleccionándolo y con un botón que diga: "Borrar componente"
* Con un combinación de taclas sobre el componente, por ejemplo. CTRL+DEL
* ...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 10-08-2004
Chelo Chelo is offline
Registrado
 
Registrado: jun 2004
Posts: 9
Poder: 0
Chelo Va por buen camino
Cita:
Empezado por Neftali
Podrías hacerlo, por ejemplo:
* Con una nueva opción en el menú contextual del control de diga: "Borrar componente".
* Seleccionándolo y con un botón que diga: "Borrar componente"
* Con un combinación de taclas sobre el componente, por ejemplo. CTRL+DEL
* ...
Ok..lo que me dices lo entiendo bien ahora lo que no me queda claro es como hacer para "enganchar/capturar" uno de los eventos del componente (mouseDown, por ejemplo) a una rutina que me permita manejar la selección de éstos componentes. Lo he intentado hacer y no me sale.
Desde ya gracias.
Responder Con Cita
  #8  
Antiguo 10-08-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.284
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Chelo
....lo que me dices lo entiendo bien ahora lo que no me queda claro es como hacer para "enganchar/capturar" uno de los eventos del componente (mouseDown, por ejemplo) a una rutina que me permita manejar la selección de éstos componentes. Lo he intentado hacer y no me sale.
Supongo, por lo que me pareció entender en los mensajes, que los componentes los vas creando tú por código, pues cuando creas los componentes le asignas a un de sus eventos una rutina creada por tí (como pista la rutina debe tener la misma estructura que tiene el evento que vas a "enganchar");
Por ejemplo si quieres crear Edit's y enganchar los eventos OnExter y OnExit (para cambiar el color del control) a unos métodos creados por ti, sería algo así:

Código Delphi [-]
    // Defines los métodos en la parte privada
    procedure myEnter(Sender:TObject);
    procedure myExit(Sender:TObject);
 
...
 
  // la implementación seria así:
 
procedure TForm1.myExit(Sender: TObject);
begin
  // Compribar y cambiar el color.
  if (Sender is TEdit) then begin
    TEdit(Sender).Color := clWindow;
  end;
end;
procedure TForm1.myEnter(Sender: TObject);
begin
  // Compribar y cambiar el color.
  if (Sender is TEdit) then begin
    TEdit(Sender).Color := clInfoBk;
  end;
end;
 
// y una forma de crear los componentes y "enganchar" los eventos
// podría ser ésta:
 
...
var
  i:Integer;
  ed:TEdit;
begin
  for i := 0 to 3 do begin
    // Ejemplo sencillo que crea 4 edits
    ed := TEdit.Create(Self);
    ed.Parent := Self;
    ed.Name := 'Edit' + IntToStr(i);
    ed.Top := 100 + (i * 30);
    ed.Left := 300;
    // "enganchar" el método on Enter del control
    ed.OnEnter := myEnter;
    // "enganchar" el método OnExit del control
    ed.OnExit := myExit;
  end;
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 15:57:37.


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
Copyright 1996-2007 Club Delphi