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