Вітаю на форумі.
antarey написав:Е задача по переведенню кода із Delphi на C++Builder.
Це виглядає не дуже адекватно. Є крива бібліотека (VCL) під Delphi (мову). Є її використання з мовою C++ (C++ Builder). Вам треба перекласти код на Delphi у C++, але не позбутися кривої бібліотеки, орієнтованої на Delphi. У чому сенс? C++ Builder, до речі, вміє і з Delphi працювати, можете просто додати файли в проєкт.
Можете пояснити, як така задача виникла?
antarey написав:Як правильно створювати та видаляти форми/фрейми ?
Так, як зручно особисто вам.
Якщо задача саме перекласти - то це Create/Release=>new/...Release+delete. Використовувати одразу delete на об'єктах не радять, бо Release чекає на завершення всіх процесів, пов'язаних з дочірніми елементами, а delete видаляє одразу.
Звісно, можна позбутися delete за допомогою розумних вказівників, але тоді буде купа проблем із вказівниками в бібліотечних функціях: наприклад, форми видаляють всі свої елементи при видаленні, розумні вказівники намагатимуться зробити те саме.
І unique_ptr - це досить специфічна ситуація, коли об'єкт належить тільки одному батьківському об'єкту, але при цьому не може бути його елементом, загалом краще shared_ptr використовувати.
antarey написав:- чи потрібно видаляти фрейм, який вже не використовується?
Загалом так, але це може зробити і батьківський фрейм. Конкретно в цьому коді ви видаляєте компонент фрейму, і при цьому він і припиняє використовуватися.