Когда TForm создается в Builder (или Delphi), код добавляется в main
для создания этих форм при запуске приложения:
Application->CreateForm( __classid( TxForm), &xForm );
это упрощает задачу, но так ли это? разумно, когда в приложении 10, 20, 50, 100 форм? Я предполагаю, что это может захватить все виды памяти и системные дескрипторы. Форма всегда может быть создана на лету, когда это необходимо, удалив ее с помощью диалогового окна Project-> Options-> Forms и:
std::auto_ptr< TxForm > myForm( new TxForm( this ));
myForm->ShowModal();
Итак, вопрос в том, что лучше, позволить C ++ Builder делать это по-своему, >>> А array ([[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15]]) ...
Предположим, я создаю 2d-массив вроде этого:
>>> A=np.arange(16).reshape((4,4))
>>> A
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15]])
и хочу иметь возможность выбрать окно 3x3 вокруг любого заданного элемента, чтобы окно обтекало границы, как мне это сделать? Я знаю, что могу сделать это, если границы окна не перекрывают границы исходного массива:
>>> A[1:4,0:3]
array([[ 4, 5, 6],
[ 8, 9, 10],
[12, 13, 14]])
, но если я использую выражение вроде A [i-1: i + 2, j-1: j + 2]
он возвращает пустой массив только для i = 0, j = 0, например.