TEdit onclick seleccionar todos?

Cómo seleccionar todo el texto de un TEdit1 cada vez que el usuario haga clic en ella o haga clic en para seleccionar parte del texto de

  • Estoy confundido. Por favor aclarar tu pregunta. ¿Quieres saber cómo establecer TEdit para el comportamiento adecuado o cómo hacer para hacerlo mediante programación?
InformationsquelleAutor Rafik Bari | 2011-12-23

4 Kommentare

  1. 9

    Cómo seleccionar todo el texto de un TEdit1 cada vez que el usuario haga clic en él

    Seleccione Edit1 en la VCL editor y haga doble clic en el OnClick evento:

    TEdit onclick seleccionar todos?

    procedure TForm13.Edit1Click(Sender: TObject);
    begin
      Edit1.SelectAll;
    end;

    Usted también puede enlazar a este evento a otro control, como un botón.

    Seleccione el botón, seleccione y haga clic en el V de flecha para seleccionar un evento al que desea vincular.

    TEdit onclick seleccionar todos?

    Ahora ambos Edit1.OnClick y Button1.OnClick enlace para el mismo evento.

    • Esto es sólo un controlador de eventos. Se debe debe estar conectado a alguna parte para ser disparada.
    • Me refiero por cable a una propiedad de evento de un componente VCL. Presumiblemente Edit1 a juzgar por su nombre, pero también podría no ser así.
    • Has probado a utilizar un control de edición. Trate de colocar el cursor con el ratón.
    • Yo quería mantenerlo simple, pero poner un extra de prueba en hacer sólo selectall si la edición no tiene el foco. De todos modos buen punto, el simple cambio hace que sea mucho menos molesto.
    • Es demasiado tarde para poner la prueba en el OnClick. Lo mejor que puedes hacer es publicar un seleccione todos los mensajes a la ventana en la OnEnter.
    • Revertido la edición no quiero complicarse demasiado con este postmessage. Yo sólo quería mostrar, en general, de cómo el código del enlace a los eventos.

  2. 22

    Que puede ser muy peligroso hacer nada más allá de que el comportamiento por defecto de la TEdit de control. Los usuarios saben cómo el estándar de Windows se comportan los controles y cualquier desviación de esto pueda causar confusión.

    Por defecto, el selección automática se establece la propiedad True.

    Determina si todo el texto en el control de edición se selecciona automáticamente cuando el control recibe el foco.

    Conjunto AutoSelect para seleccionar todo el texto cuando el control de edición obtiene el foco. AutoSelect sólo se aplica a una sola línea de controles de edición.

    Uso AutoSelect cuando el usuario es más probable que reemplace el texto en el control de edición de anexar a la misma.

    Cuando esta propiedad es True, todo el contenido en el control de edición se selecciona cuando se pone el foco por medio de la acción de su teclado. Si el control recibe el foco por un clic del ratón, a continuación, el contenido no serán seleccionados. En el caso de que usted simplemente presione CTRL+a seleccionar todo. Un doble clic se selecciona la palabra debajo del ratón. Todo esto es un comportamiento estándar implementado por el subyacente de control de Windows.


    Si cambia la seleccione en respuesta a la OnClick evento, como por la respuesta seleccionado, a continuación, usted encontrará que es imposible mover el cursor con un clic del ratón. Esto es de suma contra-intuitivo comportamiento.

    Este es un ejemplo clásico de por qué es necesario ser muy cuidadoso acerca de cómo cambiar el comportamiento de un control de su defecto. Es simplemente muy fácil de no perder un caso de uso en particular, cuando las pruebas, pero cuando los usuarios obtener el programa, que está seguro de encontrar todas esas arrugas.

    Lo que ud. puede hacer es llamar a SelectAll de OnDblClick. Este sería, yo creo que no tiene los molestos efectos secundarios.

    Otra opción sería llamar SelectAll cuando el foco de conmutación para el control de edición, pero no cada vez que haga clic en el control. Esto podría sentirse un poco extraño para el usuario, pero yo personalmente creo que sería razonable tomar este curso de acción. Si usted desea hacer esto usted necesita para manejar la OnEnter caso de que el control de edición:

    procedure TForm1.Edit1Enter(Sender: TObject);
    begin
      PostMessage(Edit1.Handle, EM_SETSEL, 0, -1);
    end;
    • +1. Sensata respuesta a un loco que se trate.
    • Bonita explicación y artículo de opinión.
    • Yo estaba a punto de preguntarle a una pregunta similar, pero encontré esto en primer lugar. Excelente! Gracias, chicos.
  3. 3

    Cómo seleccionar texto de un TEdit1 cada vez que el usuario haga clic en él:

    procedure TForm1.Edit1Click(Sender: TObject);
    begin
      Edit1.SelStart:= 1;
      Edit1.SelLength:= 2;
    end;
  4. 0

    Debe utilizar OnMouseUp;

    procedure cxMRUEdit1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
     if Button=mbLeft then cxMRUEdit1.SelectAll;
    end;

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea