Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Evitar Proceso StringGrid1SelectCell (https://www.clubdelphi.com/foros/showthread.php?t=11825)

miguel_fr 26-06-2004 07:01:33

Evitar Proceso StringGrid1SelectCell
 
Buenas les planteo este nuevo problemilla, resulta que al redimencionar un StringGrid con RowCount, luego de asignarle el nuevo valor, salta al proceso SelectCell y yo no quiero que esto suceda, porque sino se me es imposible controlar que no realize el codigo que alli se encuentra.
PD: me podrian explicar en que parte de la ayuda de delphi indica que se va a seguir con este proceso.

roman 26-06-2004 07:34:19

Cita:

Empezado por miguel_fr
PD: me podrian explicar en que parte de la ayuda de delphi indica que se va a seguir con este proceso.

Pues en la parte correspondiente al evento OnSelectCell:

Cita:

Empezado por Ayuda de Delphi
OnSelectCell event (TCustomDrawGrid)

Occurs before a cell in the grid is selected.

Si, por ejemplo, la celda seleccionada actualmente está en el renglón 5 y reduces los renglones a 3 entonces la selección forzosamente cambia y de ahí que se genere el evento.

Puedes inhabilitar temporalmente el evento:


Código Delphi [-]
StringGrid1.OnSelectCell := nil;
StringGrid1.RowCount := nuevo valor;
StringGrid1.OnSelectCell := StringGrid1SelectCell;

// Saludos

miguel_fr 26-06-2004 07:59:26

Muchas gracias por tu ayuda roman, la verdad es que nunca avia entendido algo de esto
StringGrid1.OnSelectCellMe podrias explicar un poco mas que es lo que hacescon la linea siguiente por favorStringGrid1.OnSelectCell := StringGrid1SelectCell;

roman 26-06-2004 08:14:34

¿Se descompuso tu barra espaciadora? :D

Los eventos en Delphi son propiedades de los objetos. Así por ejemplo, un TEdit tiene las propiedades OnChange, OnExit, etc. al igual que propiedades "normales" como Color, Font, etc.

La diferencia es que los valores de estas propiedades son funciones o procedimientos.

Cuando implementas un evento dando doble click sobre él en el inspector de objetos, Delphi automáticamente asigna el procedimiento a la propiedad:

StringGrid1SelectCell -> StringGrid1.OnSelectCell

Si no hay ningún evento asociado quiere decir que la propiedad tiene el valor nil.

Así, la asignación

StringGrid1.OnSelectCell := nil;

desasigna el evento y

StringGrid1.OnSelectCell := StringGrid1SelectCell;

vuelve a asignarlo.

// Saludos


La franja horaria es GMT +2. Ahora son las 21:20:22.

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