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 05-10-2005
elcigarra elcigarra is offline
Miembro
 
Registrado: may 2005
Posts: 269
Poder: 19
elcigarra Va por buen camino
Focused mas no selected

Amigos, dos preguntas parecidas (sobre texto seleccionado).

a) Tengo un TEdit y en determinada opción de la aplicación le mando el foco. Cuando este componente toma el foco, su texto queda seleccionado (en azul). ¿Puedo darle foco sin que se seleccione el texto, es decir que el cursor quede a la derecha esperando nuevos caracteres?

b) Tengo el mismo edit y un StringList.
Supongamos que escribo algo de texto en un comboBox. Si es el caso se agregará a la derecha del cursor el resto de una opción del combo que coincida, con texto "seleccionado". ¿Puedo simular esto escribiendo en el Edit y completando (si es el caso) con texto seleccionado de algun String de la lista que coincida? Es decir, que en todo momento el Edit combinado con el StringList muestre exactamente lo mismo que mostraría un ComboBox con esa lista de "Items" si se estuviera escribiendo sobre él?
Responder Con Cita
  #2  
Antiguo 05-10-2005
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
Para lo primero, la propiedad AutoSelect tiene q ser a False, tb puede servirte la propiedad SelStart para posicionarte al inicio del edit.

para lo segundo, pon un combo y asignale csSimple a su propiedad Style, asi tendras una edit..
__________________
¿Microsoft? No, gracias..
Responder Con Cita
  #3  
Antiguo 05-10-2005
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola

Para lo primero podrias hacer lo siguiente en el evento OnEnter:

Código Delphi [-]
procedure TgbFrm_Principal.Edit2Enter(Sender: TObject);
begin
       Edit.SelStart:=Length(Edit.text);
       Edit.SelLength:=Length(Edit.text);
end;

Saludos
Responder Con Cita
  #4  
Antiguo 05-10-2005
elcigarra elcigarra is offline
Miembro
 
Registrado: may 2005
Posts: 269
Poder: 19
elcigarra Va por buen camino
me contesto yo mismo. Para simular el autoselect de un Combo con un TEdit (Edit1) y un StringList (Lista):

Código Delphi [-]
  
procedure TForm1.Edit1Change(Sender: TObject);
var
  i,lon: Integer;
begin
  for i := 0 to Lista.Count-1 do begin
    // para que sea igual al de un combo debe ser case insensitive
    if Pos(UpperCase(Edit1.Text),UpperCase(Lista.Strings[i])) = 1 then begin 
      Lon:= Length(Edit1.Text); // Posición del cursor
      // Le sumo lo que restaría del string coincidente 
      // sin cambiar las cases que ya tengo escritas
      Edit1.Text := Edit1.Text + 
                    AnsiRightStr(Lista.Strings[i],Length(Lista.Strings[i])-Lon);
      Edit1.SelStart := Lon; // Desde donde va a seleccionar
      Edit1.SelLength := Length(Edit1.Text) - Lon; // N° de caracteres a seleccionar
      Exit; // Por si hay más de una coincidencia
    end;
  end;
end;
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 08:35:23.


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