|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.05.2010, 11:33 | #1 |
любитель-далеко не
Участник клуба
Регистрация: 13.04.2010
Сообщений: 1,156
|
Процедура, рисующая дерево.
Здравствуйте уважаемые форумчане ))
я создал процедуру, которая, по-идее должна рисовать дерево(данные, собранные в динамическую структуру) на форме. подобно она процедуре формирования дерева- рекурсивна. Так вот что-то не работает....не знаю почему (не рисует ни одной чёрточки) Я запускал программу пошагово, компилятор (можно так сказать? ) заходит в процедуру и проходит в ней все необходимые команды, но дерево не рисуется (на form2 из юнита holst.pas). Может просто цвет каким-то образом совпадает с цветом фона ? Прикрепляю архив. А вот это код рекурсивной процедуры (которая как-бы должна рисовать) из юнита risdereva.pas: Код:
Последний раз редактировалось vedro-compota; 13.05.2010 в 11:34. Причина: чтоб понятней было 0))) |
13.05.2010, 16:38 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
положите Image на форму и нарисуйте на нем.
потому что вообще то надо рисовать каждый раз когда обновляется окно. буфера нет(изначально) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
13.05.2010, 16:51 | #3 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Можно проще - вызывать эту процедуру в OnPaint контрола, на котором рисуется. В данном случае формы.
I'm learning to live...
|
13.05.2010, 17:33 | #4 | ||
любитель-далеко не
Участник клуба
Регистрация: 13.04.2010
Сообщений: 1,156
|
Цитата:
Цитата:
|
||
13.05.2010, 17:44 | #5 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
у вас есть кадр, надо каждый раз подставлять новый.
почитать...хм...ну WinAPI, там поймете все это. насчет слов Виталия. у формы есть событие OnPaint именно в нем вызывайте процедуру прорисовки дерева. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
13.05.2010, 20:32 | #6 |
любитель-далеко не
Участник клуба
Регистрация: 13.04.2010
Сообщений: 1,156
|
ок
положил на форму Image, и изменил часть кода процедуры рисования. теперь так:
Код:
прикреплю изменённый архив. |
14.05.2010, 20:13 | #7 |
Участник клуба
Регистрация: 28.07.2009
Сообщений: 1,510
|
Вот поправил. Один раз в проверке, один раз перед созданием. Осталось исправить работу функции, но это уже не мои заботы =)
|
14.05.2010, 20:44 | #8 |
любитель-далеко не
Участник клуба
Регистрация: 13.04.2010
Сообщений: 1,156
|
ага!
Вижу, что изменён изначальные параметр "х" (теперь он равен половине ширины формы) но в чём ключевое изменение - не понимаю....)) почему теперь рисует?
|
14.05.2010, 21:25 | #10 |
Участник клуба
Регистрация: 28.07.2009
Сообщений: 1,510
|
Нет, форму можно и скрыть. Забыл убрать) В функции не задвались X и Y, и поэтому в функцию вместо Y передавалось большое число, и рисовалось всё за формой.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужна программа рисующая схему базы MySQL | veter_s_morya | Софт | 3 | 28.12.2010 19:03 |
Процедура в процедура в C++ Builder | Ecosasha | C++ Builder | 2 | 06.06.2009 17:17 |
Дерево | MAcK | Общие вопросы Delphi | 7 | 13.06.2008 17:30 |
Дерево | Rifler | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 06.05.2008 08:42 |
Есть ли прога рисующая алгоритмы? | Cyberbest | Помощь студентам | 6 | 04.05.2008 21:25 |