![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как осуществить разлиновку строк в TMemo ???
timself © (2007-02-14 00:40:00)Господа, прошу помощи в решении следующей задачи:
Как осуществить линовку строк (как в тетради для письма) в TMemo?
В пакете LMD есть TLMDMemo с линовкой, но у него один недостаток: прокрутка за scroll bar происходит не в реальном времени, а после того как отпустите кнопку мыши - это мне не подходит совершенно. Подскажите, как быть?
LMDшники для линовки использовали некую функцию, но ее выдернуть сам я не могу, там странная цепь наследований.
Вот прямая ссылка на файл LMDCustomMemo.pas . Именно в нем сидит свойство Lined.
http://mail.ngs.ru/~softbaza1/LMDCustomMemo.rar - 18 kb.
Взгляните кто-нибудь, плиз.
TStas (2007-02-15 23:05:00) [1]>Piroxyline © Я вот создавал эксперимента ради Меме канву, рисовать на ней, знамо дело, можно, но надо Scroll ловить, иначе противно получается. Создавал
Canvas := TCanvas.Create;
Canvas.Handle := GetDC(Handle);
Германн (2007-02-15 01:07:00) [2]
> timself © (15.02.07 00:10) [4]
>
> А может проще исправить прокрутку в LMDэшном Memo?
Может и проще. Но сам пойми, никому кроме тебя это, скорее всего, не нужно. Попытайся сам исправить. А уж если в процессе исправлений возникнут конкретные проблемы и вопросы, тогда уж и обращайся.
timself (2007-02-15 00:10:00) [3]А может проще исправить прокрутку в LMDэшном Memo? Она там наследуется от TLMDSBar (очень кривой). Может можно приделать как-нибудь стандартный ScrollBar без BMP-фонов и прочих тормозов?
Piroxyline (2007-02-14 13:52:00) [4]Расшифровываю: отлавлиавай WM_PAINT и отрисовывай сетку ручками на канве (канву создай мемосу и поставь Handle в GetDC(Self.Handle))
Piroxyline (2007-02-14 13:52:00) [5]Расшифровываю: отлавлиавай WM_PAINT и отрисовывай сетку ручками на канве (канву создай мемосу и поставь Handle в GetDC(Self.Handle))
Сергей М. (2007-02-14 09:44:00) [6]
> timself © (14.02.07 00:40)
> Как осуществить линовку строк (как в тетради для письма)
> в TMemo?
А зачем ? Что за блажь - именно в TMemo ?
В том самом LMD компонент TLMDMemo не имеет ни малейшего отношения к TMemo - он есть непрямой наследник TCustomControl, про который в справке сказано:
Base class for controls that wrap Windows screen objects but perform their own rendering.
Так что нет никакой "странной цепи наследования", все логично и закономерно - TLMDMemo создает окно пользовательского оконного класса и напрямую рисует все что нужно в контексте этого окна, включая "линовку". А уж насколько корректно и удобно он это делает - это совсем другой вопрос.