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 объект.

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

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

Советы

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

Смотрите также

Функции

Объекты

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