Господа, это англоязычная ветка форума. Пишите на английском или на двух языках, чтобы всем было понятно...

Aza wrote:

Проблема 2 процедуры, при этом нужны одни и те же поля... как можно 2 процедуры повесить на одно событие?

Вызывайте одну процедуру из другой.


Q: Problem 2 procedures, thus the same fields are necessary... how it is possible to hang up 2 procedures on one event?
A: 1) Call one procedure from another. 2) Мake a third handler in which call the procedures you need, passing parameters to them

702

(18 replies, posted in General)

Added a form for change password and a button on the main form. Current password - 123

703

(18 replies, posted in General)

I can add an example directly to your project

704

(18 replies, posted in General)

  procedure SetStrIni(ASection: string; AKey: string; AVal: string);
  // запись единичного строкового значения в настройки
  var
    tmpIniFile: TIniFile;
  begin
    tmpIniFile := TIniFile.Create(Application.SettingsFile);
    tmpIniFile.WriteString(ASection, AKey, AVal);
    tmpIniFile.Free;
  end;

  function GetStrIni(ASection: string; AKey: string; ADefVal: string = ''): string;
  // чтение единичного строкового значения из настройки
  var
    tmpIniFile: TIniFile;
  begin
    tmpIniFile := TIniFile.Create(Application.SettingsFile);
    Result := tmpIniFile.ReadString(ASection, AKey, ADefVal);
    tmpIniFile.Free;
  end;

procedure frmLogin_bLogin_OnClick (Sender: string; var Cancel: boolean);
begin
    if frmLogin.edPassword.Text = DecryptRC5( GetStrIni('USER','Password'), 'Enigma') then
    begin
        frmLogin.Hide;
        frmMain.Show;
    end else MessageDlg('Wrong Password', mtError, mbOk, 0); // Displays a red 'X', header is: Error;
end;

procedure SetNewPassword;
begin
  SetStrIni('USER','Password',  EncryptRC5( frmNewPassword.edPassword.Text  , 'Enigma')  );
end;

705

(18 replies, posted in General)

Store the password not in the script, but in the database or in the configuration file. For reliability, you can store it in encrypted form.


Alternatively, you can use the standard access control system that is in MVDB.

706

(5 replies, posted in Script)

iwkom wrote:

In this way, only one record is extracted.
I want to read the whole table and save it in another database.
The ID numbers are not consecutive because there are deleted records.


procedure Form1_Button1_OnClick (Sender: TObject; var Cancel: boolean);
var
  tmpDataSet: TDataSet;
begin
   SQLExecute('ATTACH DATABASE ''test.db'' as ''TEST''');
   SQLQuery('SELECT * FROM TEST.klienti ',tmpDataSet);
   try
     while not tmpDataSet.EOF do
     begin
       SQLExecute('INSERT INTO kl (nameklient) VALUES ('''+escape_special_characters(tmpDataSet.FieldByName('klient').asString) +''')');
       tmpDataSet.Next;
     end;
   finally
     tmpDataSet.Free;
   end;
end;

Andrei, мне, конечно, лестно слышать такие слова, но, поверьте, я не один "продолжатель проекта" - загляните на англоязычную ветку, там много ветеранов, имеющих большой опыт в разработке и которые всегда готовы помочь новичкам. И среди них есть модераторы этого форума. Да и в русской ветке тоже есть фанаты данного проекта.


Про информацию с форума. Извлечение и упорядочивание данных из любого форума - это титанический труд. У меня несколько иной подход к этому: данный форум - это скорее место для общения, чем для накопления информации, так как имеющаяся здесь система поиска далека от совершенства.


Что же касается данных по домену, то так можно сказать о любом - регистрация домена возможна только на 1 год, а продление обычно производится за несколько дней до окончания срока регистрации.

Нифига не понял. Хер с ними, с запятыми, но смысл же должен быть в предложениях? Попробуйте в англоязычной ветке написать, может там вас лучше поймут....

709

(3 replies, posted in General)

chartcatuser wrote:

А возможно в таблице нажатием на checkbox присвоить выделеной строке 0 или 1 ?

Возможно присвоить 0 или 1 какой-либо ячейке в выделенной строке. Только зачем? Ведь нажатием уже присваивается значение True|False ячейке в колонке с самим чекером, что легко можно использовать в дальнейшем.


It is possible to assign 0 or 1 to any cell in the selected row. But why? After all, clicking already assigns the True|False value to the cell in the column with the checker itself, which can be easily used in the future.

pavlenko.vladimir.v wrote:

перед экспериментами лучше сделать резервную копию
я использую Duplicator
https://snapcreek.com/duplicator/

Спасибо за подсказу, добавил этот плагин и сделал резервную копию. Сколько же, оказывается, всего нужно )))

Поле FIO в таблице login должно быть уникальным - ведь это учетные записи пользователей. Или у вас у одного пользователя может быть несколько учетных записей и поле FIO содержит повторяющиеся значения?

712

(7 replies, posted in Russian)

chartcatuser, ..и опять нужно угадать, что у вас в проекте творится? smile

Задачу уточните. Зачем вам группировка в запросе? В таблице login у вас пользователи, в таблице main какая-то инфа, связанная с пользователями? При этом в запросе вы хотите видеть список пользователей и число записей в таблице main, которые ссылаются на login? Тогда вот запрос:

SELECT 
  login.FIO,
  (SELECT count(*) FROM main WHERE main.id_login = login.id)
FROM login
WHERE login.active = 2

С магазином экспериментирую, подключил wooCommerce, много там всякого, буду разбираться потихоньку. Есть там и цифровые товары (скачивание по разрешению). Насчет чата пока не планирую, но есть возможность задавать вопросы через комментарии к статьям. Планирую, чтобы по каждой книге была как минимум одна статья ))

Спасибо, Владимир!  Действительно, так симпатичней ))

Благодарю вас за то, что вы помогаете мне развиваться и двигаться вперёд. Добавил механизм подписки на уведомление о новых публикациях.


Thank you for helping me grow and move forward. Added a mechanism for subscribing to notifications of new publications.

То же самое происходит и с Библиотекой (https://mvdlibrary.blogspot.com)  - пропадают картинки на страницах сайта. Гугл-документы пока работают.  Так что в ближайшее время каталог библиотеки тоже переедет на http://k245.ru

joshuA wrote:

What's the status?
Where's the new site?


Каков статус?
Где новый сайт?


-joshuA

Новый сайт готов. Перенес на него несколько последних статей. Планировал представить его вместе с новой публикацией. Но раз уж спросили, то вот он:


The new site is ready. Moved to it a few recent articles. Planned to present it along with a new publication. But since you asked, here it is:


http://k245.ru

Ох, старый я стал, подозрительный.... простите меня, добрый человек, ошибочка вышла )))


Вот пример кода, который выполняется при старте приложения и читает данные из файла settings.ini:


procedure Init;
var
  tmpIniFile:TIniFile;
begin
  // инициализация системы лицензирования
  tmpIniFile:=TIniFile.Create(Application.SettingsFile);
  // владелец и ключ регистрации храним в файле настроек
  LicenseOwner := tmpIniFile.ReadString('License','Owner',LICENSE_OWNER);
  RegKey := tmpIniFile.ReadString('License','RegKey','');
  tmpIniFile.free;
  // после проверки лицензии устанавливается значение переменной Licenced;
  CheckLicense;
  // другие штуки
  DBFileVer := GetBaseParam(PAR_BASE_VERSION); // версия файла базы данных
  DBFileName := GetDBFileName(False); // файл базы данных
  if DBFileVer = '' then
  begin
    SetBaseParam(PAR_BASE_VERSION,DEF_BASE_VERSION);
    DBFileVer := GetBaseParam(PAR_BASE_VERSION);
  end;
  if NEED_CREATE_RMT then
  begin
    // инициализация системы прав
    CreateRight;
    CreateMenu;
    CreateToolbar;
  end;
end;

а так выглядит запись данных в этот файл:


// активация лицензии
procedure frmRegistration_btnActivate_OnClick (Sender: TObject; var Cancel: boolean);
var
  tmpIniFile:TIniFile;
begin
  RegKey := frmRegistration.edtLicenseKey.Text;
  LicenseOwner := frmRegistration.edtLicenseOwner.Text;
  CheckLicense;
  if Licensed then
  begin // записать ключ лицензии
    tmpIniFile:=TIniFile.Create( Application.SettingsFile );
    tmpIniFile.WriteString('License','RegKey',RegKey);
    tmpIniFile.WriteString('License','Owner',LicenseOwner);
    tmpIniFile.free;
    ShowMessage(S_.REGISTRATION_DONE.Caption);
    // вызвать обработчик, чтобы перерисовать заголовок основного окна
    UpdateMainFormCaption;
    // кроме того, там может быть различные штуки, которые зависят от регистрации
    frmAbout_OnShow (frmAbout,'');
    // закрыть форму
    frmRegistration.Close;
  end
  else
  begin
    ShowMessage(S_.REGISTRATION_FAIL.Caption);
  end;
end;

Вы в следующий раз уточняйте, о чем речь, чтобы людей не смущать и меня в грех не вводить. Лучше спрашивать такое   в ветке про курсы или в группе VK   

Мой ответ нужно расценивать как вопрос: зачем вам информация о том, как добавляются сведения о ключах и владельце?


А ответ на ваш вопрос такой: эта информация добавляется автоматически, после покупки лицензии. Но что-то мне подсказывает, что вас такой ответ не устраивает.


Я знаю людей, владеющих этой информацией в силу своего высокого профессионализма и любопытности. Но мотивы у них отличаются от ваших. Впрочем, я могу ошибаться и готов принести вам извинения, если вы объясните, зачем вам это нужно?


P.S. Мои курсы не про хакинг, а про разработку приложений.

Купите уже лицуху и не парьтесь )))

722

(8 replies, posted in Talks about all)

pavlenko.vladimir.v wrote:

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


Увы, полигоны на канве - это только полигоны - многоугольники заданного цвета ))) Работа с канвой - это медленная пиксельная графика.


Для игр используется DirectX или OpenGL - это когда полигоны обрабатываются видеокартой и их можно использовать вместе с текстурами для визуализации изображений, 2D и 3D.

723

(8 replies, posted in Talks about all)

Так а для чего полигоны-то? Рисовать на канве в MVDB теоретически можно, но на практике - очень медленно всё это будет работать.

724

(8 replies, posted in Talks about all)

Благодарю!

https://exoticluxurycat.ru/wp-content/uploads/5/f/8/5f847139cd84659ddbb6484ea1a00568.jpeg

Форма окна авторизации называется frmdbCoreLogin.  А что именно делать с формой и шрифтами, написано здесь:

https://delphisources.ru/pages/faq/base … fonts.html