Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 29-08-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por vtdeleon
lo resolvi agregando el codigo de seleccionar todo en el eveno OnClick del edit.
El problema con esta solución es que nunca vas a poder deshacerte de la selección mediante clicks.

Cuando el edit no tiene el foco y das click en él, el texto queda seleccionado como es de esperarse. Pero ya teniendo el foco, lo que se espera es que si vuelves a dar click en él, se pierda la selección y el cursor se coloque donde diste el click.

Para resolver esto, en el evento OnClick deberías detectar si se tiene o no el foco, pero esto no es posible precisamente porque el evento OnEnter sucede antes del OnClick de manera que para cuando éste sucede ya se tiene el foco siempre.

La única manera en que yo he resuelto esto es derivando una componente de TEdit e interceptando directamente el mensaje WM_LBUTTONDOWN.

Para no tener que instalar una nueva componente coloca esta declaración antes de la declaración del formulario:


Código Delphi [-]
type
  TEdit = class(StdCtrls.TEdit)
  private
    procedure WMLButtonDown(var Message: TWMLButtonDown); message WM_LBUTTONDOWN;
  end;

e implementa WMLButtonDown así:


Código Delphi [-]
procedure TEdit.WMLButtonDown(var Message: TWMLButtonDown);
begin
  if Focused then
    inherited
  else
  begin
    SelectAll;
    SetFocus;
  end;
end;

// Saludos
Responder Con Cita
 



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 07:11:16.


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