• Почему я не могу сделать битмап такого размера и как обойти?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    Потому что есть ограничения

    Ну и
    1 000 000 х 1 000 000 х 32 (байта на пиксель) = 32 000 000 000 000 байт на твою картинку
    А это 31 250 000 000 кб или 30 517 578 мб или 29 802 гб или 29 тб

    У тебя есть столько ОЗУ?

    Ну и в .NET ограничение на картинку (2^16*32). Т.е. максимум ты можешь сделать картинку 1400 на 1400

    Можно снизить битность и использовать 24 бита (без прозрачности)
    Ответ написан
    8 комментариев
  • Как скачать музыку из vk с использованием python?

    HemulGM
    @HemulGM Куратор тега Python
    Delphi Developer, сис. админ
    Никак не обходят. API для музыки работает без проблем, если у приложения (приложения вк/ключа) есть доступ к музыке. В сети можно получить ключ с доступом к музыке через слитые вк приложения.

    ВК приложения - это просто запись о регистрации приложения в соц. сети.

    Вот тут можно найти инфу по слитым приложениям https://vkhost.github.io/

    У меня несколько приложений, которые без проблем позволяют слушать музыку ВК, написанных, конечно, не на питоне.
    Ответ написан
  • Может кто-нибудь дать реальную задачу на которой можно применить ООП?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    Сколько фигни понаписали, а человек просто просил реальный пример для применения ООП.

    ООП помогает строить приложения так, как человеку удобнее мыслить. Наш мир окружают объекты. И в программировании мы описываем эти объекты. Например: человек - объект. Человека мы можем описать не целиком, если нам нужен человек только лишь как клиент. А для этого нам важен его идентификатор, имя и прочие данные.
    После чего мы используем списки таких объектов для манипуляции данных. Список клиентов - список объектов.

    Объекты могут совершать действия, или над объектами могут совершатся действия. Т.е. клиент сам может создавать заявку или этим может заниматься менеджер.

    Что то типа Client.CreateOrder (клиент создает заказ) или Orders.CreateOrder(Client) (менеджер заявок создает новую для такого-то клиента).
    Всё достаточно просто.

    Тебе достаточно придумать любую задачу и просто решить её с помощью объектов.
    Например, музыкальный плеер. Пусть трек будет представлять объект, содержащий путь к файлу, название, продолжительность и так далее. И список треков. Дальше сам решай кто чем будет управлять. Либо ты работаешь над списком объектов, либо каждый объект может сам делать что нужно. Но для музыкального плеера удобнее, когда треки лишь содержат данные (DTO). Т.е. имеем список треков и манипулируем объектами (добавляем, редактируем, удаляем и т.д.)

    Это в общих чертах. После чего добавляем наследование. Например, есть базовый класс - трек, но он может быть как ссылка на веб-ресурс, а может быть как файл. Т.е. мы создаем общий абстрактный класс для хранения любых треков в списке (как файловых, так и веб)

    TAudio = class abstract
    private
      FId: string;
    protected
      function GetTime: TTime;
      function GetName: string;
    public
      property Id: string read Fid write FId;  //Пусть тут будет полное имя файла или ссылка на веб
      property Time: TTime read GetTime;  //Время
      property Name: string read GetName;  //И имя
    end;

    После чего мы можем от него наследовать два класса (для файлов и для веб)
    TAudioFile = class(TAudio)
    protected
      function GetTime: TTime; override;
      function GetName: string; override;
    end;
    
    TAudioUrl = class(TAudio)
    protected
      function GetTime: TTime; override;
      function GetName: string; override;
    end;


    И хранить оба типа объектов в одном списке.
    TAudioList = TObjectList<TAudio>;

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

    Используя список мы можем
    var AudioList := TAudioList.Create;
    
    var Audio: TAudio := TAudioFile.Create('C:\Music\Track1.mp3');
    AudioList.Add(Audio);  // Добавлять аудио файлы
    
    Audio := TAudioUrl.Create('webmusic.ru/tracks/track1.mp3');
    AudioList.Add(Audio);  // Добавлять веб аудио 
    
    AudioList.Delete(0); // Удалять элементы
    
    // менять местами, сортировать, редактировать и т.д.


    Теперь у нас общий плейлист для тех и других видов аудио и мы можем скармливать их плееру для воспроизведения.

    Player.Play(AudioList[0].Id);

    А дальше мы можем усложнять и усложнять, добавляя новые возможности. Например, завести интерфейс и принимать аудио файлы из плагинов. Или использовать ОРМ для хранения плейлистов в базе данных. Мы можем отличать один вид от другого при переборе списка и обрабатывать уникально для некоторых.
    Ответ написан
    4 комментария
  • Безопасен ли зараженный отключенный SSD диск?

    HemulGM
    @HemulGM Куратор тега Windows
    Delphi Developer, сис. админ
    В основном безопасен. В режиме работы из под ос - безопасен, если его не включит сам вирус. Такое тоже можно сделать. Но случаев я пока не припомню.
    Но вирусы могут работать на уровне Биоса (современного Биоса). Это сильно страшнее и там уже не важно включен он в ос или нет.
    Тут стоит выключать его на уровне Биоса. Но тут тоже могут его включить.

    Так что безопаснее в любом случае отключать физически. Если паранойя)
    Ответ написан
    4 комментария
  • Как перейти по ярлыку?

    HemulGM
    @HemulGM Куратор тега Python
    Delphi Developer, сис. админ
    В winapi есть инструменты чтения файла lnk (ярлык). Там можно получить все данные (а также, создать новый ярлык или изменить существующий)
    COM, ShellLinkObject
    Ответ написан
    Комментировать
  • Какой ассемблер используется в Delphi?

    HemulGM
    @HemulGM Куратор тега Delphi
    Delphi Developer, сис. админ
    3 комментария
  • Как сделать что б бот писал в определенное время?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    1. Учи русский язык
    2. Если данных много, то хранить нужно в базе данных. Подойдёт sqlite.
    3. Учи основы программирования
    4. Пишет пользователь - запоминаешь его идентификатор и указанное время.
    5. Учи питон
    6. Каждую минуту в отдельном потоке проверяешь наступление времени и пишешь юзеру
    7. Учись думать и рассуждать
    Ответ написан
    Комментировать
  • Можно ли импортировать код другого языка в С#?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    Ассемблерная вставка - это немного не то, что можно назвать "вставкой на другом языке". Вставка чистого асм просто используется напрямую компилятором при создании исп. файла. Не "знать ассемблер" компилятор не может.

    C# - частично компилируемый язык, у него сложный процесс сборки в общий .NET код, а потом под платформу. И тут мы видим, что код на асм не впишется в такую архитектуру. По этому и не имеет возможности прямой вставки.
    Прямая вставка асм, поддерживается, как вы уже сказали в С++, в Delphi, FPC и в многих других компилируемых языках.
    Ответ написан
    Комментировать
  • Как сделать такой сайт?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    Он нарисован на канвасе
    Ответ написан
    3 комментария
  • Как извлечь содержимое портативной .exe программы?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    1. При чем тут обфускация кода?
    2. С чего ты взял, что это архив?
    Данные программы могут хранится в ресурсах ехе, а могут в конце файла. Вариантов много, стандарта - нет!
    Ответ написан
    Комментировать
  • Почему при запуске телеграм-бота на Python зависает консоль?

    HemulGM
    @HemulGM Куратор тега Python
    Delphi Developer, сис. админ
    Потому что тут (bot.polling(none_stop=True)) внутри бесконечный цикл

    Чтоб использовать консоль, пулинг нужно запускать в отдельном потоке
    Ответ написан
    Комментировать
  • Pool vs ThreadPool или как задействовать все процессоры с максимальной отдачей?

    HemulGM
    @HemulGM Куратор тега Python
    Delphi Developer, сис. админ
    Не использовать питон
    Ответ написан
  • Как проверить соединение WebSocket?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    Ну значит запоминай время последнего сообщения от клиентов и отключай тех, кто давно "молчит". Каждые 5-10 сек, например
    Ответ написан
  • Как правильно писать функции, классы, свойства, конструкторы?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    Чтоб отделить бизнес логику от окна
    Ответ написан
    Комментировать
  • Почему сразу закрывается окно в PYQT?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    Ты сам написал sys.exit(app.exec_())
    Ответ написан
    Комментировать
  • Как записать в переменную строку из JSON файла с#?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    Это не json файл. ЧИтай его как обычный текстовый файл. Построчно или полностью
    Ответ написан
    Комментировать
  • Как создать ссылку на объект с#?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    Ну а зачем тебе этот метод статическим иметь? Убери модификатор
    Ответ написан
    Комментировать
  • Как научиться решать задачки на python?

    HemulGM
    @HemulGM Куратор тега Python
    Delphi Developer, сис. админ
    Что учить дополнительно? Логику что ли?
    Неужели сложно обозначить шаги для решения задачи?
    Нужно перемешать список. Что такое перемешать список? Это сделать так, чтобы элементы были на случайных местах. Что нужно сделать чтоб они были на случайных местах? Взять элемент и поменять его местами со случайным элементом. Что нужно чтоб выбрать случайное место? Взять функцию генерации случайных чисел и обозначить границы выборки случайных чисел.
    Итого:
    1. Запускаем цикл от первого элемента до последнего
    2. Берём элемент, получаем случайное число в пределах размера массива
    3. Меняем местами текущий элемент и элемент под случайным числом

    ВСЁ
    И это работает почти с любой задачей
    Ответ написан
    1 комментарий
  • Как реализовать многоязычность?

    HemulGM
    @HemulGM Куратор тега Python
    Delphi Developer, сис. админ
    Один раз создай при старте скрипта, перед началом работы бота. И грузи все сразу, если у тебя каждый юзер может свой язык использовать
    Ответ написан