Ver Mensaje Individual
  #1  
Antiguo 05-10-2005
elcigarra elcigarra is offline
Miembro
 
Registrado: may 2005
Posts: 269
Reputación: 22
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