Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.07.27;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
2-1214419508
Igor23
2008-06-25 22:45
2008.07.27
CMD+ShellExecute


2-1214234765
savyhinst
2008-06-23 19:26
2008.07.27
Not enough timers available!


2-1214592890
Res
2008-06-27 22:54
2008.07.27
Recv


15-1212825413
Vlad Oshin
2008-06-07 11:56
2008.07.27
чем С# вкусна?


15-1212590644
bycka
2008-06-04 18:44
2008.07.27
Из Delphi в C#





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский