Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-1126243376
Stepan
2005-09-09 09:22
2005.10.02
Отладка в Delphi


1-1126026214
TerminalHead
2005-09-06 21:03
2005.10.02
Хоткеи в сервисе


1-1126591898
Shlomo
2005-09-13 10:11
2005.10.02
Web Server Application и Глобальные переменные?


1-1126347949
Kolan
2005-09-10 14:25
2005.10.02
Invalid Pointer Operation при работе с дин. массивом.


1-1126532421
stud
2005-09-12 17:40
2005.10.02
переключаться между листами книги ексель





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский