Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (версии 2009, 2010 Weaver, 2011 Fulcrum)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111

Открыть новую тему     Написать ответ в эту тему

data man



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обсуждаем новые возможности и баги
Просьба писать только про Delphi 2009 и выше - по остальным версиям есть соответствующая тема.
Вопросы вареза здесь не обсуждаются !!!
См. также:
Известные важные баги Delphi 2010:

Описание________________________________________________ Исправлено Решение/Альтернатива_____________________
  1. Внимание !  Деинсталляция D2010 нарушает работу D2007 и D2009 !  
При деинсталляции удаляются CC3280MT.DLL и CC3290MT.DLL из Windows\System32,   необходимые для работы D2007 и D2009 соответственно.
Сделайте резервные копии
  2. Code Formatter не работает, если не инсталлирован пакет моделирования.   В нем также присутствует множество багов. Используйте с осторожностью.   1.   JEDI CodeFormat 2.44 SVN Snapshot (~750Kb)   Требуются JCL и JVCL  
2.GExperts with Formatter
  3. Не работает F1 в Object Inspector Update 2   IDEFixPack 2.9 от Andreas Hausladen
(dev. snapshots)
  4. Если IDE начинает падать с сообщением "Out of resources", возможно, что поврежден .res файл проекта. Удалить его, запустить IDE, открыть проект - новый .res файл будет создан автоматически.
  5. В редакторе не работает Class Completion, если в декларируемом классе есть поля с шаблонами. Перед декларированием поля добавить public или private и т.д.
  6. TTrayIcon.ShowBalloonHint() не работает на ОС ниже Vista [QC 77561] Update 2 * Установить Update 2   * ИЛИ почитать о причинах и решении проблемы на форуме embarcadero и в QC   * ИЛИ воспользоваться альтернативой, например Cooltray 4.4.0
  ...      


Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 14:28 26-08-2009 | Исправлено: data man, 18:27 06-08-2010
0D0A

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ZBEP
В первом приближении какта так:
Подробнее...

Всего записей: 158 | Зарегистр. 21-09-2009 | Отправлено: 14:41 15-12-2010 | Исправлено: 0D0A, 14:43 15-12-2010
ZBEP



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
0D0A, спс, прозрачным то делает, но и текст тоже.
Набрать могу, но не видно ничего.
Графика выводится на DX, Edit и RichEdit/Memo, необходимы, для чата.
Можно ли как-нить вообще не отрисовывать сам компонент?

Всего записей: 186 | Зарегистр. 09-04-2009 | Отправлено: 00:14 16-12-2010 | Исправлено: ZBEP, 01:13 16-12-2010
0D0A

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ZBEP
Я проверял на простейшем примере - одна форма, на ней TImage, сверху RichEdit, XP без тем. Все работает. Дорабатывай рашпилем если у тебя что-то по другому

Всего записей: 158 | Зарегистр. 21-09-2009 | Отправлено: 07:33 16-12-2010
regkz



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ZBEP
можно использовать контролы из ТМС, не помню насчёт ричэдита, но эдит там прозрачным делается точно

Всего записей: 1128 | Зарегистр. 16-01-2007 | Отправлено: 07:37 16-12-2010
ZBEP



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
regkz, TMS может?
Поставил, беру TAdvEdit, кидаю на форму, ствалю Transparent:=True; и всеравно не прозрачный.
Flat:=True; тоже пробовал, не помогает.
Выглядит так:

Я всетаки хотел бы сделать не так, что бы фон отрисовывался "прозрачным", а так, что бы он вообще не отрисовывался, либо, что бы можно было на фон выставить картинку.
Что за отрисовку Edit отвечает в StdCtrls.pas ?

Всего записей: 186 | Зарегистр. 09-04-2009 | Отправлено: 13:46 16-12-2010 | Исправлено: ZBEP, 14:11 16-12-2010
0D0A

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ZBEP
В моем примере, как раз рисуется картинка вместо фона, те кусок родителя, на котором лежит RichEdit. Для этого родителю посылаются WM_ERASEBKGROUND и WM_PAINT с DC который будет фоном. В твоем примере, то на чем лежит RichEdit эти сообщения не обрабатывает стандартным образом, наверно. Те стоит их заменить на правильный код отрисовки.
Если едит не будет отрисовываться вобще, то на его месте будет мусор. В StdCtrls кода отрисовки нет, все рисует система.

Всего записей: 158 | Зарегистр. 21-09-2009 | Отправлено: 14:21 16-12-2010 | Исправлено: 0D0A, 14:24 16-12-2010
ZBEP



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
0D0A, если делаю по твоему варианту, то RichEdit кидается как бы на задний план и его вообще не видно
Насчет замены отрисовки не совсем понял.
 
П.с.
Ну StdCtrls ведь как то сообщает системе что рисовать или не так все?

Всего записей: 186 | Зарегистр. 09-04-2009 | Отправлено: 14:50 16-12-2010
0D0A

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ZBEP
Прозрачность = рисовать вместо своего фона, кусок родителя на которм лежищь. Абстрактного понятия прозрачности не существует. Вот и рисуй фоном соответсвующий кусок своей картинки. Но я так понял, что с фоном все замечательно - не рисуется текст, да? К сожалению не специалист в DX, попробуй поиграться со стилями окна, типа убрать WS_EX_TRANSPARENT и т.д. Вообще наверно есть куча примеров с прозрачными контролами в DX. StdCtrls сообщает системе, что надо создать окно класса EDIT. На этом ее участие в отрисовке заканчивается.

Всего записей: 158 | Зарегистр. 21-09-2009 | Отправлено: 15:00 16-12-2010
ZBEP



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
0D0A, стиль пробовал менять, не помогает.

Цитата:
Но я так понял, что с фоном все замечательно - не рисуется текст, да?

Нет, как фон он вообще воспринимает фон самой формы, а не то что "на ней" рисует DX, т.е. если я убираю DX, сую под низ RichEdit картинку, то все норм, но если начинаю отрисовывать DX, то он как бы рисуется поверх RichEdit.
 
(если просто кинуть RichEdit на форму и ничего с ним не делать, то он будет поверх DX, но с монотонным цветом фона)

Всего записей: 186 | Зарегистр. 09-04-2009 | Отправлено: 15:20 16-12-2010
0D0A

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ZBEP
А сделай простой пример с одной формой, ричедитом, картинкой и DX (с компонентами). Посмотрю.

Всего записей: 158 | Зарегистр. 21-09-2009 | Отправлено: 15:28 16-12-2010
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Если DX это DirectX, то обычно все необходимые контролы реализуют средствами самого директа, а винапи вообще не используют.

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 16:10 16-12-2010
ZBEP



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins, знаю, но т.к. это мой первый проект на DX и сами компоненты винапи нормально себя видут с DX, то я подумал, что чат будет легче реализовать не на DX.
Да и если я примерно представляю, как реализовать Edit средствами DX, то пока не пойму как можно сделать что-то вроде RichEdit или Memo, что бы была прокрутка и т.д.
 
0D0A, Залил простой проект с DX и все сорсы, что у меня есть для DX
Только  там 2 формы, забыл все на 1 перекинуть, но думаю и так все понятно.
Скачать: http://zalil.ru/30155491 (2,83 МБ)

Всего записей: 186 | Зарегистр. 09-04-2009 | Отправлено: 16:14 16-12-2010 | Исправлено: ZBEP, 17:18 16-12-2010
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ZBEP
Разве что только со статичным фоном. Если же захочется динамический фон то тут нужен специальный набор DX-компонент. К примеру DXScene, но он платный.

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 17:20 16-12-2010 | Исправлено: Frodo_Torbins, 17:26 16-12-2010
ZBEP



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins, с DXScene придется все заново переписывать
Сейчас если найду бесплатный для XE, то посмотрю что да как..

Всего записей: 186 | Зарегистр. 09-04-2009 | Отправлено: 17:37 16-12-2010
0D0A

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Какта все не просто. Без DX парадигма такая: RichEdit полностью рисуется в WM_PAINT (фон и текст). WM_ERASEBKGND не используется. Чтобы запретить рисование фона - задаем в стилях окна WS_EX_TRANSPARENT и используем хак WM_ERASEBKGND для отрисовки нашего фона. В обычном окружении вроде работает, но в DX, похоже WS_EX_TRANSPARENT трактуется просто как "окно невидимо" и DX-поверхность рисуется поверх. Как обойти конкретых идей нет.
 
Вот подумал что если бы была возможность исключить область занимаемую контролом из области отрисовки фона (типа ExcludeClipRect), и нарисовать этот кусок обычным GDI как написано выше, то все бы заработало Как сделать дырку в фоне? Но это уже похоже на извращение

Всего записей: 158 | Зарегистр. 21-09-2009 | Отправлено: 17:51 16-12-2010
ZBEP



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
0D0A, эт геморойно, т.к. фон то динамический будет.
Или как сейчас картинкой, движущейся относительно курсора.
 
П.с.
DXScane нашел для XE, странные компонеты XD
Позже надо будет еще на производительность проверить, чет мне кажется, что он прожерливей будет.
Хотя может только кажется..

Всего записей: 186 | Зарегистр. 09-04-2009 | Отправлено: 18:15 16-12-2010 | Исправлено: ZBEP, 18:16 16-12-2010
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
0D0A
Изображение в DX накладывается на форму уже видеокартой, поэтому в общем случае его нельзя получить из винапи.

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 18:20 16-12-2010
0D0A

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins
Ну главное сказать какта видеокарте, чтоб на наш контрол не накладывала (как надругие без WS_EX_TRANSPARENT), а файл фоновой картинки есть же? Может просто цвет фона едитов сделать максимально приближенным к цвету фона картинки в этом месте? Как на картинке, грязнозеленый. Не так гламурно, зато легче читать

Всего записей: 158 | Зарегистр. 21-09-2009 | Отправлено: 18:40 16-12-2010
ZBEP



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DXScane пока вроде подходит для всего, что хочу сделать, ток не привычно немного.
Потихоньку переписываю все под него.

Всего записей: 186 | Зарегистр. 09-04-2009 | Отправлено: 18:52 16-12-2010
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
0D0A
Изловчиться то всегда можно, прога ведь "наша". К примеру расположить окно контрола над окном в которое рендерится DX. Получить фон сами у себя мы тоже сможем, хотя вытаскивание данных из буфера видяхи по идее дело не быстрое.
Но имхо рисование контрола средствами DX - более правильный и гибкий вариант. Тем более что есть готовые решения.

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 19:02 16-12-2010
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (версии 2009, 2010 Weaver, 2011 Fulcrum)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru