Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
2-1165869822
AleksEraser
2006-12-11 23:43
2006.12.31
DLL


11-1142586282
BaryVetaL
2006-03-17 12:04
2006.12.31
TMHTrackBar - OnChange


15-1165828747
zdm
2006-12-11 12:19
2006.12.31
ClearType


15-1165839388
Romas81
2006-12-11 15:16
2006.12.31
программный менеджер для мобильного


15-1165562990
KrylovVN
2006-12-08 10:29
2006.12.31
TCP/IP - UDP





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский