Показать сообщение отдельно
  #4  
Старый 11.05.2012, 23:31
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,097
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Да в общем правильно ты сделал.
Только теперь для выполнения любой операции тебе надо обращаться к имеджу на активной вкладке.

Я бы добавил сохранение ссылки на имадж в свойстве Tag вкладки (только для 32 битного компилятора, для 64 битного придется извращаться). Тогда все упрощается. Вот твой подправленный код для создания вкладки и соотв. функция получения ссылки на имадж:
Код:
procedure создать_в_новой_вкладке;
var
  page: TTabSheet;
  f: TImage;
begin
  try
    page := TTabSheet.Create(pagecontrol1);
    page.PageControl := pagecontrol1;
    page.Caption := format('Без имени - '+'%d', [pagecontrol1.PageCount]);
    pagecontrol1.ActivePage := page;
    f := TImage.Create(page);
    f.parent:=Page;
    page.tag := Integer(f);
  except
  on e: exception do ShowMessage(e.Message);
  end;
end;

function TForm1.GetActiveImage : TImage;
begin
  Result := Nil;
  If PageControl1.ActivePage <> Nil Then
    Result := TImage(PageControl1.ActivePage.Tag);
end;

Теперь все операции надо делать со ссылкой, полученной через эту функцию. Например, загрузка файла будет выглядеть теперь так:
Код:
GetActiveImage.Picture.LoadFromFile(AFileName);
Ответить с цитированием