Ver Mensaje Individual
  #1  
Antiguo 08-05-2007
Wellnic Wellnic is offline
Miembro
 
Registrado: mar 2007
Posts: 68
Reputación: 18
Wellnic Va por buen camino
Posición del cursor de texto

Esta es la única manera que encontré para saber en todo momento la posición del cursor en cualquier componente de edición de texto. En el ejemplo utilizo un Edit, pero vale para otros controles de texto (Memo, RichEdit...):

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
Timer1.Interval:= 1;
// (mejor poner este dato directamente en el Object Inspector)
end;

procedure TForm1.Edit1MouseDown(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);

 // (más efectivo que OnClick)
begin
Timer1Timer(Sender);//al hacer clic se puede escribir directamente la posición del cursor
end;

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
          Shift: TShiftState);

begin
Timer1.Enabled:= True;//se activa el temporizador...
//(se difiere porque la posición del cursor aún no está actualizada)
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label1.Caption:= IntToStr(Edit1.SelStart);//... en cuyo evento se escribe la posición correcta del cursor
Timer1.Enabled:= False;//y se desactiva para evitar actualizaciones innecesarias
end;
Responder Con Cita