Конференция "Компоненты" » Требуется компонент - подобие TEdit [D7, WinXP]
 
  • DVM © (01.05.08 23:53) [60]

    > если заниматься выделением текста во всех трех компонентах,
    >  и передавать/отнимать фокус у всего окна, вылезут какие-
    > то эффекты ?

    У меня эффекты лезут самы разнообразные и закономерности я в них не вижу.

    При выделении в верхнем поле иногда пропадает часть текста, затем при потере фокуса текст восстанавливается, при возврате фокуса окну иногда совсем пропадает иногда остается как есть, но выделение пропадает.

    При выделении в поле Memo пропадают все строки, кроме той, в которой происходит выделение, при потере фокуса остается только эта строка, при последующем получении тоже только она и выделение сохраняется. Причем больше двух строк выделить не получается.
  • Игорь Шевченко © (01.05.08 23:54) [61]
    {RASkov} ©   (01.05.08 23:45) [58]

    Спасибо.
    Про Memo я знаю - там даже в тексте самого Memo это написано.
    То, что сильно моргает, это при обработке KEYDOWN делается Invalidate, иначе текст будет пропадать при вводе с клавиатуры.
    Собственно, моргает и в компонентах по ссылке от guav. По той же самой причине.

    Так что пока единственно верным путем является все-таки собственная отрисовка текста и фона. Тогда можно и прозрачность сделать и заливку какую угодно.

    Но это долго писать.
  • Игорь Шевченко © (02.05.08 00:06) [62]
    Вот и я добился интересного эффекта - при включении XPMan в проект и включенных темах, при запуске все появляется, как и раньше, но при перемещении мыши над однострочным EDIT-ом, текст в окне пропадает. Целиком.
    Если XPMan убрать из проекта или отключить темы (задать тему "Классическую"), то все рисуется нормально (кроме выделения текста мышью в Memo, разумеется).

    Так что приходим к [61]
  • тиипа_того (03.05.08 16:28) [63]
    Удалено модератором
    Примечание: Не в пивной...
  • R1ka © (04.05.08 07:21) [64]
    тиипа_того,
    твое сообщение очень информативно и очень помогло. спасибо.
    и где в mail.ru агенте градиентное окошко ввода текста, там его нет - насколько вижу?
  • Игорь Шевченко © (04.05.08 10:31) [65]
    Эффект, получающийся у проверяющих, я воспроизвел. Сдается мне, что у меня на домашнем компьютере все хорошо и красиво, потому что установлена поддержка непростых языков, китайского, арабского и проч.
    В результате чего весь вывод текста выполняется в USP10.DLL (и все показывается, как надо).
    В системе, где поддержка таких языков не установлена, вывод текста в Edit выполняется в USER32.DLL (без тем) или в COMCTL32.DLL, причем, сначала выводится текст, а потом посылается сообщение WM_CTLCOLOREDIT (или WM_CTLCOLORSTATIC для Readonly или Disabled контрола), в котором весь текст вытирается градиентом.
    Порядок рисования примерно такой:
    Посылается WM_CTLCOLOREDIT
    Устанавливается цвет текста и цвет фона в DC, выводится текст,
    Посылается WM_CTLCOLOREDIT
    выводится текст (уже без установленных атрибутов)
 
Конференция "Компоненты" » Требуется компонент - подобие TEdit [D7, WinXP]
Есть новые Нет новых   [134464   +62][b:0][p:0]