ボタンが配列内にある場合、それはボタンを配列内に配置しているためです。ボタンには配列に関する固有の知識はなく、プログラム内の他のことも何もしません。配列内のボタンを見つけるには、次のように検索します。
function GetButtonArrayIndex(const ButtonArray: array of TButton; Button: TButton): Integer;
begin
for Result := 0 to High(ButtonArray) do
if ButtonArray[Result] = Button then
Exit;
Result := -1;
end;
別の方法は、配列を直接操作することをやめ、ボタンの配列インデックスをそのTag
プロパティに格納することです。
すでに何か他のものを使用Tag
している場合、またはその名前がプログラムでの特定の目的を示していないことが気に入らない場合は、代わりにTDictionary<TButton, Integer>
、配列を検索せずにボタンを配列インデックスにマップするために使用できます。与えられたボタンからインデックスを上げます。また、を使用するTDictionary
と、配列インデックスをスキップして、ボタンに関連する情報を保持するデータ構造など、配列インデックスが指すはずのその他のボタンにボタンを直接マップできる場合があります。 。