Форум: "Основная";
Текущий архив: 2007.01.28;
Скачать: [xml.tar.bz2];
ВнизКак в Memo при наведении мыши на слово оно выделялось цветом Найти похожие ветки
← →
allrussia (2006-12-02 08:19) [0]Как по быстрому реализовать, чтобы при наведении на слово (словосочетание, предложение), отделенного от других запятыми, в Мемо курсора мыши оно отображалось другим цветом
вот скриншот:
http://slil.ru/23503047
← →
PZ (2006-12-02 10:44) [1]Проще для этого использовать компонент RichEdit
← →
allrussia (2006-12-02 10:57) [2]ок RichEdit, а пример можно или наводку
← →
PZ (2006-12-02 11:44) [3]Смотреть всеми нелюбимого здесь Архангельского, "Приемы программирования в Delphi. Версии 5-7"
← →
Leonid Troyanovsky © (2006-12-02 12:31) [4]
> allrussia (02.12.06 10:57) [2]
> ок RichEdit, а пример можно или наводку
http://home.att.net/~robertdunn/Yacs.html
--
Regards, LVT.
← →
allrussia (2006-12-02 12:51) [5]LVT
забыл указать, я в D7 сижу, а не в CBuider
короче я понял, чего нужно
нужно как в Delphi когда Ctrl жмешь и наводишь на слово подсветка была
← →
Leonid Troyanovsky © (2006-12-02 13:00) [6]
> allrussia (02.12.06 12:51) [5]
> забыл указать, я в D7 сижу, а не в CBuider
Ну и что?
Скажем, в msdn статьи написаны без оглядки на дельфи,
однако, настоящие дельфийцы их читают.
--
Regards, LVT.
← →
allrussia (2006-12-02 13:39) [7]упростим и до того примитивнейший вопрос, на который пока никто (кодом) не ответил:
в общем навожу я на слово (словосочетание) курсор мыши
и могу получить его содержание
вот пример из DWprocedure TForm1.RichEdit1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
var
iCharIndex, iLineIndex, iCharOffset, i, j: Integer;
Pt: TPoint;
s: string;
begin
with TRichEdit(Sender) do
begin
Pt := Point(X, Y);
// Get Character Index from word under the cursor
iCharIndex := Perform(Messages.EM_CHARFROMPOS, 0, Integer(@Pt));
if iCharIndex < 0 then Exit;
// Get line Index
iLineIndex := Perform(EM_EXLINEFROMCHAR, 0, iCharIndex);
iCharOffset := iCharIndex - Perform(EM_LINEINDEX, iLineIndex, 0);
if Lines.Count - 1 < iLineIndex then Exit;
// store the current line in a variable
s := Lines[iLineIndex];
// Search the beginning of the word
i := iCharOffset + 1;
while (i > 0) and (s[i] <> ",") do Dec(i);
// Search the end of the word
j := iCharOffset + 1;
while (j <= Length(s)) and (s[j] <> ",") do Inc(j);
// Display Text under Cursor
RESULT := Copy(s, i + 1, j - i - 1);
....
end;
end;
теперь как мне корректно поменять шрифт у выделенного слова:
я пробовал так
...
SelStart = i;
SelLength = j - i;
SelAttributes.Font.Style = fsUnderline
Прекрасно все работает, но
1: когда увожу мышку выделение и стиль шрифта остаются остается а мне нужно только стиль шрифта менять и не выделять текст
т.е . обратно то как поменять?
2: офигеть как моргает при перерисовке при наведении мыши
з.ы. в delphi в редакторе когда ctrl жмешь и подводишь курсов вообще не моргает и прекрасно отображается линк
← →
Джо © (2006-12-02 13:46) [8]> з.ы. в delphi в редакторе когда ctrl жмешь и подводишь курсов
> вообще не моргает и прекрасно отображается линк
Потому, что в редакторе Делфи используется не TRichEdit, а свой собственный компонент, исходников которого они, увы, не предоставляют.
← →
allrussia (2006-12-02 13:55) [9]Джо а поповоду другого моего топика не смотрел скрины есть что сказать?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2007.01.28;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.054 c