Задать вопрос
  • Delphi Async Callable?

    HemulGM
    @HemulGM Куратор тега Delphi
    Delphi Developer, сис. админ
    Если хочешь синхронизировать потоки из метода, то используй
    TThread.Synchronize(<method>);
    Ответ написан
    Комментировать
  • Как создается нестандартный интерфейс для программ?

    HemulGM
    @HemulGM Куратор тега Windows
    Delphi Developer, сис. админ
    Достаточно иметь прямые руки и немного знаний основ WinAPI.
    Например, как кто-то выше говорил, что мол есть сторонние компоненты и прочее, которые позволяют...и так далее, в отличие от таких "специалистов", я категорически отношусь к сторонним решениям, т.к. эти решения зачастую ограничены и/или в добавок ко всем проблемам могут добавить багов и зависимости, например как Qt.
    Я всегда делаю интерфейс самостоятельно, используя только стандартные методы. А обрезка окна - это тоже стандартная функция WinAPI.
    Вот несколько примеров того, как я делаю
    spoiler
    5d617239111ff438884411.png
    5d6172933e884055572121.png
    5d6172a4aefa9279769834.png
    5d6172b360d71811082641.png
    5d6172c156ea6526964624.png
    5d6172cb6f99a252682371.png
    5d6173e60bcb8336468424.png

    Ни в одной из этих программ, я не использую никакие сторонние компоненты (за исключением своих собственных).
    Ах, да. Ну и сделано это всё на старом добром Delphi.

    Помимо этого в Delphi есть кроссплатформенный фреймворк, позволяющий создавать чрезвычайно красивый софт, т.к. в нём доступна отрисовка на GPU, анимация и гибкая визуальная стилизация.
    Ответ написан
    Комментировать
  • Возможно ли сделать полный RDP?

    HemulGM
    @HemulGM Куратор тега Windows
    Delphi Developer, сис. админ
    RDP это не просто удаленный доступ, как например это делают TeamViewer, AmmyAdmin, Radmin и прочие. RDP работает по другому принципу и перебросить видеокарту у вас никак не получится. Звук и микрофон должны работать, видимо у вас просто проблемы.
    Рекомендую использовать TW, и видимо либо крякнутый, либо купить лицензию.
    А по поводу RDP.
    Прямой доступ хоть откуда тебе должен обеспечивать провайдер, дав тебе белый ip адрес. Настроив роутер, на проброс портов ты подключишься к компу хоть откуда. И никакого сервера поднимать не нужно.
    Также, если создать два пользователя на компе, то ты сможешь работать на этом компе одновременно с кем-то другим пользователем. Чего кстати невозможно сделать не с RDP. Т.к. для него создаётся полноценная сессия и т.д.
    VPN поднимается в том случае, если тебе нужна сеть, а не отдельный комп. Для VPN сервера тебе также нужен будет белый ip адрес. Или какие-то замароченные VPN с клиентом на компе.
    Ответ написан
    Комментировать
  • Можно ли оптимизировать этот запрос?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    Можно, наверное. Попробуй получить план выполнения запроса и посмотреть, где полные выборки и можно ли их избежать, если они выполняются несколько раз. Также, использовать индексацию.
    Ответ написан
    1 комментарий
  • Как создать бота ВКонтакте для страницы?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    Создаешь на странице вк standalone-приложение. С его помощью получаешь токен. Пишешь запросы используя VK API. Всё просто. Только в последнее время ВК API не особо любит работу с сообщениями пользователей.
    Тебе не нужны библиотеки, достаточно отправлять запросы на сервер и получать ответ. Ответы в формате JSON (вот для них только нужна библиотека).

    Если чуть глубже, то тебе нужен стандартный GET/POST запрос через HTTP, в теле запроса - параметры: ид юзера и т.д. Ах, да ну и желательно использовать OAuth2 аутентификацию. Т.е. Открывать страницу встроенного браузера для авторизации в ВК и получения токена.
    Ответ написан
    Комментировать
  • Какой использовать движок и может есть курсы, книги по данному движку для создания элементарной спрайтовой игры?

    HemulGM
    @HemulGM Куратор тега Delphi
    Delphi Developer, сис. админ
    Я тут занимался немного. Осталось добавить загрузку изображений в ID2D1Bitmap

    GitHub
    procedure TFormMain.FormCreate(Sender: TObject);
    begin
      Engine := TD2EngineCore.Create(800, 600);
      Engine.LoopedWorld := True;
      Engine.CreateTest;
      Engine.Run;
    end;
    
    procedure TFormMain.FormDestroy(Sender: TObject);
    begin
      Engine.Free;
    end;
    
    procedure TFormMain.FormPaint(Sender: TObject);
    begin
      Canvas.StretchDraw(ClientRect, Engine.Buffer);
    end;
    
    procedure TFormMain.FormResize(Sender: TObject);
    begin
      Canvas.StretchDraw(ClientRect, Engine.Buffer);
    end;
    
    procedure TFormMain.TimerRepaintTimer(Sender: TObject);
    begin
      Invalidate;
    end;
    Ответ написан
    Комментировать
  • Как сделать, чтобы не всплывало предупреждение безопасности Windows?

    HemulGM
    @HemulGM Куратор тега Delphi
    Delphi Developer, сис. админ
    SilentMode у компонента установи в True.
    Ответ написан
    5 комментариев
  • Как скачать файл с инета не используя Indy?

    HemulGM
    @HemulGM Куратор тега Delphi
    Delphi Developer, сис. админ
    THTTPClient в System.Net.HttpClient.
    function DownloadURL(URL: string): TMemoryStream;
    var
      HTTP: THTTPClient;
    begin
      Result := TMemoryStream.Create;
      HTTP := THTTPClient.Create;
      try
        try
          HTTP.HandleRedirects := True;
          HTTP.Get(URL, Result);
        except
          //Ну, ошибка... Поток всё равно создан и ошибки не должно возникнуть,
          //если проверить размер потока перед его использованием
        end;
      finally
        HTTP.Free;
      end;
    end;
    Ответ написан
    Комментировать