![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Гость_qwerty |
|
|||
|
Unregistered |
Есть написанный мной компонент типа treeview, но есть маленькая проблема...
связи отрисовываются по таймеру и моргают иногда.... как избежать этого ??? |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Зачем рисовать по таймеру? Нужно рисовать по WM_PAINT
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Гость_qwerty |
|
|||
|
Unregistered |
мона по подробнее, плиз
|
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Сначала скажи как ты создал дерево? Унаследовал от TTreeView? Тогда тебе нужно искать метод класса который вызывается при перерисовке контрола и перекрывать его. Либо написать что то типа этого:
Это сообщение отредактировал(а) <Spawn> - 1.7.2004, 13:58 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Гость_qwerty |
|
|||
|
Unregistered |
дерево наследовано от scrollbox'a остальное с нуля, treeview принципиально не подходит
Этот код я уже понял как писать, н овсе равно пасиб... вопрос другой..... inherited WMPaint; пишет неопределена переменная????? |
|||
|
||||
| <Spawn> |
|
||||||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
оЧепЯтался я
либо
Это одно и то же. Добавлено @ 14:13 Я глянул исходники - метод который вызвается при перерисовке называется PaintHandler и он помещен защищенной секции, так что тебе лучше его перекрывать.
Это сообщение отредактировал(а) <Spawn> - 1.7.2004, 14:13 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
||||||
|
|||||||
| Гость_qwerty |
|
|||
|
Unregistered |
он статический, как его перекрыть?
|
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Так же как и виртуальный
Это сообщение отредактировал(а) <Spawn> - 1.7.2004, 14:31 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Гость_qwerty |
|
|||
|
Unregistered |
вообще не срабатывает...
а по WM_Paint только в момент изменения размера компонента на форме |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Ты для PaintHandler параметры то прописал?
Добавлено @ 14:38
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Гость_qwerty |
|
|||
|
Unregistered |
само собой
|
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Должно рисоваться. Покажи как рисуешь, если твой код не секретный
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Гость_qwerty |
|
|||
|
Unregistered |
TmyTree = class(TScrollBox)
procedure PaintHandler(var Message: TWMPaint); // объявление procedure TmyTree.PaintHandler(var Message: TWMPaint); begin inherited; Lines(Self); - рисую на прицепленной канве end; procedure TmyTree.Lines(Sender: TObject); begin //очищаю от старого //рисую новые связи end; в дереве помимо рисование на канве еще отображаются компоненты |
|||
|
||||
| Гость_qwerty |
|
|||
|
Unregistered |
procedure PaintHandler(var Message: TWMPaint); override - так не прокатит ругается
|
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
PaintHandler не совсем то что нужно
Вот я примерчик набросал с WM_PAINT
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Гость_qwerty |
|
|||
|
Unregistered |
я так уже делал....
потаймеру все рисуется, а без него нет |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
У меня это код все нормально рисует. Может у тебя где то ошибка?
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Гость_qwerty |
|
|||
|
Unregistered |
1) есть разница что я создаю канву в перехваченном OnCreate, а не в CreateWnd?
2) я ставлю showmessage и функция работает только при изменении размера компонента дерево. ?????? |
|||
|
||||
| Гость_qwerty |
|
|||
|
Unregistered |
Да и компонент дерево на другом компоненте панель
|
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Гость_qwerty |
|
|||
|
Unregistered |
а я так делал например
FCanvas := TControlCanvas.Create; TControlCanvas(FCanvas).Control := Self; хотя пробовал с CreateWnd все равно никак |
|||
|
||||
| Гость_qwerty |
|
|||
|
Unregistered |
вообще моргает потому что перерисовка осуществляется так
закрашивается сначала фоном а потом рисуется я попроовал это сделать не через таймер а через tapplicationevents ловил onmessage можно как нидь перерисовку изменить, чтобы быстрее очищать??? |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Я уже написал, что перерисовку нужно делать только на WM_PAINT. Не для красоты же придумали это сообщение. Ищи ошибку в коде - у меня работает все
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |