StringGrid Delphi
Свойство Name
Свойство Name StringGrid Delphi содержит собственное имя компонента, которое и позволяет использовать его в программе и, указывая его, ссылаться на все свойства, методы и возможности компонента StringGrid.
При размещении на Форме компонента StringGrid его свойство Name получает значение по умолчанию, которое образуется из имени класса (TStringGrid) с прибавлением порядкового номера компонента с подобным именем. Так, первый компонент StringGrid, размещаемый на Форме, получает порядковый номер 1 и его свойство
Name=StringGrid1, следующий
Name=StringGrid2 и т.д.
Однако, если после того как первый компонент StringGrid окажется на Форме, изменить его свойство Name на какое-нибудь другое, и затем поместить второй StringGrid, его свойство Name получит значение не StringGrid2, а именно StringGrid1.
Таким образом, во-первых, Delphi первым всегда выберет значение по умолчанию. И, во-вторых, всегда получается тавтология - как бы мы не меняли значение свойства Name, всё равно:
AnyName.Name='AnyName';
Имя компонента StringGrid используется в указании свойств, методов, обработчиков событий данной таблицы StringGrid. Если, затратив большое количество времени и труда на написание программы, вам захочется изменить значение свойства Name, Delphi изменит код, сгенерированный автоматически. Всё, написанное вручную, придётся вручную же править.
Поэтому лучше сразу выбирать подходящее имя для компонента StringGrid, с которым удобно работать - короткое и говорящее о предназначении компонента.
И никогда не меняйте значение свойства Name программно. Delphi моментально потеряет управление компонентом, и работа программы нарушится. Единственный безопасный способ изменения свойства Name компонента - через Инспектор Объектов.
Однако существует исключение из этого правила. Это вариант, когда компонент создаётся в программе динамически. В этом случае он создаётся как некая переменная или элемент массива, через которые можно ссылаться и управлять данным компонентом. Однако, иногда делать это удобнее или даже необходимо с помощью свойства Name. Тогда при создании компонента нужно задать и его:
var Grid: TStringGrid;
begin
Grid:=TStringGrid.Create(Self);
Grid.Parent:=Form1;
Grid.Name:='MyDinamicallyGrid';
end;
Теперь работать с компонентом можно как с помощью переменной Grid, так и через имя нового компонента: MyDinamicallyGrid. Если же оператор присвоения имени компоненту опустить, то свойство Name будет равно пустой строке
''
Читайте также:
- Свойство Options StringGrid Delphi