Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   problema con edit. (https://www.clubdelphi.com/foros/showthread.php?t=59782)

dgallardov 08-09-2008 23:27:12

problema con edit.
 
Hola tengo un edit en el cual estoy haciendo una validacion
el problema se presenta cuando por un motivo que desconozco el cursor se va al comienzo del edit y el texto se escribe adelante de las demas letras, mi consulta especifica que solucionaria este problema seria alguna forma de hacer que el cursor se vaya a la ultima letra ingresada en el edit o al final del edit.

saludos.

Fenareth 08-09-2008 23:55:20

Hola dgallardov !:)

Quiero tratar de entender...

Sin que ABSOLUTAMENTE NADA pase el cursor cambia de estar en la última posición al ir escribiendo, hasta la primera posición del TEdit ??? :confused:

Caro 09-09-2008 00:02:21

Hola dgallardov, puedes utilizar las propiedades SelStart y SeLength del Edit.

Código Delphi [-]
 Edit1.SetFocus;
 Edit1.SelLength := 0;
 Edit1.SelStart := Length(Edit1.Text);

Saluditos

Neftali [Germán.Estévez] 09-09-2008 08:47:14

Efectivamente con las propiedades que te expone Caro, podrás controlar la posición del cursor dentro del Edit y algunas cosas más. De todas formas, creo que lo que interesa saber en este caso, no es cómo evitar o solvertar ese comportamiento, sino porqué te está sucediendo eso.

Tal vez deberías explicar mejor qué estás haciendo con el Edit.

dgallardov 09-09-2008 14:19:41

Cita:

Empezado por Caro (Mensaje 312617)
Hola dgallardov, puedes utilizar las propiedades SelStart y SeLength del Edit.

Código Delphi [-]
 Edit1.SetFocus;
 Edit1.SelLength := 0;
 Edit1.SelStart := Length(Edit1.Text);

Saluditos

se agradece el codigo, eso me salvo, lo que estaba haciendo era lo siguiete
estaba validando un dni o rut en chile, al escribir los caracteres en el edit tenia que colocar automaticamente el digito verificador pero tenia que hacerlo dinamicamente ya que el rut puede ser menor a 8 caracteres, use este codigo por algun motivo al escribir el segundo caracter se posicionaba al comienzo del edit.
Código:

procedure TForm1.Edit1Change(Sender: TObject);
var
 texto,rut,letra,ultimo:string;
 largo:integer;
 i:integer;

begin
  texto:=edit1.text;
  largo:=length(texto);
 i:=0;
 for i:=1 to largo do
  begin
  if not(copy(texto,i,1) = '-') then
      begin
      rut:=rut+copy(texto,i,1);
      end;

      if i=(largo-1) then
      begin
      rut:=rut+'-';
      end;
  end;


 edit1.Text:=rut;
 Edit1.SetFocus;
 Edit1.SelLength := 0;
 Edit1.SelStart := Length(Edit1.Text);
end;

muy agradecido por la respuesta, he solucionado lo que necesitaba.

hasta pronto

RapiBurrito 10-09-2008 04:20:18

Cita:

Empezado por Caro (Mensaje 312617)
Hola dgallardov, puedes utilizar las propiedades SelStart y SeLength del Edit.

Código Delphi [-] Edit1.SetFocus; Edit1.SelLength := 0; Edit1.SelStart := Length(Edit1.Text);


Saluditos


Gracias!!! Este codigo me ayudo a mi Bastante :D

Y Gracias a quien pregunto!

Este es mi primer Post en esta comunidad :P!

Espero poder ayudar mas de lo que se que voy a molestar T_T!

Saludos!

elcolo83 11-09-2008 15:24:17

Otra forma tambien seria algo asi:
Código Delphi [-]
procedure TForm1.Edit1Change(Sender: TObject);
var i: integer;
begin
i:= e.SelStart;

//Aca poner el codigo que vos quieras...

E.SelStart:= i;
end;

Con esto mantenemos siempre el cursor en la posición que corresponde y evitamos que si edita algun caracter del centro del texto el cursor se mueva al final... es una opción mas...

Saludos


La franja horaria es GMT +2. Ahora son las 13:27:17.

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