ЛАБОРАТОРНАЯ РАБОТА № 1.2

РАЗРАБОТКА и ИСПОЛЬЗОВАНИЕ ActiveX ФОРМ

Цель работы: Разработка компонента ActiveX на любом языке программирования и использование его в Windows Form C#.

ПРИМЕР СОЗДАНИЯ КОМПОНЕНТА ActiveX В СРЕДЕ DELPHI:

Создайте элемент ActiveX, в окне которого выводится движущаяся строка. Программа должна иметь возможность изменять скорость движения.

Разрабатываемая форма ActiveX изображена на рис.1.

Рисунок -1.

Для разработки приложения выполните следующие действия:

1.  Создайте приложение AxtiveX Form. Для этого выполните команду File New | Other и на странице ActiveX Депозитария выбе­рите пиктограмму ActiveX Form. Будет создан новый проект, который сохраните под каким-то именем, например, ActiveMoveX.

2.  Перенесите на форму компоненты, приведенные в таблице 1.

Таблица 1

Компоненты, размещаемые на форме

Компонент

Класс

Описание

Label1

TLabel

Метка «Бегущая строка»

Label2

TLabel

Метка «Интервал движения»

Edit1

TEdit

Окно вывода бегущей строки

Edit2

TEdit

Окно ввода интервала времени

Button1

TButton

Кнопка «Пуск»

Button2

TButton

Кнопка «Стор»

Timer1

TTimer

Таймер, отсчитывающий интервал вывода очередного символа (Страница System палитры компонентов)

3.  Определение глобальных переменных. В начале программного модуля Создайте блок VAR и определите две глобальные переменные: s – бегущая строка, I – номер очередного символа бегущей строки.

uses ComObj, ComServ;

{$R *.DFM}

НЕ нашли? Не то? Что вы ищете?

{ TActiveMoveX }

VAR s: String;

i:Integer;

4.  Для события OnCreate форма запишите следующий программный код:

procedure TActiveMoveX. ActiveFormCreate(Sender: TObject);

begin

s:='Hello World!';

i:=1;

Timer1.Enabled:=False;

Edit1.Text:='';

end;

Данный код задает начальные условия.

5.  Для события OnClick кнопки «Пуск» запишите следующий программный код:

procedure TActiveMoveX. Button1Click(Sender: TObject);

begin

Timer1.Enabled:=False;

Edit1.Text:='';

s:='Hello World!';

i:=1;

Timer1.Interval:=StrToInt(Edit2.Text);

Timer1.Enabled:=True;

end;

Данный программный код запускает таймер

6.  Для события OnTimer таймера запишите следующий программный код:

procedure TActiveMoveX. Timer1Timer(Sender: TObject);

begin

If i<=Length(s) then Edit1.Text:=s[i]+Edit1.Text

else Edit1.Text:=' '+Edit1.Text;

i:=i+1;

end;

Данный программный код выводит на экран очередной символ бегущей строки.

7.  Для события OnClick кнопки «Стор» запишите следующий программный код:

procedure TActiveMoveX. Button2Click(Sender: TObject);

begin

Timer1.Enabled:=False;

end;

Данный программный код останавливает работу таймера

8.  Откомпилируйте разработанное приложение. Project | Build All Projects

9.  Зарегистрируйте созданную форму ActiveX. Run | Register ActiveX Server.

10.  Проверьте работу созданного приложения, вставив его в html-страницу (данный пункт задания выполнять не обязательно, можно перейти сразу в пункту 11). Для этого выполните следующие действия:

10.1.  Запустите Microsoft FrontPage

10.2.  Создайте новую страницу

10.3.  Вставьте разработанную форму: Вставка | Веб компонент. В появившемся диалоговом окне выберите «Дополнительные элементы», «Элемент ActiveX» (см. рис.2.)

Рисунок -2.

10.4.  Нажмите кнопку «Далее». В появившемся диалоговом окне (рис.3.) выберите кнопку «Настройка».

Рисунок -3.

10.5.  В появившемся диалоговом окне выберите созданный вами компонент ActiveX. В данном случае ActiveMoveX Control (см. рис. 4)

Рисунок -4

10.6.  Проверьте работу созданного компонента.

10.7.  Добавьте к созданному компоненту возможность изменения цвета и размера выводимых символов. А также предоставьте пользователю возможность изменять выводимую строку.

11.  Используйте разработанный компонент ActiveX в приложении, написанном на C#. Для этого выполните следующие действия:

11.1.  Создайте в среде C# проект Windows Forms;

11.2.  Добавьте созданный элемент управления ActiveX в панель инструментов, чтобы его можно было использовать также как элементы управления Windows (см. рисунок 5);

Рисунок 5- Добавление элемента управления ActiveX в панель инструментов.

11.3.  В открывшемся диалоговом окне следует выбрать в категории COM-Components элемент управления ActiveMoveX Control (рисунок 6). В итоге на панели инструментов появится новая пиктограмма.

11.4.  Перетащить новую пиктограмму на поле визуального конструктора Windows Forms для создания сборки-оболочки для элемента управления ActiveX/

Рисунок 6 – Выбор элемента управления ActiveMoveX Control

12.  Самостоятельно разработайте компонент ActiveX, выполняющий следующие действия:

Создание элемента ActiveX, в окне которого отображается строка, бегущая изнутри (например, пусть введена строка "АБВГ....ЭЮЯ", тогда последовательность отображения ее символов следующая: "АЯ", "АБЮЯ", "АБВЭЮЯ" и т. д.). Программа должна содержать меню, которое позволяет осуществлять выбор шрифта для отображения текста и вызывать диалоговое окно для ввода пользователем текста отображаемой строки и скорости вывода символов (задержка в миллисекундах).

ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ

Составить приложение ActiveX для шифрования/дешифрирования по следующим методам:

1.  Шифр перестановки «Скитала»

2.  Шифрующих таблиц.

3.  Шифрующих таблиц с ключевым словом.

4.  Шифрующих таблиц. Двойная перестановка.

5.  Магических квадратов

6.  Полибианский квадрат (Только, пожалуйста, не используйте греческий алфавит)

7.  Системы шифрования Цезаря (кому-то повезло!)

8.  Аффинной системы подстановок Цезаря

9.  Системы Цезаря с ключевым словом

10.  Шифрующих таблиц Трисемуса

11.  Биграммного шифра Плейфейра

12.  Шифра Гронсфельда

13.  Двойного квадрата Уитстона

14.  Шифрование методом гаммирования

15.  Программной реализации роторной машины.

ОПИСАНИЕ МЕТОДОВ ШИФРОВАНИЯ

Шифр перестановки «Скитала»

В V веке до нашей эры правители Спарты, наиболее воинственного их греческих государств, имели хорошо отработанную систему секретной военной связи и шифровали свои послания с помощью скитала, первого простейшего криптографического устройства, реализующего метод простой перестановки.

Шифрование выполнялось следующим образом. На стержень цилиндрической формы, который назывался скитала, наматывали спиралью (виток к витку) полоску пергамента и писали на ней вдоль стержня несколько строк текста сообщения. Затем снимали со стержня полоску пергамента с написанным текстом. Буквы на этой полоске оказывались расположенными хаотично. Такой же результат можно получить, если буквы сообщения писать по кольцу не подряд, а через определенное число позиций до тех пор, пока не будет исчерпан весь текст.

Н

А

С

Т

У

П

А

Й

Т

Е

Рис.1.

Сообщение НАСТУПАЙТЕ при размещении его по окруж­ности стержня по три буквы дает шифртекст НУТАПЕСА_ТЙ

Для расшифрования такого шифртекста нужно не только знать правило шифрования, но и обладать ключом в виде стержня определенного диаметра. Зная только вид шифра, но не имея ключа, расшифровать сообщение было непросто. Шифр скитала многократно совершенствовался в последующие времена

Шифрующие таблицы

С начала эпохи Возрождения (конец XIV столетия) начала возрождаться и криптография. Наряду с традиционными примене­ниями криптографии в политике, дипломатии и военном деле по­являются и другие задачи - защита интеллектуальной собствен­ности от преследований инквизиции или заимствований злоумыш­ленников. В разработанных шифрах перестановки того времени применяются шифрующие таблицы, которые в сущности задают правила перестановки букв в сообщении

В качестве ключа в шифрующих таблицах используются'

• размер таблицы;

• слово или фраза, задающие перестановку,

• особенности структуры таблицы.

Одним из самых примитивных табличных шифров пере­становки является простая перестановка, для которой ключом служит размер таблицы. Этот метод шифрования сходен с шиф­ром скитала Например, сообщение

ТЕРМИНАТОР ПРИБЫВАЕТ СЕДЬМОГО В ПОЛНОЧЬ

записывается в таблицу поочередно по столбцам.

Результат за­полнения таблицы из 5 строк и 7 столбцов показан на рис. 2.

Т

Н

П

В

Е

Г

Л

Е

А

Р

А

д

О

Н

Р

Т

И

Е

Ь

В

О

М

О

Б

Т

М

П

Ч

И

Р

Ы

С

О

О

Ь

Рис 2. Заполнение таблицы из 5 строк и 7 столбцов

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8