Ответы пользователя по тегу Delphi
  • Как изменить (удалить) переменную в которой записана версия Delphi?

    @KotFlix
    Для изменения переменной в которой записана версия Delphi, нужно редактировать значение ключа реестра "AppVerName" в разделе "HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Delphi\X.0", где "X.0" - это версия Delphi.

    Для этого выполните следующие действия:

    1. Откройте "Редактор реестра" (Registry Editor).
    2. Перейдите к разделу "HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Delphi\X.0", заменив "X.0" на соответствующую версию Delphi.
    3. Найдите ключ "AppVerName" и откройте его для редактирования.
    4. Измените значение переменной на новое значение.
    5. Закройте "Редактор реестра".

    Пожалуйста, обратите внимание, что изменение значения ключа реестра может привести к непредсказуемым результатам, поэтому рекомендуется создать резервную копию системы перед выполнением данной операции.
    Ответ написан
    Комментировать
  • Использование собственной соли Bcrypt в Delphi?

    @KotFlix
    1. Скачайте файл bcrypt.pas (ищем сами) и добавьте его в свой проект Delphi.
    2. Импортируйте модуль Bcrypt в вашем коде:
    uses
      Bcrypt;

    3. Используйте функцию bcrypt_hash для хеширования пароля:
    const salt = 'OOv2wLxbNjUxVcc1sjysau'
    var
      Password: string;
      HashedPassword: string;
    begin
      Password := 'password';
      HashedPassword := bcrypt_hash(Password+salt);
    end;

    4. Используйте функцию bcrypt_checkpw для проверки пароля:
    const salt = 'OOv2wLxbNjUxVcc1sjysau'
    var
      Password: string;
      HashedPassword: string;
      IsMatch: Boolean;
    begin
      Password := 'password';
      HashedPassword := bcrypt_hash(Password);
    
      // Проверяем, соответствует ли пароль хэшу
      IsMatch := bcrypt_checkpw(Password, HashedPassword);
    end;


    При вызове функции bcrypt_checkpw необходимо передать исходный пароль и хеш пароля + соль. Функция вернет значение True, если пароль соответствует хешу, и False в противном случае.
    Ответ написан
    Комментировать
  • Как обновить таблицы Access через запрос в delphi?

    @KotFlix
    Использовать вьюшники: https://support.microsoft.com/ru-ru/office/%D0%B8%...

    Работает как и с другими СУБД. Уведомляю, что до 2Гб access может работать, лучше использовать MS SQL, MariaDB или в крайнем случае SQLite в проекте.
    Ответ написан
    Комментировать
  • Как уведомлять о изменении в таблицах sqlserver на delphi?

    @KotFlix
    Для уведомления о изменениях в таблицах SQL Server на Delphi можно использовать механизмы, предоставляемые самим СУБД или же дополнительные компоненты.

    Один из способов - использовать механизм Service Broker, который позволяет создавать очереди сообщений и отправлять сообщения между различными частями приложения. Для работы с Service Broker в Delphi можно использовать компоненты из библиотеки Devart SDAC.

    Вот пример кода, который показывает, как использовать Devart SDAC для получения уведомлений об изменениях в таблицах SQL Server с помощью Service Broker:


    uses
    DBAccess, MSAccess;

    procedure TForm1.SQLConnection1AfterConnect(Sender: TObject);
    var
    Query: TMSQuery;
    begin
    // Создаем новый объект TMSQuery и устанавливаем свойство SQL соответствующим запросом SQL Server
    Query := TMSQuery.Create(nil);
    Query.SQL.Text := 'SELECT * FROM MyTable';

    // Устанавливаем свойства, необходимые для работы с Service Broker
    Query.Options.ProviderFlags := [pfServiceBroker];
    Query.ServiceBroker.Name := 'MyQueueName';

    // Назначаем обработчик события OnChange, который будет вызван при изменении данных в таблице
    Query.OnChange := QueryChange;

    // Открываем запрос
    Query.Open;
    end;

    procedure TForm1.QueryChange(Sender: TObject);
    begin
    // Выполняем необходимые действия при изменении данных в таблице
    end;


    В этом примере мы создаем новый объект TMSQuery и устанавливаем свойство SQL соответствующим запросом SQL Server. Затем мы устанавливаем свойства, необходимые для работы с Service Broker, а именно: ProviderFlags устанавливается в [pfServiceBroker] и ServiceBroker.Name устанавливается в имя очереди сообщений.

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

    Таким образом, используя Devart SDAC и механизм Service Broker, можно получить уведомления об изменениях в таблицах SQL Server на Delphi.
    Ответ написан
    Комментировать
  • При увеличении интерфейса в Windows в Delphi текст увеличивается, но место, отведенное для него, - нет. Можно ли это как-нибудь исправить?

    @KotFlix
    Да, можно исправить данную проблему с помощью установки значения свойства Scaled в True для компонентов формы.

    Когда свойство Scaled установлено в True, Delphi автоматически масштабирует размеры компонентов формы в соответствии с текущим масштабом DPI операционной системы.

    Чтобы установить значение свойства Scaled в True, откройте дизайнер формы и выберите каждый компонент по очереди. Затем найдите свойство Scaled в панели свойств Object Inspector и установите его значение в True. После этого сохраните изменения и запустите приложение.

    Теперь компоненты формы будут масштабироваться в соответствии с масштабом DPI и текст будет правильно отображаться на экране.
    Ответ написан
    Комментировать