Форум: "Основная";
Текущий архив: 2005.10.02;
Скачать: [xml.tar.bz2];
ВнизНемигающая каретка: возможно ли это? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.004 c