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

Вниз

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 вся ветка

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

Наверх




Память: 0.53 MB
Время: 0.045 c
15-1166000886
Ega23
2006-12-13 12:08
2006.12.31
Как по-английски сказать "прямое направление"?


6-1155098405
VitGun
2006-08-09 08:40
2006.12.31
Программное создание и настройка Dial-Up соединения


2-1165869822
AleksEraser
2006-12-11 23:43
2006.12.31
DLL


15-1165577567
sergeyst
2006-12-08 14:32
2006.12.31
TCP/IP


15-1165520112
GanibalLector
2006-12-07 22:35
2006.12.31
Подмена сер.номера винта