Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.07.27;
Скачать: CL | DM;

Вниз

Model-View-Controller   Найти похожие ветки 

 
megavolt ©   (2008-06-26 13:05) [0]

Создаю программку, сборник аккордов, вывожу текст, (рисую в канву текст и аппликатуру(Am/Hm...)), как мне сделать ссылками аппликатуры?
для себя понял, что необходимо применить МВК- архитектуру, но я с ней ранее не работал.. и информации достаточно мало..
а все что необходимо добиться это событие и реакцию на RollOver/Click для Аппликатуры(RoundRect+text). использовать RichEdit нет желания, хочу свой компонент. помогите пожалуйста, весь мозг сломал..

зы. на DK не отсылать.. был, безрезультатно


 
clickmaker ©   (2008-06-26 13:12) [1]

OnMouseDown (или ..Up или OnClick) с проверкой координат.
Есть вариант, конечно, делать их из Label, но это ресурсов больше


 
megavolt ©   (2008-06-26 14:09) [2]


> clickmaker

в том и дело, что не текстом, а шейпом или изображением надо, как в браузере для напримера.. тоесть рисование на канве, и обработка координат.. но как..


 
clickmaker ©   (2008-06-26 14:14) [3]

> рисование на канве, и обработка координат.. но как

Так а они у тебя хранятся же как-то, аппликатуры эти? В виде списка/массива? Вот в нем и храни координаты, при щелчке ищи по массиву, ну а дальше обрабатывай ссылку в зависимости от конкретного объекта


 
megavolt ©   (2008-06-26 14:41) [4]

пока не хранятся, я еще думаю в каком виде хранить, вернее сказать в каком типе данных, и в каком хранилище.. в принципе я думаю что TList подойдет.. понятно, что после щелчка перебором по листу надо ждать ответа от аппликатуры, вот как этот процесс реализовать? как говорится на языке крутится =)) может у кого-то есть исходничек, или линк на статейку..


 
clickmaker ©   (2008-06-26 15:41) [5]

type TFingering = class (или record)
 Chord: string; // аккорд
 Link: string;  // ссылка
 Coords: array of TRect; // места, где аккорд в тексте

Создаешь список из них и вперед. При щелчке, в цикле ишещь if PointInRect(item[i]) then переход по ссылке

как-то так.


 
megavolt ©   (2008-06-26 15:53) [6]

это само собой, до этого дошел.. а как заставить реагировать нарисованную аппликатуру на клик и оновер?
я понимаю, что нотифиевент нужен..
ну ладно, буду разбираться, в любом случае спасибо за ответы


 
clickmaker ©   (2008-06-26 15:54) [7]

> как заставить реагировать нарисованную аппликатуру на клик
> и оновер?

а OnMouseDown и OnMouseMove на что?


 
megavolt ©   (2008-06-26 16:37) [8]


> а 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 16:53) [9]

> тоесть у них должны как ты говорил, храниться координаты..
> а как мне с канвы координаты содрать тогда?

эээ... координаты хранятся в списке. Это - первоисточник. На канве их рисуешь, пробегая по списку. А события ловишь на том, у чего эта самая канва


 
megavolt ©   (2008-06-26 16:59) [10]

ну вобщем понял) спасибо, буду дальше думать.. конечно примерчик бы какой-нибудь не помешал.. суть-то я уловил, а на практике, не понимаю, как координаты канвы поймать.. тем более, что тут же масштабируемая канва, придется какие-то еще координаты изобретать. как с событиями быть, не понимаю..



Страницы: 1 вся ветка

Текущий архив: 2008.07.27;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
10-1148469511
AbrosimovA
2006-05-24 15:18
2008.07.27
Как прочитать сгенерированное сообщение по останову сервиса


2-1214217352
tey
2008-06-23 14:35
2008.07.27
текст в непонятой кодировке


2-1214307469
uno-84
2008-06-24 15:37
2008.07.27
Ссылка в тексте


2-1214292989
NeiL
2008-06-24 11:36
2008.07.27
Декодировать число


1-1195929273
SkyN
2007-11-24 21:34
2008.07.27
парсинг строки "Attr1=Val1; Attr2=Val2; Attr3=Val3"