Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.02;
Скачать: CL | DM;

Вниз

Немигающая каретка: возможно ли это?   Найти похожие ветки 

 
lookin ©   (2005-09-10 19:39) [0]

Сабж...


 
Virgo_Style ©   (2005-09-10 20:08) [1]

Насколько я понимаю, после SetCaretBlinkTime(MaxInt); она не погаснет 24 дня. Этого мало? %-)


 
lookin ©   (2005-09-10 20:16) [2]

[1] Virgo_Style ©   (10.09.05 20:08)

Ну, насколько я понял, SetCaretPos сбрасывает состояние каретки на обратное.


 
Virgo_Style ©   (2005-09-10 20:34) [3]

lookin ©   (10.09.05 20:16) [2]

Хм... Это было бы неприятно :-) А откуда это следует? Я ничего такого не нашел, и эксперимент вроде ничего такого не выявляет...


 
lookin ©   (2005-09-10 20:53) [4]

[3] Virgo_Style ©   (10.09.05 20:34)

Эх, у меня выявляет... Т.е. я так считаю, судя по видимому...


 
Zeqfreed ©   (2005-09-10 21:09) [5]

lookin ©   (10.09.05 20:53) [4]
Virgo_Style ©   (10.09.05 20:34) [3]
Коды в студию, для сравнения :)


 
lookin ©   (2005-09-10 21:17) [6]

[5] Zeqfreed ©   (10.09.05 21:09)

Например, если это что-то объяснит:

//создание каретки
procedure TMacro.PaintCaret;
begin
 if CreateCaret(Window.Handle,0,2,Step.y) then begin
 ShowCaret(Window.Handle);
 SetCaretPos(LeftMargin,0);
 SetCaretBlinkTime(300000);
 end;
end;

//сдвиг каретки при вводе символа
procedure TMacro.WindowKeyPress(Sender: TObject; var Key: Char);
begin
 GetCaretPos(p);
 ...вычисляется новое значение p
 SetCaretPos(p.x,p.y);
end;


 
Virgo_Style ©   (2005-09-10 21:37) [7]

Практически весь мой код содержится в [1] %-)
Еще поставил SetCaretPos в Memo.OnChange, вот и все.

Может, я чего неправильно делаю, потому и работает? :o)


 
lookin ©   (2005-09-10 21:39) [8]

[7] Virgo_Style ©   (10.09.05 21:37)

Может я чего-то не так делаю?


 
lookin ©   (2005-09-10 21:41) [9]

[7] Virgo_Style ©   (10.09.05 21:37)

Что любопытно - в моем окошке каретка исчезает после ввода символа, хотя в дельфях - остается.... Почему бы это?


 
Virgo_Style ©   (2005-09-10 22:13) [10]

Хм, получил похожий эффект.

procedure TForm1.Memo1Change(Sender: TObject);
var p:TPoint;
begin
 GetCaretPos(p);
 SetCaretPos(p.x-10,p.y);
end;


При вводе символа в тот момент, когда каретка в начале строки, она стала исчезать (что, в принципе, логично).
При вычислении координаты каретки она точно не выходит за пределы поля ввода?


 
lookin ©   (2005-09-10 22:15) [11]

[10] Virgo_Style ©   (10.09.05 22:13)
>>При вычислении координаты каретки она точно не выходит за пределы поля ввода?

Абсолютно, она может оказаться вне поля зрения, но всегда в поле ввода...

Вообще у меня даже все проще, при наборе текста в видимой области каретка мигает (или исчезает, при миллисекундах оченна больших), но появляется в точности там, где надо...


 
Virgo_Style ©   (2005-09-10 22:34) [12]

lookin ©   (10.09.05 22:15) [11]

То есть, если не пытаться сделать ее немигающей, то она мигает, но видна как раз-таки все то время, когда и где должна быть?
Хм... Странно...


 
lookin ©   (2005-09-10 23:13) [13]

[12] Virgo_Style ©   (10.09.05 22:34)
>>То есть, если не пытаться сделать ее немигающей, то она мигает, но видна
>>как раз-таки все то время, когда и где должна быть?

Как раз если сделать ее "немигающей" путем [1], то она просто исчезает при вводе любого символа, хотя дол ввода остается немигающей



Страницы: 1 вся ветка

Текущий архив: 2005.10.02;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.033 c
2-1124562995
Пантелеев Иван
2005-08-20 22:36
2005.10.02
RadioGroup


4-1123532101
ronyn
2005-08-09 00:15
2005.10.02
Menu на иконкой в трее.


2-1124287843
Anton S.
2005-08-17 18:10
2005.10.02
Вопрос по RichEdit


14-1126294426
DesWind
2005-09-09 23:33
2005.10.02
Читаешь книгу - фидишь фигу.


9-1117434998
Egor
2005-05-30 10:36
2005.10.02
криптозащита