Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-04-2010
sizne sizne is offline
Miembro
 
Registrado: mar 2010
Posts: 104
Poder: 15
sizne Va por buen camino
Escribir mayuscula minuscula

Hola!
Como puedo hacer para escribir en un DBEdit o TEdit, ejemplo;

"Club Delphi Es Lo Mejor"

Sin importar que el BloqMayùs este activado o desactivado?

Gracias
Responder Con Cita
  #2  
Antiguo 19-04-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola sisne.

El TDBEdit hereda de TCustomEdit la propiedad CharCase de tipo TEditCharCase, esta puede tomar los siguientes valores:ecNormal, ecUpperCase, ecLowerCase.

ecNormal: Se respeta el texto tal como se ingresa.
ecUpperCase: Todo el texto es pasado a mayúsculas.
ecLowerCase: Todo el texto es pasado a minúsculas.

Podés elegir dicha propiedad desde el Object Inspector, espero que sea eso lo que preguntas.


Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 19-04-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Perdón sisne, me confundí al interpretar tu mensaje (no sé donde tengo la cabeza...)

Para que lo que escriban quede tál como lo ingresan, Bloq Mayus tiene que estar desactivada.
Para detectar si esta o no desactivada y cambiar el estado podes usar este codigo:
Código:
procedure TForm1.FormCreate(Sender: TObject);
var
  KeybEstat: TKeyboardState;
begin
   GetKeyboardState(KeybEstat); // Tomar estado teclado
   if KeybEstat[VK_CAPITAL] = 1 then   // Bloq Mayus presionado (0= no)
     CambiarCapital;     // Cambiar
end;
 
{ Cambia estado Bloq Mayus }
procedure CambiarCapital;
begin
   //Presionar Bloq Mayús
   keybd_event(VK_CAPITAL,0,KEYEVENTF_EXTENDEDKEY,0);
   //Soltar Bloq Mayús
   keybd_event(VK_CAPITAL,0,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,0);
end;
En este ejemplo hice que, si Bloq Mayus esta activada se desactive al entrar al Form, pero podrías Activar/Desactivar, al entrar o salir de un componente con sólo llamar a CambiarCapital nuevamente.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 19-04-2010 a las 17:45:39.
Responder Con Cita
  #4  
Antiguo 19-04-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Y que tal si se pone el siguiente código en el evento OnKeyPress del Edit en cuestión.
Código Delphi [-]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
   begin
      with Sender as TEdit do
         if (Text = '')
         or (Text[SelStart] = ' ')
         or (SelLength = Length(Text)) then
            if Key in ['a'..'z'] then  Key := UpCase(Key);
   end;
.
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #5  
Antiguo 19-04-2010
LuisAlf:: LuisAlf:: is offline
Miembro
 
Registrado: nov 2009
Posts: 60
Poder: 15
LuisAlf:: Va por buen camino
Hola...

Espero que no sea demasiado tarde en responder pero yo alguna vez trabaje con algo parecido....

Mira una manera de hacerlo es con el evento onkeypress del componente...

No te paso el codigo....mejor te doy la idea...

Bueno lo que puedes hacer es almacenar en una variable global de tipo char la tecla presionada es decir la que pasa como parametro tal evento (Key: char)...
Para que siempre puedas tener la letra anteriormente escrita...

Por ejemplo si (if) hay un ' ' (espacio) anterior pues aplicas que la key ya presionada(letra) se convierta a mayuscula automaticamente:

Key := AnsiUpperCase(Key)[1];

Ha y tambien tienes que evaluar en el if si es la primera letra pulsada, lo puedes hacer si la variable global char=''(que indica que no ha almacenado nada)....

Y ademas creo que es necesario evaluar el salto de linea tambien...es decir si
la variable global char=#13.....

Estas tres condiciones las evaluas en un if con un or y ya está.....

PD: La variable global que almacena el key debe ser la última instrucción dentro del evento keypress.....
Responder Con Cita
  #6  
Antiguo 19-04-2010
LuisAlf:: LuisAlf:: is offline
Miembro
 
Registrado: nov 2009
Posts: 60
Poder: 15
LuisAlf:: Va por buen camino
Unhappy

Bueno...

Parece que ya me ganaron......

Muy buen codigo...
Responder Con Cita
  #7  
Antiguo 20-04-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola a todos.

Todas las propuestas están acertadas, pero veo que hemos tomado diferentes criterios sobre lo que pide sisne.

Cita:
Como puedo hacer para escribir en un DBEdit o TEdit, ejemplo;
"Club Delphi Es Lo Mejor"
Sin importar que el BloqMayùs este activado o desactivado?
Veo que rgstuamigo y LuisAlf, interpretaron que quiere las primeras letras de las palabras en mayúsculas, tál como figura en el segundo renglón del post.
Pero si BloqMayus esta activa no obtendrá ese resultado...

Yo por mi parte hice incapié en el tercer renglón, pensando que quería poder escribir mayúsculas y minúsculas independientemente de que hubieran presionado BloqMayús.
Pero no obtendrá la primer letra de la palabra en mayúsculas...

Creo que combinando los códigos, sisne podrá cubrir sus espectativas.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 20-04-2010 a las 01:54:47.
Responder Con Cita
  #8  
Antiguo 20-04-2010
sizne sizne is offline
Miembro
 
Registrado: mar 2010
Posts: 104
Poder: 15
sizne Va por buen camino
Hoola!

ecfisa exacto sin importar si esta o no el Bloq Mayús activado, la cuestión es que en el Tedit me permita escribir cada comienzo de una nueva letra o palabra después del espacio en mayúscula.


Muchas Gracias A Todos Eh!!

Saludos.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Primeras letras en mayúscula pablo Varios 11 13-08-2015 16:46:01
convertir de minuscula a mayuscula airam C++ Builder 8 19-08-2008 23:26:55
Mayuscula y Minuscula lucasarts_18 Firebird e Interbase 3 16-10-2005 23:54:13
Siempre escribir en mayuscula en un grid el_barto Varios 11 16-06-2005 18:05:34


La franja horaria es GMT +2. Ahora son las 05:23:56.


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