Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #7  
Antiguo 25-05-2012
Avatar de champy
champy champy is offline
Miembro
 
Registrado: sep 2003
Ubicación: Alicante, España
Posts: 75
Poder: 23
champy Va por buen camino
Esto debería servirte.
En resumen, el procedimiento mira la última palabra que estás escribiendo en el Memo y si esa palabra puede ser transformada en un Flotante, como los importes por ejemplo, se muestra en un label el Mensaje "Pulsa Intro para: 0.000.000,00", al pulsar Intro se sustituye el valor por el valor formateado con separador de miles.

Código Delphi [-]
var
  Form1: TForm1;
  ULTPALABRA : STRING;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Memo1Change(Sender: TObject);
{Extraemos la última palabra escrita y si puede ser transformada en flotante se dará la posibilidad de formatearlo pulsando Intro}
var
   N : INTEGER;
   SALIR : BOOLEAN;
   NUMERO : DOUBLE;
begin
  //Recorremos el texto hacia atras hasta encontrar un Espacio o el principio del String
  SALIR:=FALSE;
  N := LENGTH(MEMO1.Text);
  REPEAT
    IF COPY(MEMO1.Text, N, 1) = ' ' THEN SALIR:=TRUE;
    N:=N-1;
  UNTIL (N<1) OR (SALIR=TRUE);
  
  //Se extrae la última palabra
  ULTPALABRA := COPY(MEMO1.TEXT, N+1, LENGTH(MEMO1.TEXT)-N);

  //Y si es un posible flotante, se muestra el mensaje de que Al pulsar Intro se la dará formato
  IF TRYSTRTOFLOAT(TRIM(ULTPALABRA), NUMERO) THEN
       LABEL1.CAPTION := 'Pulse Intro para: '+FORMATFLOAT('##,##0.00', NUMERO)
  ELSE
        LABEL1.CAPTION := '';
end;            

procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: char);
{Si el usuario ha pulsado enter, se reemplaza el posible importe por su valor formateado}
begin
  IF (KEY = #13) AND (LABEL1.CAPTION <> '') THEN
  BEGIN
    KEY:=#0;
    MEMO1.TEXT := STRINGREPLACE(MEMO1.Text, TRIM(ULTPALABRA), FORMATFLOAT('##,##0.00',STRTOFLOAT(ULTPALABRA)), [RFREPLACEALL]);
    MEMO1.SelStart := LENGTH(MEMO1.TEXT);
  end;
end;
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Multiplicar un edit con separador de miles rufo Varios 7 14-05-2012 18:41:22
formato separador de miles enresultados de consulta microbiano Varios 6 30-08-2011 01:04:42
Separador de miles como separador decimal jmselesan OOP 4 12-06-2011 22:21:54
Agregar separador de miles mjjj Varios 5 21-11-2007 10:51:15
Como setear el separador decimal y el separador de miles en WIN98 robertoe API de Windows 3 26-11-2006 17:12:02


La franja horaria es GMT +2. Ahora son las 17:31:28.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi