Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como hacer un SelectAll en un DBGrid (https://www.clubdelphi.com/foros/showthread.php?t=7331)

sitrico 11-02-2004 23:20:37

Como hacer un SelectAll en una celda de un DBGrid
 
Buenas.

Tengo un dbGrid asociado a una base de datos (que novedad :rolleyes: ) que asigna valores por defecto a los nuevos registros (en el evento DBGridColEnter). Lo que necesito saber es como hacer un SelectAll en la celda activa para permitir al usuario cambiar el valor por defecto sin tener que seleccionarlo primero.

Gracias de antemano.

jachguate 12-02-2004 03:53:33

No puedo responderte la pregunta original... pero te recomiendo que uses el evento OnNewRecord para asignar valores por defecto en los campos de un dataset. Tiene varias ventajas, entre las que está que el componente no tomará estos datos como modificados... con la consiguiente ventaja para el usuario, al evitarle preguntas como:

Este registro ha sido modificado... seguro que desea cancelar su inserción?

Hasta luego.

;)

sitrico 17-02-2004 18:29:41

Ya intenté usar el evento OnNewRecord pero tengo el problema que el valor sólo lo puedo calcular el valor usando algunos datos del nuevo registro y en el OnNewrecord todavía no están disponibles.

En cuanto al SelectAll encontré (revizando el código de la unidad DBGrid) que existe una clase llamada TInplaceEdit y que a su vez define varias propiedades y métodos.
Código:

  TInplaceEdit = class(TCustomMaskEdit)

  function CreateEditor: TInplaceEdit; virtual;

  property InplaceEditor: TInplaceEdit read FInplaceEdit;

(También hay herederos especializados TInplaceEditorList, TDBGridInplaceEditor)

Pero estas propiedades son "Protected"

El problema lo solucionaría su pudiera de alguna manera aceder al metodo
TCustomDBGrid.InplaceEditor.SelectAll (Que si existe). En alguna parte leí que existe una manera para accesar los métodos y propiedades protegidas de un componente pero no recuerdo donde.

Nota: Preferiría usar el objeto DBGrid Original de Delphi 6.

Gracias

__cadetill 17-02-2004 19:18:01

Tendrías que hacer tu propio TDbGrid heredando de TDbGrid por ejemplo

Código:

  TMiGrid = class(TDBGrid)
  private
    FInplaceEdit: TInplaceEdit;
  public
    property InplaceEditor: TInplaceEdit read FInplaceEdit;
  end;


jachguate 18-02-2004 15:12:27

Si el valor de un campo depende de otros... también podes calcularlo en el OnChange de estos.

Hasta luego.

;)

sitrico 18-02-2004 18:52:41

Gracias a todos, al final me tuve que conformar con usar el evento OnNewRecord y calcular todos los valores con los valores por defecto, así cuando el usuario entra a la celda correspondiente, automáticamente se efectua el SelectAll.


La franja horaria es GMT +2. Ahora son las 22:49:33.

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