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

Delpher-X

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

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

  • Посещение

Весь контент Delpher-X

  1. Итак, я пробовал использовать компоненты AppTethering для передачи данных между VCL-приложением работающим под Windows и мобильным FMX-приложением и потерпел неудачу, так как выяснилось что потоки данных данные компоненты на деле не передают. И у меня возник вопрос: а нет ли каких других компонентов в современной Embarcadero Studio, которые бы позволяли передавать как строковые данные, так и файлы между приложениями? Особенно меня интересуют все же файлы.
  2. С путями к файлу все в порядке. И тот код который вы процитировали - он в любом случае, работает уже с файлом переданным в потоке.
  3. Вряд ли. Тогда бы не работало в любом случае. А так, когда оба приложения на одном Windows-хосте, все работает прекрасно, когда дело доходит до передачи потока в приложение на гаджете - не пашет.
  4. Да, что самое интересное, данные строкового типа передаются нормально. То есть, когда я передаю данные типа 'string', они прекрасно доставляются и туда и обратно. А вот когда пытаюсь передать Stream - данные не приходят.
  5. Доброе время суток. У меня есть код, который отправляет данные, в частности файлы, из одного приложения в другое, используя технологию AppTethering. Вот код, который отправляет данные: var ImageToStream : TMemoryStream; begin ImageToStream := TMemoryStream.Create; ImageToStream.LoadFromFile('Здесь находится путь к файлу'); ImageToStream.Position := 0; TetheringAppProfile1.Resources.FindByName('ImageTransfer').Value := ImageToStream; ImageToStream.Free; end; А вот который принимает: procedure TForm1.TetheringAppProfile1Resources3ResourceReceived( const Sender: TObject; const AResource: TRemoteResource); var GetImage : TMemoryStream; begin GetImage := TMemoryStream.Create; GetImage.Position := 0; GetImage.LoadFromStream(AResource.Value.AsStream); ImageViewer1.Bitmap.LoadFromStream(GetImage); GetImage.Free; end; Пока передача данных идет между двумя Windows-приложениями, все работает прекрасно. Однако, когда я пытаюсь отправить данные от Windows-приложения в Android-приложение, которое исполняется на смартфоне, подключенном к компьютеру через USB-шнур, данные не проходят.
  6. У меня есть код, который должен скачивать файл с сайта: var LoadFile : TMemoryStream; begin LoadFile := TMemoryStream.Create; IdHTTP1.Get('https://sitename.pro/Folder/FileName.txt', LoadFile); LoadFile.SaveToFile('FileName.txt'); LoadFile.Free; end; Проблема однако в том, что вместо скачивания файла программа выдает: Could not load SSL library, хотя я никакой "SSL library" не просил)). При этом, когда я попробовал скачать файл с сайта работающего по старинке, на http (в отличие от https), все скачалось нормально, то есть проблема явно в данном протоколе. Поиск по Интернету ничего не дал.
  7. У меня используется такой код: procedure TForm1.FindFilePattern(root, pattern: String); var SR:TSearchRec; begin root:=IncludeTrailingPathDelimiter(root); if FindFirst(root+'*.*',faAnyFile,SR) = 0 then begin repeat Application.ProcessMessages; if ((SR.Attr and faDirectory) = SR.Attr ) and (pos('.',SR.Name)=0) then FindFilePattern(root+SR.Name,pattern) else begin if pos(pattern,SR.Name)>0 then Form1.ListBox1.Items.Add(Root+SR.Name); end; until FindNext(SR)<>0; end; end; FindFilePattern(DiskName, Exp); Однако, в любом случае, вопрос о заполнении ListBox не стоит. Вопрос стоит в том, почему программа копирует файлы два раза.
  8. Указано. Так мне нужен не только корень, но и вложенные каталоги. Нет.
  9. Не, не работает. Когда я написал: ListBox1.Items.AddStrings(TDirectory.GetFiles('C:/', '*'+Exp)); ListBox просто остался девственно чист.
  10. То есть, вот эта строка будет искать все файлы с указанным расширением? А вместо TDirectory.GetCurrentDirectory можно указать например, 'C:/'?
  11. TDirectory.GetCurrentDirectory, это если я не ошибаюсь, получение текущей директории приложения, ведь так?
  12. Спасибо. Вообще интересная эта ваша IOUtils.... А вот конкретно этот код: он что именно делает?
  13. Ну и где там ListBox? У меня же дело в том, что есть целый список файлов, а не один какой-то конкретный.
  14. Потому что я не знаю, как из строк ListBox'а, где лежит весь путь, выделить собственно само имя файла.
  15. Тогда таймер просто вырубится раньше, чем что-то успеет сделать. Да и проблемный код заключен в begin - end; так что до выключения таймера дело даже не доходит.
  16. Речь не идет об антивирусе. Речь идет о том, что код почему-то копирует файлы два раза. Хотя совершенно не должен этого делать.
  17. Да это все обычные .doc файлы, которые у меня валяются на жестком диске. С тем же успехом, это могла бы быть коллекция JPEG-картинок с горячими красотками в бикини, сохраненных из Интернета.
  18. Вряд ли. Я лично их прекрасно изменяю В любом случае, мне и надо скопировать всего по одному разу. С какого перепугу, программа их копирует повторно?
  19. Для Windows. Так оно меняется: FileIndex := IntToStr(StrToInt(FileIndex) + 1); FileName := FileIndex + Exp; TFile.Copy(ListBox1.Items[I], FileName); Вы все не о том спрашиваете. Главное - как убрать множественные сообщения об ошибках, которые вообще ни к селу ни к городу, так как файлы копируются.
  20. Попробовал. Теперь выскакивает сообщение "Отказано в доступе". При этом, что самое смешное, файлы копируются!
  21. Просто найти файлы нужного типа и скопировать их на другой диск.
  22. А, ну да. В любом случае, спасибо вам за консультацию. Не хотел бы вас лишний раз напрягать, но быть может, вы могли бы что-то подсказать мне и по вот этому вопросу?
×
×
  • Создать...