Ver Mensaje Individual
  #1  
Antiguo 13-07-2006
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Reputación: 22
ixMike Va por buen camino
Question ¿Selecciones iguales?

Por favor, necesito ayuda....

Esto puede parecer algo de poca importancia, pero no lo es (al menos para mí).

Veréis, todos nosotros conocemos las propiedades SelStart y SelLength del TMemo. SelStart indica dónde empieza la selección de texto y SelLength cómo es de larga esa selección.

Ahora haced lo siguiente (para que pueda explicaros mejor mi problema):
1º abrid el Bloc de Notas (o hacéis un programa en Delphi con un TMemo).
2º Escribís el texto "12345678901234567890"
3º Colocáis el cursor en la posición 10 (después del cero).
4º con el ratón o el teclado hacéis una selección hasta que el cursor se quede en la posición 5.

hastá aquí bien. Todo el mundo (menos yo, luego lo explico) estará de acuerdo en que SelStart vale 5 y SelLength vale 5.

ahora hacer justo lo contrario, es decir, os colocáis en la posición 5 y seleccionáis hasta la posición 10. Aquí sí que estamos todos de acuerdo en que SelStart y SelLength valen otra vez 5. Estas propiedades valen lo mismo que en el caso anterior, pero los casos no son los mismos, ya que antes el cursor estaba en 5 y ahora está en 10.

¿Qué pasa aquí?

Mi sugerencia es esta: SelStart debería indicar dónde a empezado a hacerse la selección, y SelLength debería poder tomar valores positivos o negativos, según la posición del cursor con respecto a SelStart (en el primer caso -5 y en segundo +5).

¿Alguien puede proporcionarme alguna solución para que esto sea así?
Intenté crear un componente derivado de TMemo para ello, algo así
Código Delphi [-]
unit NewMemo
 
...
 
type  TNewMemo=class(TMEmo)
         protected
        function GetSelStart: integer;override;
        function GetSelLength:integer; override;
        procedure SetSelStart(Value:integer);override;
        procedure SetSelLength(Value:integer);override;
...

pero no tengo ni idea de qué código poner.


Esto tiene su importancia en que en un programa tengo que poner la opción "Buscar a partir del cursor". ESto es muy facil cuando no hay selección(cursor=selstart) pero cuando hay texto seleccionado...


GRACIAS
Responder Con Cita