Delphi. Добавляем в TRichView свой TMediaPlayer как контрол.

Известный компонент в среде Delphi программистов TRichView обладает отличной возможностью добавлять контролы прямо в документ. Это могут быть и кнопки и чекбоксы и всё, что угодно, в зависимости от задачи.  Мне, для моих задач – необходимо было научиться добавлять mp3 файлы, чтобы в дальнейшем открывать их в браузере. Получился вот такой результат.

1

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

Проблема №1

-В документ можно добавлять только 1 копию mp3 композиции, иначе выскакивала ошибка псевдонима

2

 

Пришлось временно поставить такое ограничение

После этого при повторном добавлении медиафайла получалось так…

3

Проблема №2

После уничтожения экземпляра TmediaPlayer TRichView терял его возникала ошибка Access Violation. Немного покопавшись в документации TRichView я обнаружил 2 интересных свойства – защиту от редактирования rvepDeleteProtect с одной стороны и rvepShared как раз, отвечающее за владение / уничтожение дочернего контрола. Получилось следующее.

В результате при добавлении – контролы не удаляются по Backspace или Delete, а удаляются и одновременно уничтожаются либо по  нажатию  на кнопку-крестик в верхнем правом углу, либо при нажатии на плеер и нажатии после этого не Delete.

Код медиаплеера

Код добавления TAudioPanel на форму

Здесь часть лишнего – кнопки текстового редактора, процедура сохранения в HTML, но в основном  посвящено созданию, добавлению, корректному уничтожению TAudioPanel на форму.

 

This entry was posted in Delphi, Компонентостроение. Bookmark the permalink.