Форум: "WinAPI";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];
ВнизRichEdit как в Delphi IDE Найти похожие ветки
← →
n0name (2006-08-22 10:50) [0]Собственно сабж.
Как релизовать RichEdit такой же как и в Delphi 7 IDE.
А именно что я хочу:
1. Перемещения каретки по RichEdit"у даже при отсутсвии символов.
2. Алгоритм Smart Tab"a.
← →
clickmaker © (2006-08-22 10:53) [1]
> Перемещения каретки по RichEdit"у даже при отсутсвии символов
ричэдит не умеет
> Алгоритм Smart Tab"a
ну инденты (табы) можно и вручную расставлять
← →
n0name (2006-08-22 10:58) [2]
> ричэдит не умеет
Ясное дело что не умеет %)
Borland не переписывал же контрол с нуля?
Вот я и хочу узнать в какую сторону копать.
← →
clickmaker © (2006-08-22 11:04) [3]
> Borland не переписывал же контрол с нуля?
а с чего ты взял, что борланд взял за основу ричэдит?
← →
Ketmar © (2006-08-22 11:22) [4]в IDE нет RichEdit"а. там редактор, написаный "с нуля".
← →
n0name (2006-08-22 12:57) [5][3] - а на чём ещё?
[4] - откуда такие сведения?
← →
clickmaker © (2006-08-22 13:03) [6]
> [5] n0name (22.08.06 12:57)
а что, на нем свет клином сошелся?
← →
n0name (2006-08-22 13:47) [7][6] - нет, но стандартными полями ввода являются Edit и RichEdit. RichEdit мне кажется более вероятным, тк там возможна подсветка синтаксиса, многоуровневая отмена операций.
← →
clickmaker © (2006-08-22 14:10) [8]
> нет, но стандартными полями ввода являются Edit и RichEdit
ну по твоей логике, в Ворде тоже что-то из них, да? Узко мыслишь...
> там возможна подсветка синтаксиса,
а ты пробовал сделать подсветку в ричэдит?
← →
n0name (2006-08-22 14:29) [9]>>а ты пробовал сделать подсветку в ричэдит?
Не только пробовал, но и делал.
>>ну по твоей логике, в Ворде тоже что-то из них, да? Узко мыслишь...
в [5] я спросил какие ещё могут быть варианты, ответа не получил.
Word ориентирован на работу не только с текстом.
← →
clickmaker © (2006-08-22 14:45) [10]
> Не только пробовал, но и делал
и нормально работает? с undo проблем нет? Мне интересно, потому что я в свое время тоже пытался...
> какие ещё могут быть варианты
[4]
← →
ANB © (2006-08-22 14:53) [11]Ставим SynEdit и все работает на ура без особых проблем.
← →
n0name (2006-08-22 16:05) [12]
> и нормально работает? с undo проблем нет? Мне интересно,
> потому что я в свое время тоже пытался...procedure EditSetCharFormat(hEdit: DWORD; TextColor: DWORD; BkColor: DWORD; Options: DWORD; Mask: Byte);
var
CharFormat: TCharFormat2;
begin
ZeroMemory(@CharFormat, sizeof(TCharFormat2));
CharFormat.cbSize := sizeof(TCharFormat2);
if (Mask and 1) > 0 then
begin
CharFormat.crTextColor := TextColor;
CharFormat.dwMask := CharFormat.dwMask or $40000000;
end;
if (Mask and 2) > 0 then
begin
CharFormat.crBackColor := BkColor;
CharFormat.dwMask := CharFormat.dwMask or $04000000;
end;
if (Mask and 4) > 0 then
begin
CharFormat.dwEffects := Options;
CharFormat.dwMask := CharFormat.dwMask or $00000007;
end;
SendMessage(hEdit, $444, 1, DWORD(@CharFormat));
end;
Это для изменения цвета, стилей написания. А с алгоритмом тоже трудностей не должно быть. отлов EN_CHANGE.
> [4]
Возможно так и сделаю.
← →
clickmaker © (2006-08-22 16:25) [13]
> SendMessage(hEdit, $444, 1, DWORD(@CharFormat));
EM_SETCHARFORMAT то бишь... Логично. Но я уперся в то, что смена форматирования обновляет undo-буфер, что при подсветке лишнее.
Как ты с этим-то боролся?
← →
Ketmar © (2006-08-22 18:30) [14]> [5] n0name (22.08.06 12:57)
такие сведения от ковыряния в своё время кода IDE.
← →
n0name (2006-08-22 18:33) [15]
> Как ты с этим-то боролся?
Никак. В одном из уроков Iczlion"a говориться то, что undo-буфер необходимо очищать для того, чтобы невозможно было отменить смену цвета.
← →
Ketmar © (2006-08-22 18:52) [16]> [15] n0name (22.08.06 18:33)
гениально. а чьи это слова: "там возможна подсветка синтаксиса, многоуровневая отмена операций" -- не подскажешь? и как они согласуются (особенно последняя часть) с очисткой буфера отмены?
← →
n0name (2006-08-22 18:59) [17]
> Ketmar © (22.08.06 18:52) [16]
Подскажу, мои.
Разве я написал что всё вместе?
В MSDN"е есть таблицы с возможностями RichEdit"a разных версий. Там тоже перечисляются, не скажешь ли ты что они не правы?
← →
Ketmar © (2006-08-22 19:11) [18]семантика русского языка подразумевает в данной фразе союз "и".
← →
n0name (2006-08-22 19:29) [19]
> семантика русского языка подразумевает в данной фразе союз
> "и".
Да.
Приведу пример.
"Вася умеет бегать, плавать."
Семантика подразумевает собз "и".
И из этого предложения ты делаешь вывод, что Вася одновременно с бегом плывет?
← →
Ketmar © (2006-08-22 20:52) [20]> [19] n0name (22.08.06 19:29)
из этого я делаю вывод, что когда Вася начинает бегать, он не утрачивает магически возможности плавать.
← →
Дмитрий Белькевич © (2006-08-23 02:36) [21]>и нормально работает? с undo проблем нет? Мне интересно, потому что я в свое время тоже пытался...
Ну, мы у себя и подсветку сделали и андо-редо многоуровневое на основе стандартного tmemo. Работает нормально и то и то. Если бы в нашем случае можно было применить моноширинный шрифт, использовали бы такой же редактор, как в Делфе. Что-то похожее, если не ошибаюсь, в jvcl включено.
← →
Ketmar © (2006-08-23 02:44) [22]> [21] Дмитрий Белькевич © (23.08.06 02:36)
SynEdit.
← →
n0name (2006-08-23 06:04) [23]
> из этого я делаю вывод, что когда Вася начинает бегать,
> он не утрачивает магически возможности плавать.
Конечно не утрачивает, и RichEdit не утрачивает. Но не одновременно.
← →
Ketmar © (2006-08-23 10:59) [24]> [23] n0name (23.08.06 06:04)
как бы так попонятней... во-первых, пример не совсем корректен. во-вторых, не настроен я по-утру на дискуссии. хочешь, я соглашусь, что ты прав, а я -- нет? мне всё равно, а тебе -- вдруг да и приятно? %-)
← →
n0name (2006-08-23 12:27) [25]
> Ketmar © (23.08.06 10:59) [24]
Один фиг это схоластическая дискуссия. Ни мне ни тебе %)
← →
Ketmar © (2006-08-23 12:32) [26]> [25] n0name (23.08.06 12:27)
ну и завязали. надоело. %-)
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.04 c