• 0
TAZAQ

Как передать файлы или строки при помощи Tethering?

Вопрос

Доброго времени суток, посмотрел видео от embarcadero, там показывалась передача видео на другой девайс. Собственно, интересует передача самих данных - строк/файлов. Есть ли у кого примеры/проекты по этой теме?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 ответ на этот вопрос

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Похожие публикации

    • Автор: Pax Beach
      Мне нужно сделать снимок экрана из своего приложения в приложении DirectX (в игре).
      По-быстрому накидал приложение, исходники здесь: MakeScreenshot-Forum.zip

      1. по нажатию единственной кнопки будет выполнена серия из 16 снимков экрана. Если запущен Скайп, то фотографироваться будет содержимое его окна.
      2. По нажатии CTRL+ALT+F9 будет сделан единичный снимок
      3. Label внизу показывает сколько миллисекунд затрачено на вывод снимка
      4. В комментах так же вы найдете, как работать со снимками через буфер обмена.
       
      Работа выполняется через GetDC(NULL);
      Windows 10 x64. Снимки делаются. И DirectX тоже нормально фотографируется.
      НО! только в оконных приложениях.
      Если приложение DirectX полноэкранное, то на всех снимках одна и та же картинка с первого снимка.
      То есть изменение буфера экрана в приложении ни как не отражается на снимках.
       
      Что нужно? Необходимо делать снимки конкретного приложения через интерфейс DirectX, а точнее, я так понимаю, через DirectShow. Тогда не будет разницы в окне оно или на полный экран.
      Помогите плиз, знающие люди, с решением этой задачи.
      Гарантирую вам от сообщества большой почет, от меня огромный респект, если это принесет доход, то еще и очень приятный бонус.
       
      Ссылки теме:
      1. DIRECTX FOR DELPHI
      2. unofficial version of DelphiX
      3. DirectX для начинающих
      4. MinHook - The Minimalistic x86/x64 API Hooking Library
      5. Various methods for capturing the screen
      6. Вывод графики на рабочий стол Windows с использованием оверлеев DirectX
      7. Project JEDI
      8. Реализация перехвата вызовов API — исчерпывающе про внедрение DLL, если разобраться, + это на Delphi
      UPD:
      9. Серия видео уроков Пишем D3D-хук — все понятно, только в Delphi перенести нужно.
      UPD 2:
      Научился рисовать в Direct3D и ловить интерфейс IDirect3DDevice9. Теперь делаю DLL ловушку для реализации снимков.
       
    • Автор: Pax Beach
      Привожу пример готового FMX приложения, которое рисует на форме с помощью интерфейса IDirect3DDevice9.
      В примере реализован вызов анонимного метода Present() интерфейса IDirect3DDevice9, имея ссылку на интерфейс и порядковый номер метода.
      Данная реализация пригодится при установке ловушек (Hooks).
       
      Вкратце, суть реализации такая:
      Объявляю процедурный тип нужного метода
      type   TPresent9 = function(pSourceRect, pDestRect: PRect; hDestWindowOverride: HWND; pDirtyRegion: PRgnData): HResult of object; stdcall; Объявляю переменную этого типа
      var   PPresent: TPresent9; begin   ...   IntRefToMethPtr(d3d9Dev, PPresent, 17);   PPresent(nil, nil, DParametrs.D3DPP.hDeviceWindow, nil); Реализую процедуру получения метода интерфейса по номеру
      procedure IntRefToMethPtr(const IntRef; var MethPtr; MethNo: Integer); type   TVtable  = array [0 .. 999] of Pointer;   PVtable  = ^TVtable;   PPVtable = ^PVtable; begin   // QI=0, AddRef=1, Release=2, etc   TMethod(MethPtr).Code := PPVtable(IntRef)^^[MethNo];   TMethod(MethPtr).Data := Pointer(IntRef); end; А теперь получаем метод интерфейса по его порядковому номеру и вызываем его
        IntRefToMethPtr(d3d9Dev, PPresent, 17);   PPresent(nil, nil, DParametrs.D3DPP.hDeviceWindow, nil); Благодарю за оценку этого решения на StackOverflow.
       
      Скачать пример: D3DDemo.zip
    • Автор: denprox
      Доброго времени суток! Подскажите, как узнать оригинальный размер картинки, загруженной в TImage ?
    • Автор: lala4a
      Доброе время суток .
      Я только начал знакомится с потоками , не судите строго .
      Вот код . Смысл которого через отдельный поток загружать изображение с сервера .
      unit Unit5; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,iduri,idhttp, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Objects, FMX.Controls.Presentation, FMX.StdCtrls; type ThreadHTTP=class(TThread) private Stream:TMemoryStream; bmp:tbitmap; url:string; public constructor Create(abmp:tbitmap; aurl: String); procedure Execute;override; // procedure ShowResult; end; type TForm5 = class(TForm) Button1: TButton; Image1: TImage; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } procedure getpic(pic: string; img: Tbitmap); end; var Form5: TForm5; implementation {$R *.fmx} constructor ThreadHTTP.Create(abmp:tbitmap;aurl:string); begin inherited Create(false); bmp := abmp; url:=aurl; end; procedure ThreadHTTP.Execute; var j:integer; idhttp : TIdHTTP; ms:tmemorystream; png:tbitmap; begin ms := TMemoryStream.Create; IdHTTP := TIdHTTP.Create(nil); url:=TIdURI.URLEncode(url); try idhttp.Get(url,ms); ms.Position := 0; finally bmp.LoadFromStream(ms); idhttp.Free; ms.Free; end; end; procedure TForm5.Button1Click(Sender: TObject); begin getpic('krovat1',form5.Image1.Bitmap); end; procedure TForm5.getpic(pic: string; img: Tbitmap); var zapros:string; idhttp:tidhttp; MyHTTP:ThreadHTTP; begin zapros:='http://127.0.0.1/getimage_'+pic; MyHTTP:=ThreadHTTP.Create(img,zapros); MyHTTP.FreeOnTerminate := true; MyHTTP.resume; end; end. Код корявый , но работает в win32 .  В Android ничего не происходит .
      Помогите разобраться , пожалуйста .
       
    • Автор: Steepe_Hare
      Раньше для Delphi был DKB (Delphi Knowledge Base), такой огромный сборник советов и примеров для программирования в среде Delphi (Tips and Tricks)
       
      Нет ли чего-то подобного для Firemonkey?
    • Автор: Pax Beach
      Коллеги, помогите пожалуйста с поиском решения.

      Есть зал 100x100 метров, 400-600 человек на борту. На их мобильные устройства (смартфоны, планшеты) нужно принимать раз в секунду различный текст ~120 символов в кодировке UTF8. Можно широковещательно, или P2P.
      Сейчас мы выбираем технологию передачи данных в ограниченном помещении большому количеству людей.
      От выбора инфраструктуры, понятно, зависит логика мобильных приложений для этой цели. 
       
      1. Как лучше выстроить инфраструктуру?
      2. Чем лучше рассылать Bluetooth или Wi-Fi (понятно, что GPRS канал в таком скоплении — не вариант, базовая станция не справятся, да и сигнала может не быть)?
      3. Сколько точек доступа и каких лучше разместить?
      4. На какие нюансы обратить внимание?
       
      Сначала я обратился к технологии маячков. Но по многим параметрам маячки здесь не подходят.
      Однако, не исключаю возможность широкого вещания по Bluetooth каналу.
      Так же возможно использовать технологию тетеринг (tethering), раздавать сигнал через смартфоны раскинутые по залу.
      Можно тоже самое организовать, раскидав точки доступа Wi-Fi.
      Преимущества той или иной инфраструктуры для меня не очевидны.
       
      Может кто-то сталкивался с подобными задачами?
      Заранее благодарю за участие в обсуждении.
       
       
       
    • Автор: timurabdullaev
      Добрый день!

      Ищем программиста для работы над созданием Desktop CRM системы на Delphi (FireMonkey). Есть уже разработанный прототип, оболочка приложения. Система будет кросс-платформенной, сперва выпущена Desktop версия, а затем издана мобильная версия под Android и iOS.

      Требуется знание: Pascal(Delphi), PHP, MySQL
      Работа: возможно совмещение.
      Есть и реализовано:

      1.     1.Опыт в создании однотипного продукта

      a.       Созданая CRM-системы, выведенная на рынок (старая версия)

      b.      Разработка технических заданий на доработку и разработку CRM-систем

      c.       Внедрение и интеграция CRM-систем

      2.       2.Опыт в реализации и продажи CRM-систем

      a.       Знание рынка

      b.      Знание потребностей целевой аудитории

      c.       Выстроенная ценовая политика

      d.      Разработанные ключи продаж

      e.      Ведение переговоры с первыми лицами компаний

      3.       3.Прототипы

      a.       Описанные модули, требования к ним и их функциональные возможности

      b.      Разработанный и свёрстанный дизайн на Embarcadero XE10.1 Berlin)

      4.       4.Действующий и раскрученный сайт

      a.       Действующий сайт с уровнем конвертации посетителя в «лид» 8-10%

      5.       5.Разработанная маркетинговая продукция (КП, Документы, HTML-письма, и.т.д.)
      ППо всем вопросам пишите на почту: wasd.tech@mail.ru или в личные сообщения! Спасибо!
       


    • Автор: notricky
      Возникает вышеозначенная ошибка при попытке декодировать приходящий от сервера текст.
      Я пробовал в различных вариантах.
      http://www.fmxexpress.com/secure-your-rest-client-with-ssl-and-gzip-compression-in-delphi-xe8-firemonkey-on-android-and-ios/
      http://www.fmxexpress.com/decode-gzip-content-from-the-rest-client-in-delphi-xe7-firemonkey-on-android-and-ios/  
       
      Я получаю либо  ошибку из названия темы, либо  Error on call to ZLib library function inflateInit2_

      В общем не работает только на iOS (iPhone).
      На Android, Windows, MacOS работает корректно декомпрессия в автоматическом режиме, потому вопроса о строках не возникает.
    • Автор: notricky
      Собственно есть способ получать и распаковывать данные, полученные в GZIP.
      В качестве примера:
      procedure TFMain.FormCreate(Sender: TObject); begin (ReqGet.Client.HTTPClient.Peer.GetObject as TIdCustomHTTP).Compressor := TIdCompressorZLib.Create(ReqGet.Client.HTTPClient.Peer.GetObject as TIdCustomHTTP); ReqGet.AcceptEncoding := 'gzip,deflate'; ... end; А вот как их отправить (как запаковать - механизм? и куда подставить строку) - не понятно.
      Отправка интересует и POST и GET
      Прошу помощи.
    • Автор: notricky
      Не нашел тега TPopup. Напишу тут.
      Ситуация в следующем. Я использую TPopup + TCalloutPanel для хинтов (подсказок). С анимацией FadeIn FadeOut.
      Все вроде просто.
      На основной форме есть стандартная проверка FormKeyDown
      if Key in [vkHardwareBack] then begin TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService, IInterface(FService)); if (FService <> nil) and (TVirtualKeyboardState.Visible in FService.VirtualKeyBoardState) then begin DebugLog('KeyboardOnBackButton'); end else begin Key := 0; if ItemLayout.Visible then begin DebugLog('ItemLayoutBackButton'); btCancelClick(btCancel); end else begin DebugLog('MainLayoutBackButton'); MessageDlg('Are you sure to exit now?', TMsgDlgType.mtConfirmation, [TMsgDlgBtn.mbOK, TMsgDlgBtn.mbCancel], -1, procedure (const AResult: TModalResult) begin if AResult = mrOk then begin DebugLog('CloseOnBackButton'); Close; end; end); end; end; end В общем ничего сверхестественного.
      Затем, когда появляется хинт:
      procedure TFParent.ShowHint(AControl: TControl; AText: string; ATitle: string=''; Duration: single = 3; ImageIndex: integer = -1); begin DebugLog('ShowHint'); lbHint.Text := AText; puHint.PlacementTarget := AControl; faHintFadeOut.Delay := Duration; puHint.IsOpen := true; ivHint.Visible := ImageIndex <> -1; lbHintTitle.Text := ATitle; lbHintTitle.Visible := ATitle <> ''; end; все тоже хорошо. Однако, когда я нажимаю кнопку назад - сначала пропадает хинт. А если я нажимаю снова кнопку назад, то вообще говоря я жду два варианта:
      ItemLayout переходит в MainLayout Программа запрашивает выход MessageDlg Но на деле приложение просто закрывается. При чем без ошибок.
      Что с этим можно сделать?
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу