Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Declarar evento OnExit en StringGrid (https://www.clubdelphi.com/foros/showthread.php?t=78706)

newtron 10-05-2012 19:44:50

Declarar evento OnExit en StringGrid
 
Hola a tod@s.

Sigo con mi StringGrid tuneado.

Tengo creado un componente no visual heredado del StringGrid y necesitaría declarar y poder manejar un evento para cuando pierda el foco, o sea, el OnExit.

¿Alguien me puede decir cómo hacerlo?

Gracias y un saludo

Casimiro Notevi 10-05-2012 22:08:51

Un par de dudas:
Si asignas el evento de forma tradicional, ¿no funciona?.

[broma]
Cuando dices que el componente no es visual, ¿exactamente a qué te refieres?, porque si no se ve, entonces cómo vas a salir de él, si tampoco puedes entrar :D
[/broma]

newtron 11-05-2012 09:32:02

A ver si nos dejamos de bromas que (a falta de conocimientos) aquí el de las bromas soy yo. :p

No hagáis sangre conmigo en este tema porque mis conocimientos sobre creación de componentes son algo menos que ningunos. :o

Cuando digo que no es visual me refiero a que el componente está creado en una unidad sin form, aunque estoy pensando que igual es una tontería y todos los componentes se crean así. El tema es que necesito desde dentro del componente saber cuando pierde el foco para poner invisible un botón que creo en tiempo de ejecución y no tengo ni idea de como hacerlo.

Saludos

Casimiro Notevi 11-05-2012 10:12:55

Y pregunto, si ese componente está heredado de un TStringGrid, según he entendido, entonces tendrá su evento OnExit, ¿no es así?

newtron 11-05-2012 10:15:48

Cita:

Empezado por Casimiro Notevi (Mensaje 432375)
Y pregunto, si ese componente está heredado de un TStringGrid, según he entendido, entonces tendrá su evento OnExit, ¿no es así?

Pues imagino pero yo no lo veo por ningún sitio. Yo lo pondría aquí pero no sé si es adecuado, tiene casi 5000 lineas.

Casimiro Notevi 11-05-2012 10:30:39

Cita:

Empezado por newtron (Mensaje 432376)
Pues imagino pero yo no lo veo por ningún sitio. Yo lo pondría aquí pero no sé si es adecuado, tiene casi 5000 lineas.

Hombre, en todo caso subes el ficherito comprimido :)
¿5000 líneas el stringgrid heredado?, pues sí que está modificado :confused:
Si haces una búsqueda por "onexit" en el código del componente, ¿no está?. Y si está, ¿en qué sección?, private, public, etc.



Tengo que salir, vuelvo en un rato :)

newtron 11-05-2012 11:00:54

Pos bueno, aquí lo llevas. Quiero recordar que te lo envié en alguna ocasión para algo que preguntaste sobre un evento.

Si eres tan amable le echas un vistazo y me dices algo.

Gracias y un saludo

Casimiro Notevi 11-05-2012 15:46:42

Ya recuerdo al 'pequeñito', sí, bueno, me parece que tiene un evento exit, se llama CMExit

Código Delphi [-]
procedure TNTStringGrid.CMExit(var Message: TCMExit);
begin
  Boton.Visible := False;
  if Assigned(InplaceEditor) then begin
    if InplaceEditor.Visible then begin
      InplaceEditor.Perform(WM_KEYDOWN, VK_ESCAPE, 0);
    end;
  end;

  SendMessage(Handle, SG_SALGOFILA, Row, 0);
  inherited;
end;

¿Puede ser?, ¿o sirve para salir de alguna celda?

newtron 11-05-2012 17:01:16

Pues llevas más razón que un santo, lo que me ha despistado es que el puñetero botón que precisamente pongo invisible en ese evento me lo encuentro posteriormente visible y es porque pasa por una de las funciones que lo vuelve a poner visible.

Seguiré mirando a ver cómo lo hago.

Gracias amigo, y un saludo.


La franja horaria es GMT +2. Ahora son las 06:05:53.

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