exponenta event banner

pasteTo

Вставка объектов в буфер обмена в указанный объект-контейнер

Описание

пример

pasteTo(clipboard,parent) вставляет содержимое буфера обмена в указанный родительский элемент. Чтобы скопировать объекты в буфер обмена, используйте copy функция.

Примеры

свернуть все

Состояние группы A и скопировать его содержимое в диаграмму ch. При группировании состояния, поля или графической функции можно копировать и вставлять все объекты, содержащиеся в сгруппированном объекте, а также все связи между этими объектами. Этот метод является простейшим способом программного копирования и вставки объектов. Если состояние не сгруппировано, копирование состояния не копирует его содержимое.

Stateflow chart with a hierarchy of states. The outer state is called A. It contains two inner states called A1 and A2.

  1. Найти Stateflow.State объект с именем A в диаграмме ch.

    sA = find(ch,'-isa','Stateflow.State','Name','A');
  2. Состояние группы A и его содержимое путем установки IsGrouped свойство для sA кому true. Сохраните предыдущий параметр этого свойства, чтобы можно было вернуться к нему позже.

    prevGrouping = sA.IsGrouped;
    sA.IsGrouped = true;
  3. Изменение имени состояния на 'Copy_of_A'. Сохраните предыдущее имя, чтобы вернуться к нему позже.

    prevName = sA.Name;
    newName = ['Copy_of_' prevName];
    sA.Name = newName;
  4. Доступ к объекту буфера обмена.

    cb = sfclipboard;
  5. Скопируйте сгруппированное состояние в буфер обмена.

    copy(cb,sA);
  6. Восстановите исходные параметры свойств состояния.

    sA.IsGrouped = prevGrouping;
    sA.Name = prevName;
  7. Вставка копии объектов из буфера обмена в диаграмму.

    pasteTo(cb,ch);
  8. Настройте свойства нового состояния.

    sNew = find(ch,'-isa','Stateflow.State','Name',newName);
    sNew.Position = sA.Position + [400 0 0 0];
    sNew.IsGrouped = prevGrouping;

    Chart showing result of pasting a copy of state A and its contents.

Копировать состояния A1 и A2, наряду с переходом между ними, в новое состояние в диаграмме ch. Чтобы сохранить переходные соединения и связи оболочки между объектами, скопируйте все подключенные объекты одновременно.

Stateflow chart with a hierarchy of states. The outer state is called A. It contains two inner states called A1 and A2.

  1. Найти Stateflow.State объект с именем A в диаграмме ch.

    sA = find(ch,'-isa','Stateflow.State','Name','A');
  2. Добавить новое состояние с именем B. Включение вставки других объектов внутри B, преобразовать новое состояние в вложенную диаграмму.

    sB = Stateflow.State(ch);
    sB.Name = 'B';
    sB.Position = sA.Position + [400 0 0 0];
    sB.IsSubchart = true;
  3. Создать массив с именем objArray который содержит состояния и переходы в состоянии A. Используйте функцию setdiff для удаления состояния A из массива объектов для копирования.

    objArrayS = find(sA,'-isa','Stateflow.State');
    objArrayS = setdiff(objArrayS,sA);
    objArrayT = find(sA,'-isa','Stateflow.Transition');
    objArray = [objArrayS objArrayT];
  4. Доступ к объекту буфера обмена.

    cb = sfclipboard;
  5. Копирование объектов в objArray и вставить их в вложенный рисунок B.

    copy(cb,objArray);
    pasteTo(cb,sB);
  6. Вернуться B в состояние.

    sB.IsSubchart = false;
    sB.IsGrouped = false;
  7. Изменение положения состояний и переходов в B.

    newStates = find(sB,'-isa','Stateflow.State');
    newStates = setdiff(newStates,sB);
    newTransitions = find(sB,'-isa','Stateflow.Transition');
    newOClocks = get(newTransitions,{'SourceOClock','DestinationOClock'});
    for i = 1:numel(newStates)
    newStates(i).Position = newStates(i).Position + [25 35 0 0];
    end
    set(newTransitions,{'SourceOClock','DestinationOClock'},newOClocks);

    Chart showing result of copying contents of state A and pasting them into state B.

Входные аргументы

свернуть все

Буфер обмена, указанный как Stateflow.Clipboard объект.

Родительский элемент для скопированных объектов, указанный как объект API Stateflow ® одного из следующих типов:

Если все объекты в буфере обмена являются графическими (состояния, поля, функции, аннотации, переходы или соединения), этот объект должен быть диаграммой или вложенной диаграммой.

Совет

При вставке графических объектов новым родителем должна быть диаграмма или вложенная диаграмма. Чтобы преобразовать состояние, поле или графическую функцию в вложенную диаграмму, задайте ее IsSubchart свойство для true. После вставки можно восстановить родительский элемент, установив его IsSubchart и IsGrouped свойства для false.

См. также

Функции

Объекты

Представлен до R2006a