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

Поиск сообщества

Показаны результаты для тегов 'delphi'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Общие вопросы
    • Анимация
    • Графика
    • Стили
    • Базы данных и REST
    • Компоненты
    • Положение, размеры, выравнивание
    • Работа с текстом
    • Приложение и формы
    • Отладка
    • Развертывание приложений
    • Вопросы по языку Object Pascal и RTL
    • Общая информация о TControl
    • События
    • Прочие вопросы
  • Вопросы по платформам
    • Android
    • iOS
    • OSX
    • Windows
    • Windows Phone
    • Linux
  • Вопросы по использованию RAD Studio
    • Лицензирование
    • Сборка проектов
    • Multi-Device Designer
    • Редактор кода
    • Вопросы
  • Обучение
    • Основная информация
    • Вопросы
    • Отзывы
  • Поиск специалистов по FireMonkey
    • Консультации
    • Ищу подрядчика
  • Дополнительные ресурсы по FireMonkey
    • Сторонние компоненты
    • Приложения, написанные с использованием FireMonkey
    • Примеры
    • Руководства
    • Шаблоны
    • Статьи и заметки
    • Информация о версиях RAD Studio
    • Новости
  • Организация работы данного форума

Поиск результатов в...

Поиск контента, содержащего...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Регистрация

  • Начало

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


StackOverflow


Защита от ботов


Город


Интересы

  1. Кто-нибудь может подсказать хорошую Delphi- библиотеку или компоненты для чтения EXIF и других метаданных из файлов с изображениями в формате JPG? Те, про которые мне известно, считывают не все, например, нужен GPS
  2. Создаю приложение для андроид. Нужно вызвать проводник, выбрать директорию и запомнить путь. Как это сделать?
  3. Доброго дня! Проясните пожалуйста ситуацию: при запуске программы под Андроидом на различных устройствах я получаю размеры формы, которые вроде всегда в разы меньше чем максимальное разрешение экрана конкретного устройства. Я пробовал планшеты и разные смартфоны. Написал тестовую прогу, которая выводит СlientScreen и ClientWidth формы, на которой ничего больше нет. Например для крайне бюджетного смартфона Fly FS-549 получилось 497 х 320, а по паспорту 854x480. Разрешение и так хреновое, а Delphi его еще сильнее уменьшает. - Почему это происходит и можно ли как то это обойти?
  4. Решаю задачку разработки приложения камеры для использования из сторонней программы в Android'e. Нужна обработка фотографии определенным образом, плюс еще по мелочи немного, стандартной камерой не сделать такое, поэтому делаю свое приложение. Вопрос в том, как объявить свое приложение камерой? Наткнулся на подобную конструкцию: <activity android:name=".CameraActivity" android:clearTaskOnLaunch="true"> <intent-filter> <action android:name="android.media.action.IMAGE_CAPTURE" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> Это вносится в "AndroidManifest.template.xml" или через настройки проекта Delphi (10.4) можно сделать?
  5. Добрый день! Тут задумалась над вопросом, даже не знаю, как описать... Попробую так: возможно ли, дочернюю форму VCL проекта, в значительной степени облегчить? Так как она, переназначена для того, чтобы график показывался в отдельном окне, а вся работа с графиком, идет из основной формы. Показ в дочернем окне, позволяет поставить Align:=client и не занимет место на основной форме, там лишь ссылка на график.
  6. Добрый день, уважаемы форумчане. Будучи больше читателем, чем писателем, я решился задать вопрос на форуме потому что не смог до конца решить задачу. А задача заключается в следующем: Необходимо разработать на Embarcadero Delphi приложение мобильной кассы для смарт-терминала MSPOS. Для этого необходимо интегрировать в Delphi работу с фискальным ядром ККТ. На сайте производителя терминалов MSPOS есть подробная информация по интерфейсу IFiscalCore фискальноого ядра ККТ. Основой интерфейса фискального ядра являются AIDL файлы описания методов, и есть примеры подключения к фискальному ядру для языка java. Если есть среди форумчан разработчики, желающие и могущие поучаствовать в интеграции фискального ядра смарт-терминала MSPOS в Embarcadero Delphi, прошу откликнуться. У меня уже есть достаточно серьезные наработки, которые могу выложить. Но есть и серьезный затык, который заставил написать здесь.
  7. Здравствуйте. Сбился со счёта дней сколько пытаюсь заставить компилировать приложения под андроид, текста будет много, постараюсь изложить все свои эксперименты и не удачи в данном деле в надежде раскрыть тайну занавеса моей ошибки. На дельфи программирую давно и скил в общем то имею, но я никогда не пробовал создавать апк файл, сейчас же загорелся идеей создать приложение под андроид. Переустановил дельфи включая галочки поддержки андроид, зашёл в папку PlatformSDKs, запустил SDK Manager обновил по рекомендациям самого SDK всё что он выделил, встречались разные ошибки в логе типа: Downloading Android Auto Desktop Head Unit emulator, revision 1.1 Download finished with wrong size. Expected 2691901 bytes, got 2615480 bytes. Запустил AVD создал виртуальное устройство андроид версии 4.4.2 устройство запустилось, зашёл в настройки активировал режим разработчика, далее в настройках разработчика включил поддержу usb отладки. Запустил дельфи, в путях SDK Manager, Android SDK 25.2.5 32 bit, SDK/NDK/Java нигде нет иконки восклицательного знака то есть всё нашлось всё чётко, в системной переменной Path тоже добавлял пути как описывалось в мануалах на разных источниках. Создаю новый проект, пустая форма, жму компилировать поначалу выходила ошибка не найден файл ..\android\EXEC после различных манипуляций, а именно оно исчезло когда я удалил папку Project в Document эта ошибка исчезла и приложение сохраняется по адресу C:\Users\Fin4\Documents\Embarcadero\Studio\Projects\Android\Debug\Project1\bin Но выходит другая ошибка говорит что моё устройство не найдено, хотя оно есть в выпадающем списке в самой дельфи, ниже прикладываю скрин с ошибкой https://prnt.sc/26w3x55 Это то на чём я остановился в данный момент. Я скопировал созданный апк с простейшей командой вывода сообщения hello world в своё созданное виртуальное андроид устройство в эмуляторе MEmu 4.2.2 версии оно установилось и запустилось, отработало без ошибок! Создал второе виртуальное устройство андроид с версией 7.1 тоже в MEmu но на этой версии андроида приложение не захотело устанавливаться выдало ошибку и закрылось, почему так? Я читал что приложения которое запускается на более поздней версии андроид должно запускаться и на более свежей версии без проблем. Запускаю AVD и там у меня создано 2 виртуальных устройства, версия 4.2.2 и версия 8.0 (в дельфи в выпадающем меню стояло устройство с версией 4.2.2 когда компилировал приложение) 4.2.2 версия запускается без проблем в AVD версия 8.0 запускается тоже без ошибок, НО само виртуальное устройство не загружается, появляется окно андроид устройства с боковыми кнопками включить, камера, повернуть вертикально и просто чёрное окно самого телефона и на этом всё. Скачивал я Android Studio созданные в нём виртуальные устройства запускались без проблем, отыскал где находится sdk/ndk пытался указать пути в дельфи в SDK Manager но именно у NDK названия файлов некоторые отличаются от тех какие прописаны в дельфи по умолчанию, эксперимент провалился и я снёс андроид студио. Ещё такая проблема по адресу PlatformSDKs\android-sdk-windows\extras\google\usb_driver лежат драйвера юсб в диспетчере устройств вылазит неопознанное юсб устройство, я жму установить android_winusb.inf выходит ошибка "выбранный INF файл не поддерживает этого метода установки" хотя в самом SDK Manager Google USB Driver - Installed Спасибо что дочитали до конца и очень надеюсь что кто нибудь поможет мне разобраться с моей проблемой. Если у кого то есть возможность поговорить в телеграмм я буду только рад, адрес можете прислать мне в личку. Моя ОС win 7 64-bit Java пробовал: jdk-11.0.14 64-bit ошибка jdk-17.0.2 64-bit ошибка jdk1.8.0_60 64-bit создался apk файл но всё равно ошибка в дельфи Мои знания в программировании только на дельфи + немного php+mysql с Java не работал.
  8. Здравствуйте, есть вопрос по поводу создания приложения и его функционала. По нажатию на кнопку должен создаваться компонент, в него должен вводится текст, и по желанию добавлять или не добавляться изображение. Т.е. оно должно работать по типу записной книжки/ каталога. Из этого вышли вопросы: 1) Какой лучше компонент использовать? Я думал по началу что бы вызывалась панель, а на ней был условный ListBox, для которого в edit`e вводилась бы информация. 2) Как позиционировать это? Т.е. возможно ли сделать так, что бы пользователь сам выбирал в какую часть экрана поставить данную запись? Или же лучше сделать просто по добавлению, что бы новое было перед старым? И соответственно, как это сделать? Подскажите пожалуйста как это реализовать, так как я новичок в этом, а хочется понять как это всё устроено и работает.
  9. Итак, у меня была Delphi 10.3 Community Editon, которой я пользовался год. Затем, бесплатная лицензия истекла и я поставил себе новую Community Edition - на этот раз, версию 10.4. Однако она оказалась полным отстоем - ничего нового и интересного в ней нет, а вот целая куча нужных вещей оказалась выпилена (включая то, что многие старые компоненты больше не работают). А посему у меня вопрос - как реанимировать установленную у меня Delphi 10.3, как продлить ее Community Edition лицензию?
  10. Итак, как добавить в приложение проверку наличия соединения с Интернетом? Я всегда пользовался кодом: var NetControl : DWORD; begin NetControl := INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN + INTERNET_CONNECTION_PROXY; Result := InternetGetConnectedState(@NetControl, 0); end; Однако здесь он явно не подходит, так как предназначен для Windows, а меня интересует Android. Я пробовал использовать компонент IdIPWatch, но он все время верещал о том что Интернета нет, несмотря на то что смартфон был вполне подключен к сети.
  11. В компанию требуется опытный разработчик, который готов присоединиться к команде для разработки крупного проекта в области Blockchain-технологий, распределенных систем и криптографии. Зп от 150 000 до 200 000 ₽. Удаленная работа.Обязанности:- Работа с криптографическими алгоритмами, blockchain технологиями- Разработка программного обеспечения на Delphi- Участие в разработке блокчейн проекта нового поколения- Разработка, поддержка и развитие серверных функций системы на основе Blockchain- Отладка, анализ производительности оптимизация ПО;- Проектирование и разработка архитектуры разрабатываемых решений;Требования:- Опыт разработки ПО от 5 лет;- Плюс: Понимание принципов работы публичных и закрытых блокчейнов (Ethereum/Solidity, Bitcoin, Quorum)- Знание принципов ООП и шаблонов проектирования;- Опыт работы с системами контроля версий ПО (Git)- Уверенное владение языком программирования Delphi, средой разработки embarcadero- Знание английского языка на уровне чтения технической литературы;Условия:- Участие в интересном и масштабном проекте- Дружный коллектив;- Возможности развития и обученияБонусыБонусы по итогам года.О нас:Мы компания новаторов и энтузиастов в сфере блокчейн и криптовалют.https://career.habr.com/vacancies/1000074707Контакт для обратной связи: hr@relictum.pro
  12. Вопрос: как спрятать главную форму приложения в FMX? В VCL это делается просто - Project>View Source>вписываешь в открывшемся окне Application.ShowMainForm := False, однако в FMX такой фокус не прокатывает, там просто свойства такого нет - ShowMainForm. Как же быть?
  13. Пытаюсь программно добавить в своем проекте компонент IdFTP: FTPBot : TIdFTP; FTPBot := TIdFTP.Create(); FTPBot.Name := 'FTPGhost'; FTPBot.Passive := True; FTPBot.Host := ''; FTPBot.Username := ''; FTPBot.Password := ''; Код компилируется нормально. Однако, когда я пытаюсь обратиться к свойству TransferType полученного объекта: FTPBot.TransferType.ftBinary; Программа при компиляции вылетает с ошибкой, утверждает что нельзя так писать. В чем дело?
  14. Я обратил внимание, что если в VCL цвет формы, а также некоторых других компонентов можно менять, то в FMX это сделать нельзя - доступен только дефолтно-серый, во всяком случае, при компиляции под Android. Есть ли какие-то способы это поправить?
  15. У меня есть следующий код, который передает данные из потока в объект типа TStrings: var F : TMemoryStream; S : TStrings; begin F := TMemoryStream.Create; S := TStringList.Create; F.LoadFromFile('C:/File.jpg'); S.LoadFromStream(F); Из TMemoryStream в TStrings все передается нормально. Однако - как обратно? Как снова преобразовать объект TString в поток данных, дабы снова можно было бы сохранить его в полноценный файл?
  16. У меня есть код, который должен скачивать файл с сайта: 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), все скачалось нормально, то есть проблема явно в данном протоколе. Поиск по Интернету ничего не дал.
  17. slav_z

    macOS Big Sur & Delphi

    Есть ли проблемы с запуском приложений на macOS Big Sur у Delphi 10.4.1? Очень страшно обновлять macOS...
  18. Доброе время суток. У меня есть код, который отправляет данные, в частности файлы, из одного приложения в другое, используя технологию 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-шнур, данные не проходят.
  19. Приветствую Подскажите, планируется ли в RAD Studio возможность компиляции Delphi программ для WebAssembly?
  20. Есть код для копирования файлов: procedure TForm1.Timer2Timer(Sender: TObject); var FileIndex, FileName : String; I : Integer; begin randomize; FileIndex := IntToStr(random(5000)); for I := 0 to ListBox1.Items.Count-1 do begin FileIndex := IntToStr(StrToInt(FileIndex) + 1); FileName := FileIndex + Exp; TFile.Copy(ListBox1.Items[I], FileName); end; Timer2.Enabled := False; end; Когда я его запускаю, все работает, однако постоянно выскакивает сообщение об ошибке: specified file already exists, то есть копируемый файл уже существует. То есть, программа пытается каждый файл скопировать дважды. Вопрос: почему? С чем это связано и как от этого избавиться?
  21. Здравствуйте. У меня такая проблема. Пытаюсь скачать файл: var S : TMemoryStream; begin S := TMemoryStream.Create(); IdHTTP1.Get('http://sitename.com/7UlmBU7IXHA.jpg', S); S.SaveToFile('/storage/emulated/0/ImageFile.jpg'); S.Free; end; Проблема возникает на последней стадии - при сохранении файла. Android пишет, Cannot create file: '/storage/emulated/0/ImageFile.jpg'. Permission denied, то есть доступ запрещен. Но как его разрешить? Когда я устанавливаю приложение, система пишет, что никаких разрешений данная программа не требует.
  22. Добрый день! Установил XE8, открыл проект собранный на XE7 начались проблемы со стилями (если использовать один стиль на всех формах), это пол беды. пришлось стиль новый для каждой формы ставить... а ошибка что в названии появилась откуда не ждал, есть TListView, заполняется динамически 1-зачение добавляем ListView1.ClearItems; with ListView1.Items.Add do begin Text := 'KCell'; Bitmap.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'kcell.png')); Tag := 3; end; with ListView1.Items.Add do begin Text := 'Activ'; Bitmap.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'activ.png')); Tag := 391; end; with ListView1.Items.Add do begin Text := 'Tele2'; Bitmap.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'tele2.png')); Tag := 125; end; with ListView1.Items.Add do begin Text := 'Pathword'; Bitmap.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'pathword.png')); Tag := 73; end; with ListView1.Items.Add do begin Text := 'Beeline'; Bitmap.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'beeline.png')); Tag := 90; end; with ListView1.Items.Add do begin Text := 'ДОС'; Bitmap.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'beeline-dos.png')); Tag := 578; end; with ListView1.Items.Add do begin Text := 'Dalacom'; Bitmap.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'dalacom.png')); Tag := 12; end; with ListView1.Items.Add do begin Text := 'City'; Bitmap.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'city.png')); Tag := 134; end; with ListView1.Items.Add do begin Text := 'ALTEL 4G'; Bitmap.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'altel4g.png')); Tag := 716; end; with ListView1.Items.Add do begin Text := 'АО "Казахтелеком"'; Bitmap.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'telecom.png')); Tag := 0; end; 2-значение ListView1.ClearItems; with ListView1.Items.Add do begin Text := 'ALTEL 4G'; Bitmap.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'altel4g.png')); Tag := 716; end; with ListView1.Items.Add do begin Text := 'JET'; Bitmap.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'jet.png')); Tag := 484; end; with ListView1.Items.Add do begin Text := '"Интернет Дома" от Beeline'; Bitmap.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'internetdoma.png')); Tag := 413; end; моделируем ситуацию если грузим 1 значение и тыкаем (выделяем) на последний или больший 2 itemindex затем выполняем 2 значение, то выскакивает argument out of range т.е. получается ItemIndex или Selected Item не сбрасывается. как эту ошибку исправить?
  23. Всем привет, с помощью Java2Op сделал обертку библиотеки получил модуль с интерфейсами. Теперь сам вопрос в JavaInterfaces.pas есть описание: JUsbManagerClass = interface(JObjectClass) ['{1048A6E9-E1B5-4DA5-A168-ED91E8DE5284}'] {class} function _GetACTION_USB_ACCESSORY_ATTACHED: JString; cdecl; {class} function _GetACTION_USB_ACCESSORY_DETACHED: JString; cdecl; {class} function _GetACTION_USB_DEVICE_ATTACHED: JString; cdecl; {class} function _GetACTION_USB_DEVICE_DETACHED: JString; cdecl; {class} function _GetEXTRA_ACCESSORY: JString; cdecl; {class} function _GetEXTRA_DEVICE: JString; cdecl; {class} function _GetEXTRA_PERMISSION_GRANTED: JString; cdecl; {class} function getAccessoryList: TJavaObjectArray<JUsbAccessory>; cdecl;//Deprecated {class} function openAccessory(accessory: JUsbAccessory): JParcelFileDescriptor; cdecl;//Deprecated {class} function openDevice(device: JUsbDevice): JUsbDeviceConnection; cdecl;//Deprecated {class} procedure requestPermission(device: JUsbDevice; pi: JPendingIntent); cdecl; overload;//Deprecated {class} property ACTION_USB_ACCESSORY_ATTACHED: JString read _GetACTION_USB_ACCESSORY_ATTACHED; {class} property ACTION_USB_ACCESSORY_DETACHED: JString read _GetACTION_USB_ACCESSORY_DETACHED; {class} property ACTION_USB_DEVICE_ATTACHED: JString read _GetACTION_USB_DEVICE_ATTACHED; {class} property ACTION_USB_DEVICE_DETACHED: JString read _GetACTION_USB_DEVICE_DETACHED; {class} property EXTRA_ACCESSORY: JString read _GetEXTRA_ACCESSORY; {class} property EXTRA_DEVICE: JString read _GetEXTRA_DEVICE; {class} property EXTRA_PERMISSION_GRANTED: JString read _GetEXTRA_PERMISSION_GRANTED; end; [JavaSignature('android/hardware/usb/UsbManager')] JUsbManager = interface(JObject) ['{6F603A25-E816-4012-9B23-054B428A4A75}'] function getDeviceList: JHashMap; cdecl;//Deprecated function hasPermission(device: JUsbDevice): Boolean; cdecl; overload;//Deprecated function hasPermission(accessory: JUsbAccessory): Boolean; cdecl; overload;//Deprecated procedure requestPermission(accessory: JUsbAccessory; pi: JPendingIntent); cdecl; overload;//Deprecated end; TJUsbManager = class(TJavaGenericImport<JUsbManagerClass, JUsbManager>) end; Что бы получить доступ к методам интерфейса используется следующая конструкция: JavaObject := TAndroidHelper.Context.getSystemService(TJContext.JavaClass.USB_SERVICE); FUsbManager := TJUsbManager.Wrap((JavaObject as ILocalObject).GetObjectID); теперь я могу получить доступ к методам JUsbManager, а как получить доступ к методам JUsbManagerClass Вот пример кода на Java, который хочу реализовать в Delphi: UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE); List<UsbSerialDriver> availableDrivers = UsbSerialProber.getDefaultProber().findAllDrivers(manager); if (availableDrivers.isEmpty()) { return; } // Open a connection to the first available driver. UsbSerialDriver driver = availableDrivers.get(0); //Вот тут мы видим что из экземпляра класса мы вызываем openDriver, как это сделать в Delphi UsbDeviceConnection connection = manager.openDevice(driver.getDevice()); Как мы можем заметить этого метода в описании интерфейса нет, но есть в классе, как получить доступ к экземпляру класса?
  24. Использую Delphi 10.3. Запускаю код программы, все работает. Как только увеличиваю размеры матриц, программа прекращает работу. В чем может быть проблема?
  25. Доброе время суток . Я только начал знакомится с потоками , не судите меня строго . Вот код . Смысл которого через отдельный поток загружать текст с сервера и отображать в memo. Что я делаю? На сервере из вне имеется файлкоторый по api запросам пополняется. Его нужно в потоке постоянно выводить в memo. подгружать каждый раз. При использовании на win вес работает, на андроид не качает и не сздает файл в чем может быть проблема? type ThreadHTTP = class(TThread) private public Stream: TMemoryStream; i: integer; procedure Execute; override; procedure ShowResult; end; {$R *.fmx} procedure TForm1.Button1Click(Sender: TObject); begin Timer1.Enabled := true; end; procedure TForm1.Timer1Timer(Sender: TObject); var MyHTTP: ThreadHTTP; begin ProgressBar1.Value := 0; MyHTTP := ThreadHTTP.Create(False); end; { ThreadHTTP } procedure ThreadHTTP.Execute; var j: integer; begin inherited; i := 0; j := 0; Stream := TMemoryStream.Create; Form1.IdHTTP1.Get('http://сайт/base.txt', Stream); Form1.ProgressBar1.Max := Stream.Size; while j <= Stream.Size do begin inc(i); Synchronize(ShowResult); inc(j); Form1.ProgressBar1.Value := Form1.ProgressBar1.Value + 1; end; Stream.SaveToFile(tpath.getdownloadspath + '/base.txt'); Form1.Memo1.Lines.LoadFromFile(tpath.getdownloadspath + '/base.txt'); Stream.Free; end; procedure ThreadHTTP.ShowResult; begin Form1.Label1.Text := IntToStr(i) + ' kbs'; end;
×
×
  • Создать...