![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Model-View-Controller [D2005, XP]
megavolt © (2008-06-26 13:05:00)Создаю программку, сборник аккордов, вывожу текст, (рисую в канву текст и аппликатуру(Am/Hm...)), как мне сделать ссылками аппликатуры?
для себя понял, что необходимо применить МВК- архитектуру, но я с ней ранее не работал.. и информации достаточно мало..
а все что необходимо добиться это событие и реакцию на RollOver/Click для Аппликатуры(RoundRect+text). использовать RichEdit нет желания, хочу свой компонент. помогите пожалуйста, весь мозг сломал..
зы. на DK не отсылать.. был, безрезультатно
megavolt (2008-06-26 16:59:00) [1]ну вобщем понял) спасибо, буду дальше думать.. конечно примерчик бы какой-нибудь не помешал.. суть-то я уловил, а на практике, не понимаю, как координаты канвы поймать.. тем более, что тут же масштабируемая канва, придется какие-то еще координаты изобретать. как с событиями быть, не понимаю..
clickmaker (2008-06-26 16:53:00) [2]> тоесть у них должны как ты говорил, храниться координаты..
> а как мне с канвы координаты содрать тогда?
эээ... координаты хранятся в списке. Это - первоисточник. На канве их рисуешь, пробегая по списку. А события ловишь на том, у чего эта самая канва
megavolt (2008-06-26 16:37:00) [3]
> а OnMouseDown и OnMouseMove на что?
да это-то понятно)) я к тому, что аппликатуры то нарисованы... тоесть у них должны как ты говорил, храниться координаты.. а как мне с канвы координаты содрать тогда?
вот пока что есть, чтобы представить о чем речь))
<a href=" http://www.valar.ru/upload/jpg/0608/sbv20.htm">
<img src=" http://www.valar.ru/tm2/0608/sbv20.jpg">
</a>
clickmaker (2008-06-26 15:54:00) [4]> как заставить реагировать нарисованную аппликатуру на клик
> и оновер?
а OnMouseDown и OnMouseMove на что?
megavolt (2008-06-26 15:53:00) [5]это само собой, до этого дошел.. а как заставить реагировать нарисованную аппликатуру на клик и оновер?
я понимаю, что нотифиевент нужен..
ну ладно, буду разбираться, в любом случае спасибо за ответы
clickmaker (2008-06-26 15:41:00) [6]type TFingering = class (или record)
Chord: string; // аккорд
Link: string; // ссылка
Coords: array of TRect; // места, где аккорд в тексте
Создаешь список из них и вперед. При щелчке, в цикле ишещь if PointInRect(item[i]) then переход по ссылке
как-то так.
megavolt (2008-06-26 14:41:00) [7]пока не хранятся, я еще думаю в каком виде хранить, вернее сказать в каком типе данных, и в каком хранилище.. в принципе я думаю что TList подойдет.. понятно, что после щелчка перебором по листу надо ждать ответа от аппликатуры, вот как этот процесс реализовать? как говорится на языке крутится =)) может у кого-то есть исходничек, или линк на статейку..
clickmaker (2008-06-26 14:14:00) [8]> рисование на канве, и обработка координат.. но как
Так а они у тебя хранятся же как-то, аппликатуры эти? В виде списка/массива? Вот в нем и храни координаты, при щелчке ищи по массиву, ну а дальше обрабатывай ссылку в зависимости от конкретного объекта
megavolt (2008-06-26 14:09:00) [9]
> clickmaker
в том и дело, что не текстом, а шейпом или изображением надо, как в браузере для напримера.. тоесть рисование на канве, и обработка координат.. но как..
clickmaker (2008-06-26 13:12:00) [10]OnMouseDown (или ..Up или OnClick) с проверкой координат.
Есть вариант, конечно, делать их из Label, но это ресурсов больше