ShIvADeSt
Moderator | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору StalkerSoftware Цитата: 1) Если WordWrap = False, то при выделении текста, получается черные буквы на темно-синем фоне (в общем ничего не видно). 2) У меня такое впечатление, что обработчик WMPrintClient вообще не вызывается для ColorEdit (ставил в его начало Break Point). Все время идет вызов WMPrint. 3) Как то немного странно отрабатывает WMPaint. Включил WordWrap и WantReturns, набираю длинный текст, пробовал и автоперенос и ручной перенос (жал Enter), выделял текст как на одной строке так и на двух. Внешне все работает нормально, но под отладчиком у меня все время nMax равен 0, а nLineFirst все время равен nLineLast. 4) Если не трудно, то разъясни смысл функции TextFromLine. Особенно меня там смущает массив с именем Text размером 4 кб, а ведь Edit у Edit и так есть свойство Text. | по 1 вопросу - для сингллайн Едита срабатывает видимо внутренняя отрисовка, ее вообще не знаю как подавить. То есть она срабатывает уже после события отрисовки. При этом цвет берет по странному критерию. В общем не буду разбираться. 2. Может и не вызывается - если мешает удали. 3. Хз у меня вроде все нормально было, да и работает 4. Смысл следует из самого названия Для конкретной строки (надо было вместо Line написать Row) получает текст. Так как в отличие от TMemo у едита нет свойства Strings то мне надо как то определять какой текст для данной строки рисовать. Пришлось добавлять еще один способ. Добавил в отрисовку след код Код: SendMessage(Self.Handle,EM_GETRECT,0,LPARAM(@TxtOffset)); Brush.Color := Self.Color; FillRect(Rect(0, rTxtRect.Top, TxtOffset.Left, rTxtRect.Top+rSize.cy)) end; { with } finally SetLength(aCharsColor, 0); end; { try } end; { PaintLine } | теперь выделение рисуется не самой границы контрола, а с небольшим отступом (как и должно быть) TxtOffset :TRect
---------- И создал Бог женщину... Существо получилось злобное, но забавное... |
|