Перейти к содержанию

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

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

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

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

Тип контента


Форумы

  • Общие вопросы
    • Анимация
    • Графика
    • Стили
    • Базы данных и REST
    • Компоненты
    • Положение, размеры, выравнивание
    • Работа с текстом
    • Приложение и формы
    • Отладка
    • Развертывание приложений
    • Вопросы по языку Object Pascal и RTL
    • Общая информация о TControl
    • События
    • Прочие вопросы
  • Вопросы по платформам
  • Вопросы по использованию RAD Studio
  • Native FGX
  • Обучение
  • Поиск специалистов по FireMonkey
  • Дополнительные ресурсы по FireMonkey
  • Организация работы данного форума
  • Видеокурсы

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

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


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

  • Старт

    Конец


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

  • Старт

    Конец


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

Регистрация

  • Старт

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


StackOverflow


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


Город


Интересы

Найдено: 74 результатов

  1. Использую Delphi 10.3. Запускаю код программы, все работает. Как только увеличиваю размеры матриц, программа прекращает работу. В чем может быть проблема?
  2. Доброе время суток . Я только начал знакомится с потоками , не судите меня строго . Вот код . Смысл которого через отдельный поток загружать текст с сервера и отображать в 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;
  3. Здравствуйте! Есть замечательная русская программа ТЕХТРАН: http://www.tehtran.com/nestf.html Мне нужен максимум такой же - минимум что предложите алгоритм (раскладки деталей на листе) работы в DELPHI что бы я его мог сам в дальнейшем исправлять и доделывать ТРЕБУЕТСЯ ТОЛЬКО АЛГОРИТМ ЗАПОЛНЕНИЯ ПРЯМОУГОЛЬНИК ОПРЕДЕЛЕННЫМИ КОНТУРАМИ, вся программа ТЕХТРАН у меня уже есть. Будут входные данные: Минимум это простейшие фигуры:размеры прямоугольников и окружностей - максимум это фигуры сложной формы в формате DXF(AutoCad) и их количества(примерно безгранично) для каждой фигуры будут параметры: Размеры(для простейших это толщина,ширина и длина; для DXF это толщина и файл DXF) - все в миллиметрах Кол-во (шт) Размер листа прямоугольный(пример: 10х1500х6000мм, 5х2000х3000мм, 100х100х3000мм) и их кол-во, скажет так первое значение это толщина, второе - ширина, третье - длинна. Разрешенные расстояния между фигурами и от края листа до фигур - все в миллиметрах Кол-во данных должно быть примерно безгранично На выходе надо получить требуемое-подходящее минимальное кол-во листов для всех фигур! Ну и соответственно визуализировать результат например на TImage Это не полное техзадание, но сколько примерно это будет стоить? Хотелось бы использовать это модуль на всех платформах, но как минимум это Windows. Заранее спасибо!
  4. Класс для работы с FastCGI серверами, такими как php-fpm. Для тех кто не в теме : веб-сервер, к примеру nginx, получает запросы и отправляет их на исполнение FastCGI серверу, к примеру php-fpm, php-fpm получает имя скрипта, параметры, выполняет все и возвращает результат в nginx, который в свою очередь возвращает этот результат запросившему клиенту. С помощью класса вы можете так же, выполнять php скрипты на локальном или удаленном сервере. Исходники https://github.com/EvgeniyKorepov/FastCGIClient Пример delphi var FFastCGI : TFastCGI; ... procedure TFormMain.FormCreate(Sender: TObject); var AHost : String; APort : Word; AScriptFileName, ARequest, AContent : String; begin AHost := '10.0.0.4'; APort := 9000; FFastCGI := TFastCGI.Create(AHost, APort); FFastCGI.KeepAlive := True; AScriptFileName := '/opt/xxx.php'; ARequest := 'request=1234567890'; if FFastCGI.Get(AScriptFileName, ARequest, AContent) then Memo.Text := AContent else Memo.Text := FFastCGI.StatusCode.ToString + ' ' + FFastCGI.StatusText; end; пример php <?php header('Content-Type: text/html; charset=utf-8'); if (isset($_REQUEST["request"])) if ($_REQUEST["request"] == "1234567890") { header("Status: 200"); echo 'OK'; } else { http_response_code(400); echo "ERROR"; }
  5. Я написал класс для демонизации приложения в linux. Класс форкает процесс, обрабатывает поступающие сигналы и передает их в основной поток через потокобезопасную очередь. Исходники https://github.com/EvgeniyKorepov/LinuxDaemon Для использования просто подключите модуль UnitDaemon в свое консольное приложение: program DaemonTest; {$APPTYPE CONSOLE} uses System.SysUtils, System.IOUtils, System.SyncObjs, Posix.Stdlib, Posix.SysStat, Posix.SysTypes, Posix.Unistd, Posix.Signal, Posix.Fcntl, Posix.Syslog in 'Posix.Syslog.pas', UnitDaemon in 'UnitDaemon.pas'; var AEventType : TEventType; begin syslog(LOG_NOTICE, 'main START'); while True do begin syslog(LOG_NOTICE, 'main LOOP'); if UnitDaemon.QueueEvent.PopItem(AEventType) = System.SyncObjs.TWaitResult.wrSignaled then begin syslog(LOG_NOTICE, 'main UnitDaemon.QueueEvent.PopItem'); case AEventType of TEventType.StopProcess : begin syslog(LOG_NOTICE, 'main Event StopProcess'); ExitCode := EXIT_SUCCESS; exit; end; TEventType.Start : begin syslog(LOG_NOTICE, 'main Event START'); end; TEventType.Reload : begin // Reload config syslog(LOG_NOTICE, 'main Event RELOAD'); end; TEventType.Stop : begin syslog(LOG_NOTICE, 'main Event STOP'); ExitCode := EXIT_SUCCESS; exit; end; end; end; Sleep(50); end; end. Так же поддерживается systemd - для этого положите DaemonTest.service в /etc/systemd/system/ и используйте : systemctl start DaemonTest.service systemctl reload DaemonTest.service systemctl stop DaemonTest.service
  6. Я недавно или давно писал по поводу почему компилятор при разном наборе USES увеличивает время компиляции где-то от 4 до 10 раз. То есть проект может компилируются за 10 секунд, а при небольших манипуляциях с USES станет компилироваться 40 секунд и тд. Очень хорошо заметно на большом проекте у меня с 1 минуты 18 секунд выросло время компила до 1 часа 40 минут. Ну хватит предыстории после анализа зависимостей и проверки логов обращения к файловой системе был выяснен интересный факт :) У меня в проекте появился UNIT в котором глобальные методы для так сказать конфигурирования внешнего вида компонентов (компоненты тоже самописные) и получилось следующая ситуация: 1. В UNIT с формой лежит один из визуальных компонентов назовем его TXXX 2. соответственно в первом (interface секции) USES данного модуля прописывается автоматом модуль из зависимостей компонента 3. В нижнем (implementation секции) USES расположен UNIT с глобальными методами (назовем его UNIT XXX) для так сказать конфигурирования его (установка бордера и другой дичи) 4. В этом UNIT XXX (interface секции) USES также прописаны модули этих визуальных компонентов для передачи их в методы как параметры. Так вот из-за такой ошибочной связи время компила увеличивается в разы и по анализу project dependency увеличивается с более менее приемлемых (по времени компиляции) 200 до 500. Из сходя из этого начала рефакторинг всего кода и переводить компоненты на интерфейсы это сокращает project dependency проекта и неплохо так, перевод одного компонента который используется почти везде в проекте на интерфейс сократил с 200 до 190 и время компила начала сокращаться. Сори за много букавок, но может кому будет интересно или кто с толкнулся с такой проблемой. Так же в решении и анализе взаимосвязей помог эксперт MMX.
  7. Ну всё в принципе как всегда, либо я барашка, либо лыжи не едут) А всё просто - я хочу, чтобы пока данные с сервера загружались по клику кнопки, пользователю элементарно был отклик в виде крутящейся какой нибудь фигни и он видел, что процесс идёт и что прога не зависла и никуда лишний раз не тыкал. Пока что для тестов сделала элементарно кнопку Update (speedbutton с image), данные элементарно грузятся и отображаются в GridPanel, а поверх него, чтоб пользователь и не смог куда либо тыкнуть, замостила панелькой с Image, вращаемой по таймеру (всё это дело наверху Visible:=false). И когда клацаем по кнопке Update, то панельку сверху грида делаю отображаемой и запускаю таймер, потом этот же обработчик/процедура грузит данные, а по окончанию останавливаем таймер и скрываем полупрозрачну, еще кстати, панельку. Аля вот так: procedure TForm1.SB_DataUpdateClick(Sender: TObject); begin //отображаем лого загрузки P_showLoad.Visible := true; Timer_load_rotate.Enabled := true; //с запуском таймера GetDeD_List(DE_set.Date); //процедура загрузки и отображения чего нам надо, которая весьма долго выполняется //и скрывае лого загрузки Timer_load_rotate.Enabled := false; //уже в обратном порядке P_showLoad.Visible := false; end; иии... ни черта не происходит как я хочу( Это лого вообще в итоге не отображается, а если убрать его скрытие, то оно у нас отобразится уже только тогда, когда всё загрузится. Логика мне стала подсказывать, что следовало его как то отобразить выполнив в параллельном асинхронном потоке аля так: procedure TForm1.SB_DataUpdateClick(Sender: TObject); begin TThread.Queue(TThread.Current, //TThread.Queue TThread.Synchronize ForceQueue procedure() begin P_showLoad.Visible := true; Timer_load_rotate.Enabled := true; end); GetDeD_List(DE_set.Date); //процедура загрузки и отображения чего нам надо, которая весьма долго выполняется end; И опять оно отображается только после того, как всё загрузится и проработает вся процедура. И уже чего только не пробовала и Synchronize и ForceQueue; и через TTask.Run и |task := TTask.Create(procedure () ... и т.д.| ничего не подходит, вот хоть убейся это всё дело будет отображаться только после полной отработки процедуры клика. Может я не в том направлении вообще рою и это как то по другому делается? Может я еще пока отлаживаю на Win32, а не всё на android, а там вот пара вариантов и норм на нём работают? Но чтот я никак не могу понять, что к чему... должно же быть как то просто, а я чтот никак не могу понять как(
  8. Приветствую. Имеется необходимость получить список всех видимых (GUI) компонентов, установленных в Delphi. Я видел где-то, что можно как-то попробовать через ToolsAPI это сделать, но ничего толкового на эту тему так и не нашел. Может есть у кого мысли по этому поводу? Если возникнет вопрос: для чего тебе это? Ответ: Для приложения LivePreview, которое идет вместе со студией для того, чтобы видеть то, что размещаю на форме непосредственно на устройстве. Спасибо!
  9. Goоgle Play перестает поддерживать 32-bit Android-приложения c 01.08.2019.А выкладывать в Goоgle Play новые УЖЕ нельзя.Последние же Delphi XE не позволяют создать 64-bit Android-приложения. Кто знает, когда появится новая версия с поддержкой 64 - bit? Говорили, что в конце лета, но лето кончилось
  10. Подскажите плз студенту, весь инет перерыл - ничего кроме tmapview не нашел, и тот позволяет только отображать маркеры и прокладывать через них маршрут... ок маршрут проложили а как включить навигацию? чтобы телка сказала - поверни те туда то.... не ясно, и возможно ли вообще такое? Кстатить при использовании tmapview вместо карты - пустой экран. вообщем надо передать в tmapview мое местоположение и куда надо идти, затем включить навигацию Кто занет как сделать ????????? Или может есть возможность использовать встроенные возможности навигации?
  11. Всем привет, вот и я решил внести свою лепту в жизнь форума и сегодня мы разберемся с разрешениями на Delphi Rio под Андроид. Для примера мы будем использовать разрешения на чтение и запись с памяти устройства, для начала в нашем проекте выставим в Delphi>Project>Application>Uses Permissions галочки на Read External Storage и Write External Storage. в uses проекта добавьте следующее uses System.Permissions, Androidapi.Jni.Os, Androidapi.Helpers, далее создадим переменные var Form: TForm; .... FPermissionWrite: string; FPermissionRead: string; в Form.Create добавим следующий код procedure TForm.FormCreate(Sender: TObject); begin FPermissionWrite := JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE); //Значение на запись FPermissionRead := JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE); //Значение на чтение end; и теперь сам не посредственно запрос на подтверждение наших прав procedure TForm.Button1Click(Sender: TObject); begin PermissionsService.RequestPermissions ([FPermissionWrite, FPermissionRead], nil); end; //это вызовет окно с запросом разрешения прав ну и для проверки бросим на форму TMemo и пару TButton , в них реализуем сохранение и чтение из файла с памяти устройства procedure TForm.Button1Click(Sender: TObject); begin Memo1.Lines.LoadFromFile(TPath.Combine(TPath.GetSharedDocumentsPath, 'test.txt')); end; procedure TForm.Button2Click(Sender: TObject); begin Memo1.Lines.SaveToFile(TPath.Combine(TPath.GetSharedDocumentsPath, 'test.txt')); end; P.S. Напоминаю что для работы TPath нам понадобится подключить в Uses uses System.system.ioutils; Надеюсь материал будет полезен! video_2019-02-08_00-11-36.mp4 Permissions.zip
  12. TAZAQ

    Delphi 10.3

    Доброго времени суток, возникло пару вопросов по поводу нового релиза студии, а конкретно Delphi 10.3 community: 1) В каком месте находится презентованный z-order для компонентов и как он работает? 2) Почему на inline объявление переменных ругается редактор кода, но при этом компилятор спокойно пережевывает и не давится?
  13. Доброго дня! Проясните пожалуйста ситуацию: при запуске программы под Андроидом на различных устройствах я получаю размеры формы, которые вроде всегда в разы меньше чем максимальное разрешение экрана конкретного устройства. Я пробовал планшеты и разные смартфоны. Написал тестовую прогу, которая выводит СlientScreen и ClientWidth формы, на которой ничего больше нет. Например для крайне бюджетного смартфона Fly FS-549 получилось 497 х 320, а по паспорту 854x480. Разрешение и так хреновое, а Delphi его еще сильнее уменьшает. - Почему это происходит и можно ли как то это обойти?
  14. Создал проект там куча компонентов. Но разворачивании формы на весь экран компоненты размер не меняют: Прочитал про свойства align Но как только я выставлю Group box например left другим right все сбивается в кучу и поправить это не могу. Как настроить align ?
  15. Как сделать форму с компонентами под все разрешения?
  16. Как сделать мозаику (drag/drop) ? Получается есть 2 прямоугольника (которые надо перетаскивать) и есть ещё 2 прямоугольника (которые должны принимать) и ещё есть кнопка проверки. При нажатии определяет правильно ли разместили прямоугольники.
  17. Как задать градиентную заливку TChart? именно самих столбцов.
  18. Как задать свои цвета круговой диаграмме и тень под ней ?
  19. Как создать диаграмму из бд? Есть таблица Access со статистикой как создать диаграмму по ней ???
  20. Здравствуйте, у меня возник вопрос Как базу данных подключить к TGrid? Я использую Delphi XE3 и База данных Accsess: ADOConnection + ADOQuery + DataSource. И вот как отобразить в TGrid Таблицу бд ?
  21. Как в самой форме созданной в Delphi XE3 открыть word документ?
  22. Как изменить цвет Label? не работает Label1.Color := clBlue;
  23. При нажатии на Label действия не происходят procedure TForm2.Label11Click(Sender: TObject); begin Button1.visible:= true; {label7.Font.Style:= []; label8.Font.Style := []; label9.Font.Style := []; //label11.Font.Style := [fsbold]; label10.Font.Style := []; } GroupBox12.Visible := false; GroupBox13.Visible := false; GroupBox14.Visible := false; GroupBox15.Visible := true; GroupBox16.Visible := false; end;
  24. Всем привет. Работаю с DCEF3 последней ветки (https://github.com/hgourvest/dcef3). Использую Delphi 10.1 Нужно сделать две одновременно запущенных web версии whatsapp (https://web.whatsapp.com/) Динамически создаются два экземпляра Chromium с разными именами, user agent. Сначала создается первый и в нем появляется QR-код для авторизации через телефон. После создания второго - в первом QR код исчезает и появляется ТОЛЬКО во втором. Я так понимаю проблема в куках. Может кто знает как можно задать отдельную папку/хранить в память для каждого экземпляра? Сейчас задаю таким образом глобальный куки менеджер: CookiesPath := ExtractFilePath(Application.ExeName) + DEFAULT_COOKIES_DIR + currentNumber.ToString; CM := TCefCookieManagerRef.Global(nil); CM.SetStoragePath(CookiesPath, true, nil); P.S. Если запускать копию exe из той же папки где находятся все ресурсы хромиума, то такой проблемы нет. P.P.S. Еще заметил, что авторизованная сессия whatsapp не сохраняется после перезапуска программы. А тот же mail.ru сохраняется.
×
×
  • Создать...