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 27-03-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Mascara & Edit

Saludos,

Como puedo hace que un edit o maskedit tenga el formato $ 000,000.00?

Intente hacerlo con el Maskedit, pero no funciona adecuadamente ya que cuando quiero introducir 234.43 en el Maskedit sale $234,000.43 y lo que quiero es que salga $234.34 , que los digitos de miles no aparezcan.

Espero haber sido claro.

Grax.
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #2  
Antiguo 28-03-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Encontre la solucion en Rxlib (en la pagina de cadetill) con el Currencyedit.

Aun asi, me gustaria saber si existe otra manera de hacer esto
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!

Última edición por vtdeleon fecha: 28-03-2005 a las 01:26:15.
Responder Con Cita
  #3  
Antiguo 28-03-2005
alfredosg19 alfredosg19 is offline
Miembro
 
Registrado: ene 2005
Ubicación: Barcelona
Posts: 91
Poder: 20
alfredosg19 Va por buen camino
Difícil elección.

Hola, antes que nada decir que yo también tuve este problema, ufff y fue bastante complicado solucionarlo porque yo necesitaba que quedase lo más perfecto posible. Antes que nada deberías plantearte quienes serán los usuarios del programa, y para qué vas a utilizar el programa. Si el programa es para ti, o un amigo o algo puedes usar el Mask edit que es más fácil y rápido. Si pones en la máscara un 9 (no es obligatorio introducir un número sólo opcional
$999,000.99;1;
Y si es para algo profesional yo te recomiendo que utilices un Edit, pero te encontrarás con muchos problemas por el tema de la coma y del punto. Si sigues por este camino estaremos en contacto. ¡Suerte!.
__________________
"La perseverancia es el camino del éxito"
Responder Con Cita
  #4  
Antiguo 28-03-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Lo unico que se me ocurre es lo sgte (algo facil), pero no muy efectivo:

HAcer que edit solo acepte numeros y el punto, poner su propiedad selectall en true y en el evento onexit:
Código Delphi [-]
  if LeftStr(edit1.Text,1) <> '$' then
  begin
    edit1.Text:=FormatFloat('$##,##0.00',StrToFloat(edit1.Text));
  end;
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #5  
Antiguo 28-03-2005
alfredosg19 alfredosg19 is offline
Miembro
 
Registrado: ene 2005
Ubicación: Barcelona
Posts: 91
Poder: 20
alfredosg19 Va por buen camino
Como lo hice yo.

Hola de nuevo, te explico como lo hice yo, me llevo mucho tiempo y puede que sea la mejor solución pero a mí me funciona perfectamente. Para empezar puse un Edit y en el Keypress puse los carácteres que se podrían introducir en el Edit, y si no son estos que se introduzca el #0 es decir el carácter null(nada). Hice una función que se llama Activacomas, para activar las comas o desactivarlas (no se pueden escribir dos comas dentro del mismo Edit, ni en el primer carácter).

Código:
procedure TfrmCanvi.edPagatKeyPress(Sender: TObject; var Key: Char);
 var a: integer;
 Begin
   If Activacomes=False then
 	If Not (Key IN ['0'..'9',#8]) then
 	  key :=#0 ;
 
   If Activacomes=True then
 	Begin
 	  If Not (Key IN ['0'..'9',#8,',']) then
 		key := #0;
 	  If (Key=',') and (edPagat.Text='') then
 		If Not (Key IN ['0'..'9',#8]) then
 		  key :=#0 ;
 	end;
 end;
La función activacomes es la siguiente:
Código:
 function TfrmCanvi.Activacomes: Boolean;
 var
 I, cont: Integer;
 car, copia: String;
 begin
   cont:=0;
   copia:=edPagat.Text;
   For i:=1 to Length(copia) do
 	Begin
 	  car:=copy(copia,i,1);
 	  if car=',' then
 		cont:=cont+1;
 	end;
 If Length(EdPagat.Text)>=5 then
  cont:=1;
 
 if cont>0 then
  result:=False
 else
  result:=True;
 end;
Claro ahora tu complicación está además en el tema del punto, pero supongo que lo podrás hacer igual que la coma. Bueno ya lo probarás y me dirás si te sirvió y si no ya inventaremos otra cosa.¡Suerte!.
Un saludo: Alfredo.
__________________
"La perseverancia es el camino del éxito"
Responder Con Cita
  #6  
Antiguo 29-03-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos,

Antes que todo, Gracias alfredosg19 por tu interes .

Me parece ingeniosa esa forma (la utilizare en otro asuntillo que tengo ), pero el usuario tendria que introducir las comas el mismo.

Has visto el componetne CurrencyEdit de la LibRx?

En realidad me gustaria hacer ese!!.

Parece un edit normal, al momento de digitar numeros (1123) y salir del edit este comvierte los numeros en la moneda oficial ($RD1,123.00 Rep. Dom.) que tiene configurada mi pc. Cuando intento modificar el valor del edit, quita el formato que este contiene.

Una idea que me viene a la mente ( pero no he usado y no se si se puede) es la de los comentarios de un hilo en la que un campo memo mostraba su data en un grid utilizando Canvas(no se utilizar mucho esto).
Código Delphi [-]
procedure Tfrmcons.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
const
DX = 5;
DY =2;
var
Str:String;
begin
if(Column.Field is TMemoField) then begin
Str := TMemoField(Column.Field).AsString;
DBGrid1.Canvas.TextRect(Rect, Rect.Left + dx, Rect.Top + DY, Str);
end;
end;
Gracias
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #7  
Antiguo 04-05-2005
axelbb axelbb is offline
Miembro
 
Registrado: oct 2004
Posts: 127
Poder: 20
axelbb Va por buen camino
Thumbs down ¿¿Pero cómo puede ser??

Yo tengo el mismo problema para ingresar un simple importe formato 9999999.99.
¿Como puede ser que Delphi no tenga una máscara o componente nativo decente para una función tan elemental, que cualquier lenguaje de bases de datos para DOS lo tenía??? Pensé que lo había y yo no podía encontrarlo (soy nuevito en Delphi), y buscando me encontré con mucha gente en la misma, y con soluciones complicadísimas... ¡¡para un CHOTO ingreso de importes!!!
Responder Con Cita
  #8  
Antiguo 04-05-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Talking

Saludos
Como habia citado antes
Cita:
Empezado por vtdeleon
Encontre la solucion en Rxlib (en la pagina de cadetill) con el Currencyedit.
Es la unica solucion que he encotrado, y es muy buena.
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #9  
Antiguo 05-05-2005
axelbb axelbb is offline
Miembro
 
Registrado: oct 2004
Posts: 127
Poder: 20
axelbb Va por buen camino
Smile De donde se baja?

Si, vi el comentario, pero no encontré la página. Leí otros comentarios acerca de la dificultad de instalarla. ¿Dónde puedo bajarla?
Gracias!
Responder Con Cita
  #10  
Antiguo 05-05-2005
axelbb axelbb is offline
Miembro
 
Registrado: oct 2004
Posts: 127
Poder: 20
axelbb Va por buen camino
Post Encontré una versión.

Encontré por ahí una versión, la instale OK, creo. Gracias!
Responder Con Cita
  #11  
Antiguo 05-05-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Cita:
Empezado por axelbb
Si, vi el comentario, pero no encontré la página. Leí otros comentarios acerca de la dificultad de instalarla. ¿Dónde puedo bajarla?
Gracias!
Buscan en www.torry.net
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #12  
Antiguo 16-06-2005
Avatar de Crazyro
Crazyro Crazyro is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 14
Poder: 0
Crazyro Va por buen camino
Las RxLib, las puedes encontar en esta web, en la sección Componentes, en la tercera página lo puedes encontrar.

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


La franja horaria es GMT +2. Ahora son las 17:00:45.


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