Добавление изображения в TTabItem в Firemonkey

У меня есть TTabControl с одной вкладкой, которая отображает изображение на вкладке, когда поле на вкладке имеет содержимое. Я назначил ImageList для TTabControl. Когда я добавляю дополнительные элементы TTabItem в TTabControl, я не могу назначить ImageIndex позже в коде. Вот как я добавляю новую вкладку:

procedure TfrmAddEditItem.LoadCustomFields;
var
  NewTab: TTabItem;
begin
...
  NewTab := TTabItem.Create(tabPictures);
  NewTab.Name := 'tab2';
  NewTab.Text := FieldByName('FieldName').AsString;
  NewTab.Visible := True;
  NewTab.Enabled := True;
  NewTab.Tag := tabPictures.TabCount + 1;
  NewTab.Parent := tabPictures;
...
end;

Но в другой функции в форме, когда я пытаюсь установить изображение на вкладке, я получаю исключение нарушения доступа:

procedure TfrmAddEditItem.LoadDataFields;
var
  FormFieldName: string;
  DBFieldName: string;
begin
...
  FormFieldName := 'tab' + FieldByName('FieldID').AsString;
  DBFieldName := 'Field' + FieldByName('FieldID').AsString;
  Tab := TTabItem(Self.FindComponent(FormFieldName));
  if FieldByName(DBFieldName).IsNull then
    Tab.ImageIndex := -1
  else
    Tab.ImageIndex := 0;
...
end;

Как я могу программно установить значение ImageIndex для TTabItem, добавленного в код? (Обратите внимание, что есть и другие события, в которых я также хочу настроить изображение на основе значения в поле базы данных.)

0 ответов

Другие вопросы по тегам