Тверской государственный университет
Опубликован: 13.09.2006 | Доступ: свободный | Студентов: 3491 / 369 | Оценка: 4.65 / 4.29 | Длительность: 30:37:00
Специальности: Программист, Менеджер
Лекция 14:

Проектирование интерфейса. Объекты диалоговых окон

Метод Move (Сдвинуть)

Результат вызова этого метода - сдвиг диалогового окна, одного элемента управления или одновременный сдвиг всех элементов управления коллекции Controls диалогового окна.

Для диалогового окна или отдельного элемента вызов метода имеет вид:

объект. Move ([Left [,  Top [,  Width [,  Height [,  Layout]]]]])

а для коллекции Controls:

объект. Move (X,  Y)

Здесь объект - имя сдвигаемого объекта или коллекции, объекты которой сдвигаются. Все параметры в скобках в первом варианте вызова необязательны. Параметры Left и Top задают координаты верхнего левого угла объекта в точках, а Width и Height - ширину и высоту объекта в точках (все четыре имеют тип Single ). Булев параметр Layout определяет, будет ли для объекта-родителя инициировано событие Layout. Во втором варианте параметры X и Y обязательны, они задают смещение всех объектов коллекции по горизонтали и вертикали (отрицательные значения - сдвиг влево и вверх, положительные - вправо и вниз).

Метод Move можно использовать как для сдвига объекта, так и для изменения его размеров. Например, чтобы при двойном щелчке изображения Image1, имеющего координату верхней границы 18 и высоту 70, поднять его верхнюю границу и увеличить высоту на 10 точек, можно использовать процедуру.

Private Sub Image1_DblClick (ByVal Cancel As MSForms. ReturnBoolean) 
Me. Image1. Move Top:=8,  Height:=80
End Sub

Метод Paste (Вставить)

Вставляет содержимое буфера обмена в объект. Вызов метода имеет вид:

объект. Paste

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

Реализация операций Cut, Copy, Paste в диалоговых окнах

При работе с текстами трудно обойтись без этих, ставших привычными операций. Покажем на примере, как можно реализовать их в диалоговых окнах. Рассмотрим диалоговое окно, содержащее три поля ввода TextBox1, TextBox2, TextBox3 и три командные кнопки CommandButton1, CommandButton2 и CommandButton3 со стандартными изображениями Cut, Copy, Paste: Вот как выглядит это диалоговое окно в момент открытия:

Окно "Удалить,  Копировать,  Вставить" в момент открытия

Рис. 13. 12. Окно "Удалить, Копировать, Вставить" в момент открытия

Наша цель состоит в том, чтобы кнопки работали "стандартным" образом, позволяя, копировать выделенные тексты в буфер из любого текстового окна, удалять выделенные тексты, помещая их в буфер, и, наконец, приклеивать содержимое буфера в точку вставки текстового окна. Методами Cut, Copy, Paste текстовые окна обладают, и единственная проблема состоит в том, что, когда работатет обработчик события Click соответствующей командной кнопки, ему каким-то образом необходимо знать, к какому же полю ввода применить соответствующую операцию. Для этой цели мы приспособили события Exit текстовых окон. При выходе из текстового окна обработчик события Exit запоминает его имя в глобальной переменной. Поэтому, если после выхода будет нажата одна из командных кнопок - Cut, Copy или Paste, ее обработчик по имени элемента управления сумеет понять, к какому полю ввода применить операцию. Этих объяснений, видимо, достаточно, чтобы разобраться в программном коде, решающем поставленную задачу:

Option Explicit
Private GlobalName As String

Private Sub CommandButton1_Click () 
	Controls (GlobalName). Cut
	
End Sub

Private Sub CommandButton2_Click () 
	Controls (GlobalName). Copy
End Sub

Private Sub CommandButton3_Click () 
	Controls (GlobalName). Paste
End Sub

Private Sub TextBox1_Exit (ByVal Cancel As MSForms. ReturnBoolean) 
	GlobalName = "TextBox1"
	Cancel = False
End Sub

Private Sub TextBox2_Exit (ByVal Cancel As MSForms. ReturnBoolean) 
	GlobalName = "TextBox2"
	Cancel = False
End Sub

Private Sub TextBox3_Exit (ByVal Cancel As MSForms. ReturnBoolean) 
	GlobalName = "TextBox3"
	Cancel = False
End Sub

Private Sub UserForm_Initialize () 
	TextBox1. Text = "Это мой текст"
	TextBox2. Text = "Это ее текст"
	TextBox3. Text = "Это его текст"

End Sub
13.2.

В заключение приведем диалоговое окно, после того, как нажимались кнопки, текст копировался, удалялся, вставлялся.


Рис. 13.13.

Метод RedoAction (Повторить действие)

Применяется к диалоговому окну, рамке и странице для того, чтобы восстановить результат последнего действия, отмененного посредством Undo. Вызов метода имеет вид:

BooleanVar = объект. RedoAction

где объект - это объект, для которого требуется повторить последнее отмененное действие. При успешном вызове метод присвоит булевой переменной BooleanVar значение True, а при невозможности выполниться - False.

Возможность применения метода RedoAction зависит от значения свойства CanRedo объекта, вызывающего метод. Если CanRedo равно False, метод неприменим. Пример использования метода RedoAction приведен ниже в описании метода Undo.

Метод Remove (Удалить)

Позволяет удалить элемент коллекций Controls, Pages и Tabs или элемент управления из диалогового окна, страницы или формы. Удаляться могут лишь объекты, добавленные динамически в процессе работы программы. Попытка удалить объект, созданный на этапе проектирования диалогового окна, приведет к ошибке. Вызов метода имеет вид:

объект. Remove (collectionindex)

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

Метод RemoveItem (Удалить элемент)

С помощью этого метода можно удалять элементы из списков и комбинированных списков. В списках с несколькими столбцами метод RemoveItem удаляет всю строку элементов. Его вызов имеет вид:

BooleanVar = объект. RemoveItem (index)

где объект - идентифицирует объект (список) из которого удаляется элемент, а index - указывает номер удаляемой строки (первая строка в списке имеет номер 0 ). В переменной BooleanVar после выполнения удаления возвращается False. Поэтому чаще при вызове используется только правая часть присвоения. Например, для удаления из списка ListBox1 выбранного в данный момент элемента можно использовать вызов:

ListBox1. RemoveItem  (ListBox1. ListIndex)

Метод RemoveItem не удаляет строки из списков, данные в которых связанны с объектом приложения (т. е. из списков с установленным свойством RowSource ).

Метод Repaint (Перерисовать)

Этот метод предназначен для восстановления модифицированных изображений диалоговых окон, рамок и страниц. Поскольку система сама перерисовывает изменные элементы управления, использовать метод Repaint следует лишь тогда, когда пользователь немедленно должен увидеть результаты модификации, не дожидаясь, пока это сделает система. Вызов метода имеет вид:

Boolean = объект. Repaint

где объект - идентифицирует восстанавливаемый объект.

полина есенкова
полина есенкова
Дмитрий Вологжин
Дмитрий Вологжин
Добрый день, прошел тесты с 1 по 9, 10 не сдал, стал читать лекцию и всё пройденные тесты с 1 по 9 сбросились, когда захотел пересдать 10 тест.