Ir al contenido


Foto

EDIT


  • Por favor identifícate para responder
11 respuestas en este tema

#1 root

root

    mister

  • Miembro Platino
  • PipPipPip
  • 529 mensajes
  • LocationMexico D.F:

Escrito 15 julio 2010 - 08:25

Ssaludos

Otra duda

se pude hacer que un edit en su propiedad text
los datos que se capturen sean de derecha a izquierda ?

esto es para tenerlo lleno de "0" ( ZERO ) y
cuando lo llenen si faltaban números por capturar
estos queden llenos con ZERO  ??

GRACIAS
  • 0

#2 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 15 julio 2010 - 09:08

No te entiendo bien. Cualquier cadena de texto la puedes completar llenando con ceros hasta la longitud que desees...

Saludos.
  • 0

#3 root

root

    mister

  • Miembro Platino
  • PipPipPip
  • 529 mensajes
  • LocationMexico D.F:

Escrito 15 julio 2010 - 09:34

ok a ver me explico de nuevo.

necesito hacer un edit lleno de ceros  ( eso creo esta facil )
luego que los tados vallan apareciendo de derecha a izquierda, al contrario de lo normal
y que se vallan borrando los ceros que estan,
por que el campo es para 9 caracteres, si me ponen 8 es que esta incompleto,
pero algunos de esos datos empiezan con cero ( no tengo idea de el por que )
pero tendran los usuarios que capturarlo completo el campo

9 digitos y que en caso de que no se completen se le ponga un 0 al principio
  • 0

#4 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 15 julio 2010 - 09:47

Bueno para alinear el texto del Edit a la derecha tienes que hacer esto en el OnCreate:




delphi
  1. procedure TForm1.FormCreate(Sender: TObject);
  2. begin
  3.   SetWindowLong(Edit1.Handle,GWL_STYLE,GetWindowLong(Edit1.Handle,GWL_STYLE) or ES_RIGHT);
  4. end;



El relleno con ceros seguro que lo sabes realizar a la perfección.

Saludos.

  • 0

#5 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 15 julio 2010 - 12:37

Saludos.

Con lo que Escafandra te menciona puedes alinear a la derecha el texto.

Ahora bien, utiliza la propiedad MaxLength para indicar la cantidad máxima de caracteres que vas a permitir.  Eso del relleno de ceros lo puedes hacer tú mismo, no necesariamente lo debe de hacer el usuario, con la propiedad que te indique te aseguras que el texto digitado no va a hacer mayor del que necesitas.

Con este código puedes rellenar de ceros:


delphi
  1. Edit1.Text := FormatFloat('000000000', StrToFloat(Edit1.Text));



Falta asegurarnos de que los caracteres digitados sean número, puedes interceptar el evento OnKeyPress:


delphi
  1. procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
  2. begin
  3.   if not (key in['0'..'9',#8]) then
  4.     key:=#0;
  5. end;



Espero que esto te sirva, prueba y nos avisas como te fue. (y)
  • 0

#6 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 15 julio 2010 - 01:22

Por si resulta un poco complejo, propongo este ejemplo:
Un Edit con el texto '000000000' (9 ceros) y su propiedad MaxLength = 9.
y este código:



delphi
  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, SysUtils, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
  7.  
  8. type
  9.   TForm1 = class(TForm)
  10.     Edit1: TEdit;
  11.     procedure FormCreate(Sender: TObject);
  12.     procedure Edit1KeyPress(Sender: TObject; var Key: Char);
  13.   end;
  14.  
  15. var
  16.   Form1: TForm1;
  17.  
  18. implementation
  19.  
  20. {$R *.dfm}
  21.  
  22. procedure TForm1.FormCreate(Sender: TObject);
  23. begin
  24.   SetWindowLong(Edit1.Handle,GWL_STYLE,GetWindowLong(Edit1.Handle,GWL_STYLE) or ES_RIGHT);
  25. end;
  26.  
  27. procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
  28. begin
  29.   if (key in['0'..'9',#8]) then
  30.   begin
  31.     Edit1.Text := FormatFloat('00000000'{ocho ceros}, StrToFloat(Edit1.Text));
  32.     Edit1.SelStart:=Length(Edit1.Text);
  33.   end else Key:= #0;
  34. end;
  35.  
  36. end.



El edit trabaja alineado a la derecha, se muestra lleno de ceros que se van sustituyendo por los números pulsados.

Espero que sea lo que estás buscando.

Saludos.
  • 0

#7 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 15 julio 2010 - 01:25

Vaya vaya, amigo escafandra no se vaya a olvidar de delphi en sus vacaciones :D :D :D

Salud OS
  • 0

#8 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 15 julio 2010 - 01:36

Aunque me siento mas cómodo con C que con delphi (raro ¿no?)  y desde mañana estaré desconectado durante 15 días, no me olvidaré.  :D :D :D

Saludos.
  • 0

#9 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 15 julio 2010 - 02:46

Vaya vaya, amigo escafandra no se vaya a olvidar de delphi en sus vacaciones :D :D :D

Salud OS


Aunque me siento mas cómodo con C que con delphi (raro ¿no?)  y desde mañana estaré desconectado durante 15 días, no me olvidaré.  :D :D :D

Saludos.


Y si se olvida, conozco un foro excelente donde pueden ayudarlo a re-encontrar el camino :D :D (y)...

Saludox ! (h)

P.D. No desvirtúen el hilo.... :p
  • 0

#10 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 15 julio 2010 - 02:51

Y si se olvida, conozco un foro excelente donde pueden ayudarlo a re-encontrar el camino :D :D (y)...

  ^o| ^o| ...mmm ¿Será www.delphiaccess.com?


:D :D :D

Saludos.

  • 0

#11 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 15 julio 2010 - 02:53


Y si se olvida, conozco un foro excelente donde pueden ayudarlo a re-encontrar el camino :D :D (y)...

  ^o| ^o| ...mmm ¿Será www.delphiaccess.com?


:D :D :D

Saludos.


No ahí no porque dicen que nomás hechan relajo y hechan a perder los hilos de ayuda

:D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D  Falacias !!!!!!!!

Saludox ! (h) (<<< nótese el lente playero)
  • 0

#12 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 15 julio 2010 - 03:22

:cool:

Saludos.
  • 0




IP.Board spam blocked by CleanTalk.