Войти

Показать полную графическую версию : Вопрос по TMemo:


ilusha sh
17-03-2003, 03:30
как избежать появления текстового курсора
при получении фокуса компонентой
(не устанавливая enabled:=false)?

mar
17-03-2003, 10:15
указать другой курсор ;), или никакой, но это по сути тот же false

ilusha sh
17-03-2003, 12:02
А как задать другой ТЕСКСТОВЫЙ курсор?
(При enabled=false компонента не активна,  не вызываютса её
обработчики. Есть  и визуальные отличия - приглушенные цвета).

shurikan
17-03-2003, 16:01
ilusha sh
Можно уточнить для чего будет использоваться такое мемо? Просто для отображения какой либо информации или его содержимое необходимо редактировать, а курсор нужно отключить, что бы не отсвечивал? :wink:

shurikan
18-03-2003, 00:52
ilusha sh
Допустим этот компонент описан в форме как Memo: TMemo. Тогда, чтобы его нельзя было редактировать, присваиваешь свойству ReadOnly значение true, а для скрытия курсора - свойству Cursor соответственно crNone.
Примерно так:

Memo.ReadOnly := true;
Memo.Cursor := crNone;


:biggrin:

ilusha sh
18-03-2003, 01:22
Нет, редактировать мемо не нужно  (хотя мне интуитивно кажется,
что решение от этого не зависит). Важно отсутствие
ТЕКСТОВОГО курсора (а не отсутствие стрелочки/ладошки/часиков  Windows).

Добавлено:

т.е. я хочу избавиться от ВЕРТИКАЛЬНОЙ МИГАЮЩЕЙ ПАЛОЧКИ

shurikan
18-03-2003, 08:05
ilusha sh
Понял!
Тогда по некотором размышлении на ум приходит такое решение, не знаю насколько подойдёт. Во первых
Memo.TabStop := false;
это чтобы клавишей <TAB> в него не попасть, хотя следующий пункт должен сделать это неактуальным:
на событие OnEnter при проектировании вешаешь обработчик, который сразу переустанавливает фокус на другой контрол...
По-моему должно сработать, только я не уверен, можно ли будет из этого мемо текст в клипборд забирать...
:biggrin:

Добавлено:

Сейчас сам проверил: курсора нет, текст мышью не выделяется... :)

noname00.pas
18-03-2003, 09:16
Если на нём фокуса нет, то он сам прокручиваться не будет...

shurikan
18-03-2003, 09:20
noname00.pas
А иначе текстовый курсор не убирается... Либо надо самому новый контрол выводить по образу и подобию TMemo, но уже без этого курсора...
:gigi:

ilusha sh
18-03-2003, 13:00
Да, можно сделать так, что-бы компонента не получала фокус (можно этого добиться проще: tabstop=0) - однако это всё же не совсем корректное решение...
В своё время я решал подобную проблему в DOS - отлавливал адрес, где указывались атрибуты текстового курсора, и потрошил их.
Наверняка доступ и к этому курсору имеется через Win API (что-нибудь
типа скорости мерцания, формы и т.п).




© OSzone.net 2001-2012