• Как продвинуть сайт на первые места?
    Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.
    Ускорение продвижения
    Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.
  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;


Иллюстрированный самоучитель по C++ Builder

Просмотр видеороликов

void__fastcall TForral::SpeedButtonlClick(TObject *Sender)
{
OpenDialogl › Title = "Выбор клипа";
OpenDialogl › InitialDir = "";
OpenDialogl › FileName = "*.avi";
if (! OpenDialogl › Execute())
return; // пользователь нажал кнопку Отмена
/* При попытке открыть файл клипа, который уже открыт,
возникает ошибка. */
if (MediaPlayerl › FileName = OpenDialogl › FileName) return;
/* Пользователь выбрал клип.
 Зададим размер и положение "экрана",
 на который будет выведен клип.
 Для этого надо знать размер кадров клипа. */
int fw, fh; // размер кадра клипа
int top,left; // левый верхний угол экрана
int sw, sh; // размер экрана (ширина, высота)
int mw, mh; // максимально возможный размер экрана
// (определяется текущим размером формы)
float kw, kh;
 // коэф-ты масштабирования кадра по ширине и высоте
float k; // коэфф-т масштабирования кадра
GetFrameSize(OpenDialogl › FileName,&fw, &fh);
 // получить размер кадра
/ / вычислим максимально возможный размер кадра
mw = Forml › ClientWidth;
mh = Forml › SpeedButtonl › Top-10;
if (fw < mw)
kw = 1; // кадр по ширине меньше размера экрана
 else kw = (float) mw / fw;
if (fh < mh)
kh = 1; // кадр по высоте меньше размера экрана
 else kh = (float) mh / fh;
// масштабирование должно быть пропорциональным
 if (kw < kh)
k = kw; else k = kh; // здесь масштаб определен
sw = fw * k; // ширина экрана
sh = fh * k; // высота экрана
left = (Forml › ClientWidth – sw) / 2;
top = (SpeedButtonl-XTop – sh) / 2;
MediaPlayerl › FileName = OpenDialogl › FileName;
MediaPlayerl › Open();
MediaPlayerl › DisplayRect = Rect(left,top,sw,sh);
SpeedButton2 › Enabled = True; // кнопка Play теперь доступна
/* если размер кадра выбранного клипа меньше размера кадра предыдущего клипа,
то экран (область формы) надо очистить */
Forml › Canvas ›
FillRect(Rect(0.0,ClientWidth,SpeedButtonl › Top));
// активизируем процесс воспроизведения MediaPlayerl › Play();
SpeedButton2 › Down = True;
SpeedButton2 › Hint = "Stop";
 SpeedButtonl › Enabled = False; }
// щелчок, на кнопке Play/Stop (воспроизведение/стоп)
void _fastcall TForml::SpeedButton2Click(TObject *Sender)
{
if (SpeedButton2 › Down) {
// нажата кнопка Play
MediaPlayerl › Play();
SpeedButton2 › Hint = "Stop";
SpeedButtonl › Enabled = False; // кнопка Eject недоступна
} else
{
// нажата кнопка Stop MediaPlayerl › Stop();
SpeedButton2 › Hint = "Play";
SpeedButtonl › Enabled = True; // кнопка Eject доступна }
}
// сигнал от плеера
void__fastcall TForml::MediaPlayerlNotify(TObject *Sender)
{
if ((MediaPlayerl › Mode == mpStopped) &&
 (SpeedButton2 › Down))
{
SpeedButton2 › Down = False; // "отжать" кнопку Play
SpeedButton2 › Hint = "Play";
SpeedButtonl › Enabled = True; // сделать доступной кнопку Eject }
 }

Следует обратить внимание на следующее. В качестве экрана, на котором осуществляется воспроизведение видеороликов, используется поверхность формы. Поэтому установить значение свойства Display компонента MediaPlayer1 во время разработки формы нельзя. Кроме того, размер экрана должен быть равен или пропорционален размеру кадров ролика. Значение свойства Display устанавливает функция Обработки события Create для формы, а размер и положение экрана на форме – функция обработки события click на кнопке Eject (speedButton1). Размер экрана устанавливается максимально возможным и таким, чтобы ролик воспроизводился без искажения (высота и ширина экрана пропорциональны высоте и ширине кадров). Размер кадров ролика возвращает функция GetFrameSize, которая извлекает нужную информацию из заголовка файла.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.