Перейти к содержанию
Fire Monkey от А до Я

Вячеслав

Пользователи
  • Постов

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

  • Посещение

  • Победитель дней

    3

Весь контент Вячеслав

  1. Спасибо, попробую. Вот мне стало интересно: на андроиде, насколько я знаю, MediaPlayerControl тоже перекрывает собой все, что можно. Еще и работает только на полный экран. Выходит, если я захочу сделать самый простой видеоплеер, с какой-нибудь появляющейся менюшкой при нажатии на экран, меня будут ждать танцы с бубном? Или я ошибаюсь?
  2. Пытался я с ним работать, но на винде у меня не заводится, к сожалению.
  3. Добрый день, господа! Стоит следующая задача: отловить событие клика на MediaPlayerControl, растянутым на весь экран, чтобы в дальнейшем показать менюшку с паузой, перемоткой и т.д. Вроде задача простая, на я запнулся на том, что у MediaPlayerControl нет события OnClick и подобных, а только события для работы с жестами. Пытался поверх MediaPlayerControl положить TRectangle, но при проигрывании видео MediaPlayerControl сразу же его перекрывает. Никакие BringToFront/SendToBack не помогают. Кто-нибудь сталкивался с подобным?
  4. Это не возможно осознать что вы, тут написали.
  5. Ну и в чем же проблема? Если вы знаете количество пикселей в одном дюйме (dpi), то вы знаете количество пикселей в одном сантиметре. Или вам эту элементарную пропорцию расписать нужно?
  6. Пожалуйста. Будут вопросы - обращайтесь!
  7. Авторство всецело не мое, только правки вносил, т.к. в разных версиях студии код вел себя по-разному. Прощу прощения за то, что выкладываю в неудобной форме, просто из моего проекта сейчас это будет уже достаточно проблематично вытащить. Код для использования: На форме лежат Мемо, кнопки открытия/закрытия, эдит для отправляемых текстов и кнопка отправить. в паблике у формы добавляем объект GPort: TComPort; // ****************************************************************************** // ПРОЦЕДУРЫ РАБОТЫ С COM ПОРТОМ // открываем порт procedure TFormChannels.OpenPort(PortNum: Byte); begin GPort := TComPort.Create(PortNum, br9600); GPort.OnRead := FormChannels.OnRead; GFlagOpen := true; FormChannels.ButtonClosePort.Enabled := true; end; // закрываем порт procedure TFormChannels.ClosePort; begin GPort.Free; end; // отправляем в порт данные procedure TFormChannels.WritePort(strWrite: string); var arrBytes: array of Byte; i: Integer; begin if GFlagOpen = False then // проверяем, открыт ли порт OpenPort(strtoint(edtPort.Text)); // если нет, то открываем SetLength(arrBytes, Length(strWrite)); for i := Low(arrBytes) to High(arrBytes) do arrBytes[i] := Ord(strWrite[i + 1]); GPort.Write(arrBytes); arrBytes := nil; end; // читаем данные из порта procedure TFormChannels.OnRead(Sender: TObject; ReadBytes: array of Byte); var i: Integer; begin memRead1.Lines.BeginUpdate; for i := Low(ReadBytes) to High(ReadBytes) do begin if i > Low(ReadBytes) then memRead1.Text := memRead1.Text; // + '.'; memRead1.Text := memRead1.Text + char(ReadBytes[i]); end; // подчищаем заполняющийся Мемо if memRead1.Lines.Count > 5 then begin // memRead1.Clear; memRead1.Lines.Delete(0); memRead1.Lines.Delete(1); end; memRead1.Lines.EndUpdate; end; procedure TFormChannels.ButtonClosePortClick(Sender: TObject); begin ClosePort; end; // открываем порт кнопкой procedure TFormChannels.ButtonOpenPortClick(Sender: TObject); begin OpenPort(strtoint(edtPort.Text)); end; // отправляем в порт данные кнопкой procedure TFormChannels.btnWriteClick(Sender: TObject); begin WritePort(FormChannels.edtWrite.Text); end; // КОНЕЦ ПРОЦЕДУР РАБОТЫ С COM ПОРТОМ // ****************************************************************************** ComPort.zip
  8. Я тоже в своем проекте пользуюсь COM портом для общения с контроллером. могу выложить, если интересно.
  9. В свое время сталкивался с проблемой отрисовки некоторых контролов в ФМ, симптомы были примерно те же. Помогло "дрыгание" контролов путем смещения позиции на 1рх влево и потом вправо. После этого костыля все отображалось нормально.
  10. Статья: "Где можно посмотреть пример работы компонента TBitmapListAnimation?"
  11. Не совсем уверен, но попробуйте копнуть в сторону инди-компонентов, использующих протокол UDP. Они могут терять пакеты при плохой связи, но у вас вай фай и проблем быть не должно.
  12. Ну как бы это будет необходимо далеко не всегда. Фреймворк обычно сразу установлен в системе, а если его нет, то легко скачивается с офф сайта мелкософта.
  13. Спасибо за наводку! TThread.Synchronize(nil, procedure begin MemoRequest.Text := ARequestInfo.RawHTTPCommand; end); Полёт нормальный)
  14. Добрый день, друзья! Столкнулся со следующей проблемой: получаю запросы от клиента, вывожу их в Memo. Периодически выскакивает AV, связанная с отрисовкой мемо. Код получения: procedure TForm1.IdHTTPServerCommandGet(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo); begin AResponseInfo.ContentText := 'Response'; MemoRequest.BeginUpdate; MemoRequest.Text := ARequestInfo.RawHTTPCommand; MemoRequest.Repaint; MemoRequest.EndUpdate; end; По сути, интересует только строчка MemoRequest.Text := ARequestInfo.RawHTTPCommand; Все BeginUpdate-EndUpdate, Repaint добавлены в поисках решения, но они не спасают. Как я понимаю, получение запроса происходит в отдельном потоке, в нем же я и пытаюсь обратится к мемо и вылетает AV. Вопрос в том, как это обойти? Нужна ли синхронизация потоков?
  15. Все, вопрос снят. В последнем случае спасает событие onClick, т.к. оно и вызывается при отпускании мыши.
  16. Отличное решение, спасибо! Только вот один момент смущает: событие срабатывает лишь в тех случаях, когда на трекбаре происходит клик мышью. А если я нажал на каретку, потащил ее в сторону и потом отпустил (как раз MouseUp), то событие не обрабатывается.
  17. В примере явным образом об этом не сказано, это один из вариантов. Может быть ув. xenon54 создал класс-наследник, свой компонент, реализовал какой-либо хак для доступа к закрытому полю абстрактного класса-предка. Просто я не очень люблю ковырять исходники, сразу получаешь привязку к конкретной машине либо приходится таскать исправленный модуль с собой.
  18. Поддерживаю вопрос о XE7. Восьмую версию устанавливать пока нет никакой возможности, да и желания как-то нет.
  19. Господа, проблемы с сабжем. Не работает и все тут. Может я туплю и в интернетах описаны способы регистрации события у трекбара, но у меня пока не получается. Интересует отлов отпускания мыши у компонента, созданного в Design-Time.
  20. А, вот оно что. Для ваших задач мощностей самого ESP недостаточно? Просто я раньше как раз занимался тем же направлением, налаживал связь между контроллерами через nrf24l01. С выходом esp забыл как страшный сон.
  21. Асинхронный прием в чем проявляется? У меня пока тоже есть недоработанные моменты, надеюсь на этих выходных разобраться.
  22. А что за контроллер? Уж не esp ли часом? Или uart принципиально не подходит и придумываете свой протокол?
  23. Ну вот, вчера наконец руки и дошли, наладил связь между виндой и ESP8266-07 через IdHTTP клиент и сервер. Сложностей особых не было. Сам контроллер прошивал через Arduino IDE. Пока коды корявые, но в скором времени планирую все подрихтовать и выложить здесь или на русском форуме по ESP.
  24. Увы, не подскажу. Я как первый раз приложение на андроиде написал на пятой версии студии, так и забросил. Пишу только под винду. Хотя, если не ошибаюсь, Indy поддерживают и TCP и UDP и все это вроде как должно работать на ведре. Но вот КАК работать, это вопрос. Если у Вас получится, поделитесь результатами? А то интересно же)
  25. Все приемы для Vcl лично у меня ни к чему не привели. Вам проще всего будет bat-файл для установки шрифта в систему написать, имхо.
×
×
  • Создать...