Mazzay

Пользователи
  • Публикаций

    47
  • Зарегистрирован

  • Посещение

Информация о Mazzay

  • Звание
    Продвинутый пользователь

Информация

  • Пол
    Мужчина
  • Город
    Саратов

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

Включить
  1. Вызываю MessageDlg(text, TMsgDlgType::mtConfirmation, mbYesNo, 0, ACloseDialogProc); Под Windows на кнопках «Да» и «Нет». Под Android — «No» и «Yes». Как сделать по-русски?
  2. Собственно: for(int i = 0; i < ListView1->ControlsCount; ++i) if(dynamic_cast<TControl*>(ListView1->Controls->Items[i])->ClassNameIs("TSearchBox")) { dynamic_cast<TSearchBox*>(ListView1->Controls->Items[i])->Text = EmptyStr; break; }
  3. А ещё есть какие-нибудь варианты? C++Builder не поддерживает helper.
  4. Я к тому, что FGX установлен. Но объявления класса TfgToast нет ни в одном hpp-файле.
  5. Давно уже пользую TfgActivityDialog, но для TfgToast не нахожу объявления.
  6. Cпасибо. Но что-то не нахожу header.
  7. Жаль, что только для Delphi.
  8. Вот реальный пример, если кто не видел:
  9. Mazzay

    Как вывести текст в перспективе?

    Сделал выбор числа месяца скроллингом (как это реализовано на устройствах Apple). Для наглядности вот рабочий пример: https://youtu.be/F73fCMSlL7I. Но для красоты картины не хватает вывода заворачивающихся чисел в перспективе: Как сие реализовать?
  10. Многократное щёлканье получилось вот так. В объявлении класса: #ifdef __ANDROID__ _di_JAudioTrack audioTrack; TJavaArray__1<short>* samples; #endif В конструкторе: #ifdef __ANDROID__ samples = new TJavaArray__1<short>(1); samples->Items[0] = 0x0FFF; audioTrack = TJAudioTrack::JavaClass->init(TJAudioManager::JavaClass->STREAM_MUSIC, 11025, TJAudioFormat::JavaClass->CHANNEL_OUT_MONO, TJAudioFormat::JavaClass->ENCODING_PCM_16BIT, TJAudioTrack::JavaClass->getMinBufferSize(11025, TJAudioFormat::JavaClass->CHANNEL_OUT_MONO, TJAudioFormat::JavaClass->ENCODING_PCM_16BIT), TJAudioTrack::JavaClass->MODE_STREAM); #endif На событие: #ifdef __ANDROID__ audioTrack->write(samples, 0, 1); audioTrack->play(); audioTrack->stop(); #endif В деструкторе: #ifdef __ANDROID__ delete samples; #endif
  11. Спасибо большое! На Билдере получилось так: #include <AndroidApi.JNI.Media.hpp> void AndroidSound(double freqHz, int durationMs) { double Pi = 3.14159265358979323846; int count = (int)(44100.0 * 2.0 * (durationMs / 1000.0)) & ~1; TJavaArray__1<short>* samples = new TJavaArray__1<short>(count); for(int i = 0; i < count; i += 2) { short sample = (short)(Sin(2 * Pi * i / (44100.0 / freqHz)) * 0x7FFF); samples->Items[i + 0] = sample; samples->Items[i + 1] = sample; } _di_JAudioTrack audioTrack; audioTrack = TJAudioTrack::JavaClass->init(TJAudioManager::JavaClass->STREAM_MUSIC, 44100, TJAudioFormat::JavaClass->CHANNEL_CONFIGURATION_MONO, TJAudioFormat::JavaClass->ENCODING_PCM_16BIT, count * (sizeof(TJavaArray__1<short>) / 8), TJAudioTrack::JavaClass->MODE_STATIC); if(audioTrack->write((TJavaArray__1<short>*)samples, 0, count)) audioTrack->play(); delete samples; } Только при многократном вызове (у меня при прокрутке щёлкает звуком ScrollBox) получаю ошибку: Не пойму, почему. Сдаётся мне, переменную audioTrack надо как-то уничтожать. Хотя, это интерфейс…
  12. Приведённый здесь пример почему-то не обрезает выбираемые варианты звуков по длительности ADuration. uses AndroidApi.JNI.Media; procedure MakeSound(ADuration: Integer); var Volume: Integer; StreamType: Integer; ToneType: Integer; ToneGenerator: JToneGenerator; begin Volume := TJToneGenerator.JavaClass.MAX_VOLUME; // задаем громкость StreamType := TJAudioManager.JavaClass.STREAM_ALARM; ToneType := TJToneGenerator.JavaClass.TONE_DTMF_0; // тип звука ToneGenerator := TJToneGenerator.JavaClass.init(StreamType, Volume); ToneGenerator.startTone(ToneType, ADuration); end; Задаваемая длительность может только увеличить время воспроизведения, но не может уменьшить. Может есть какие-нибудь способы обрезать воспроизводимое?
  13. Не хочу добавлять компоненты и аудио-файлы в проект ради обычного воспроизведения коротенького щелчка. Никак не могу найти. Android API позволяет воспроизвести просто звук нужной длительности и частоты?
  14. Mazzay

    Анимация масштабирования

    Спасибо. Пригодилось.
  15. Сделал в результате два грида: левый — с одним столбцом, правый — с остальными. Прокрутку синхронизировал: void __fastcall TMainForm::Grid2ViewportPositionChange(TObject *Sender, const TPointF &OldViewportPosition, const TPointF &NewViewportPosition, const bool ContentSizeChanged) { Grid1->ViewportPosition = TPointF(Grid1->ViewportPosition.X, Grid2->ViewportPosition.Y); } void __fastcall TMainForm::Grid1ViewportPositionChange(TObject *Sender, const TPointF &OldViewportPosition, const TPointF &NewViewportPosition, const bool ContentSizeChanged) { Grid2->ViewportPosition = TPointF(Grid2->ViewportPosition.X, Grid1->ViewportPosition.Y); }