Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   UpperCase en DBGrid (https://www.clubdelphi.com/foros/showthread.php?t=15119)

Phacko 11-10-2004 19:05:56

UpperCase en DBGrid
 
Hola a todos.

Tengo una duda, ¿Hay algun "equivalente" de Caption o Text en el DBGrid para cada celda, para tener todo el texto en mayúsculas?

Gracias por su atención.
Buen día.

Hugo 15-10-2004 11:30:59

Siempre puedes especificar en la tabla o consulta, y a nivel de campo como quieres que se introduzcan los datos, con los cual seran pasado a mayusculas, minusculas o lo que quieras.

Phacko 15-10-2004 16:05:50

En run time
 
Que tal... gracias por responder.

Sucede que las tablas las creo dinamicamente, y es aqui donde no he sabido como indicar que el contenido de los registros se guarde en mayúsculas (por ejemplo), cabe mencionar que la captura de los registros (como fue obvio) se realiza en el mismo DBGrid.

Gracias.

Hugo 23-10-2004 10:25:29

Aunque crees la tabla dinamicamente, siempre puedes acceder al campo asociado a cada columna, y manipular las propiedades que te interesen:

DBGrid1.Columns[0].Field.EditMask:='>';

Si lo asocias el código a la creación del formulario, de la rejilla o a la apertura de la tabla, ..., donde mejor te convenga en cada momento, puedes controlar todo lo que desees, o casi.

Saludos.

AGAG4 23-10-2004 16:24:15

Prueba esto:
Código Delphi [-]
Uses
...
type
 {Truco para que Convierta de Minúsculas a Mayúsculas en las Celdas
  del dbGrid}
  TDBGrid = class(DBGrids.TDBGrid)
  protected
    function CreateEditor: TInplaceEdit; override;
  end;
public
....
end;
  THackEdit = class(TCustomEdit);
var
...

implementation
//Convierte de Minúsculas a Mayúsculas en Celdas del dbGrid
function TDBGrid.CreateEditor: TInplaceEdit;
begin
  Result := inherited CreateEditor;
  THackEdit(Result).CharCase := ecUpperCase;
end;

Espero te sirva esto.
Saludos.

roman 23-10-2004 17:11:38

Este código me suena conocido ;)

// Saludos

AGAG4 23-10-2004 17:28:32

Si, me lo proporcionó el Sr. Neftali....
:)
Que tenga buen día.

roman 23-10-2004 20:04:26

Cita:

Empezado por AGAG4
Si, me lo proporcionó el Sr. Neftali....

:eek: ¿Ah sí?

Creo que debes revisar un poco tus referencias ;)

// Saludos

AGAG4 23-10-2004 20:12:37

A poco usted me lo envio????
Si es asi le pido disculpas Sr. Roman. :(

Phacko 31-10-2004 03:05:37

A Todos.....
 
Gracias por su tiempo y ayuda.

makina 23-06-2011 00:12:16

Solo un campo en mayusculas
 
Hola hay forma de adaptar este codigo a un solo campo y no a todo el dbgrid?

Código Delphi [-]
Uses
...
type
 {Truco para que Convierta de Minúsculas a Mayúsculas en las Celdas
  del dbGrid}
  TDBGrid = class(DBGrids.TDBGrid)
  protected
    function CreateEditor: TInplaceEdit; override;
  end;
public
....
end;
  THackEdit = class(TCustomEdit);
var
...

implementation
//Convierte de Minúsculas a Mayúsculas en Celdas del dbGrid
function TDBGrid.CreateEditor: TInplaceEdit;
begin
  Result := inherited CreateEditor;
  THackEdit(Result).CharCase := ecUpperCase;
end;

Gracias de antemano.

roman 23-06-2011 17:58:02

Cita:

Empezado por makina (Mensaje 404543)
Hola hay forma de adaptar este codigo a un solo campo y no a todo el dbgrid?

Podemos intentar algo, pero tiene sus bemoles.

Primero creas el derivado de TDBGrid como antes, redefiniendo su método CreateEditor y también creas un derivado de TInplaceEdit para redefinir su método UpdateContents:

Código Delphi [-]
type
  TDBGrid = class(DBGrids.TDBGrid)
  protected
    function CreateEditor: TInplaceEdit; override;
  end;

  TInPlaceEditEx = class(TInplaceEdit)
  protected
    procedure UpdateContents; override;
  end;

UpdateContents se llama cada vez que se muestra el editor, así que es el que aprovechamos para actualizar la propiedad CharCase.

La implementación de ambos métodos sería así:

Código Delphi [-]
function TDBGrid.CreateEditor: TInplaceEdit;
begin
  Result := TInplaceEditEx.Create(Self);
end;

procedure TInplaceEditEx.UpdateContents;
begin
  CharCase := TEditCharCase((Grid as TDBGrid).SelectedField.Tag);
end;

Es decir, asignamos CharCase, según el valor de la propiedad Tag del campo activo (0-ecNormal, 1-ecUpperCase, 2-ecLowerCase). Normalmente, esta propiedad será igual a 0, por lo que todo queda igual.

Pero si en el editor de campos del dataset seleccionas el campo requerido, puedes asignarle 1 a la propiedad Tag y con ello dicho campo se editará en mayúsculas.

Pero, como dije, este método tiene sus bemoles, según comento aquí.

// Saludos

makina 23-06-2011 18:10:21

wOW
 
wOW. Sorprendente. muchas gracias voy a probarlo y regreso con mis comentarios.
Muchas Gracias.


La franja horaria es GMT +2. Ahora son las 13:51:54.

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