Лекция 1 2. Опции меню-файл: Открыть, Открыть как, Сохранить, Сохранить как, Закрыть

14.10.11

ООП

Else

ООП

Делегаты

Стандартные интерфейсы.NET

Операции is и as

· Операция is проверяет совместим ли объект с заданным типом.

· Результат операции равен true, если объект можно преобразовать к заданному типу, и false в противном случае.

· Операция as выполняет преобразования к заданному типу, а если это невозможно, формирует результат null.

· I Comparable - сравнение объектов

Метод Сompare To()

Используется при сортировке

· I Comparer – сортировка по разным критериям

· I Cloneable – создание копии объекта

· I Enumerable, I Enumerator – для организации перебора в foreach.

· Делегаты – это вид класса, преднозначенный для хранения ссылок на методы

· Можно передавать в качестве параметрв а затем вызвать инкапсулированный в нем методы

Продолжение $3.8

Вид обработчиков событий для некоторых действий.

1.Кнопки, которые отвечают за работу с буфером:

Вырезать(cut):

private::System::Void cut ToolStripMenuItem_Click(System::Object^sender, System::EventArgs^e)

{

this->richTextBox1->Cut();

this->toolStripButtonPaste->Enabled=true;

this->pasteToolStripMenuItem->Enabled=true;

this->pasteToolStripMenuItem1->Enabled=true;

}

Копировать:

private::System::Void copy ToolStripMenuItem_Click(System::Object^sender, System::EventArgs^e)

{

this->rB->Copy();

this->toolStripButtonPaste->Enabled=true;

this->pasteToolStripMenuItem->Enabled=true;

this->pasteToolStripMenuItem1->Enabled=true;

}

Вставить:

private::System::Void past ToolStripMenuItem_Click(System::Object^sender, System::EventArgs^e)

{

this->richTextBox1->Paste();

}

2.Опции Меню-Файл: Открыть, открыть как, Сохранить, Сохранить как, Закрыть.

Весь представленный выше класс находится в файле Form1.h, где объявлен класс classForm1, в который необходимо добавить еще одну переменную:

private: System::String^ MyFileName

Form1(Void) //Присвоение стандартного имени файлу, чтобы заблокировать частично кнопки Меню-Файл.

{

MyFileName = “”;

}

Сохранить:

private::System::Void saveToolStripMenuItem_Click(System::Object^sender, System::EventArgs^e)

{

if (this->MyFileName->Equals(System::String::Empty))

{

this->MyFileName=”log.txt”;

this->saveFileDialog->FileName=this->MyFileName;

if (this->saveFileDialog1->ShowDialog()==System::Windows::Forms::DialogResult::OK)

{

this->richTextBox1->SaveFile(this->saveFileDialog1->FileName);

this->richTextBox1->Modified=false;

this->MyFileName=this->saveFileDialog1->FileName;

}

}

{

this->richTextBox1->SaveFile(this->saveFileDialog1->FileName);

this->richTextBox1->Modified=false;

this->MyFileName=this->saveFileDialog1->FileName;

}

}

Сохранить как:

private::System::Void saveToolStripMenuItem_Click(System::Object^sender, System::EventArgs^e)

{

this->saveFileDialog->FileName=this->MyFileName;

if (this->saveFileDialog1->ShowDialog()==System::Windows::Forms::DialogResult::OK)

{

this->richTextBox1->SaveFile(this->saveFileDialog1->FileName);

this->richTextBox1->Modified=false;

this->MyFileName=this->saveFileDialog1->FileName;

}

}

Открыть:

private:Syste::Void openToolStripMenuItem_Click(System::Object^sender, System::Event^e)

{

if (this->MyFileName==””) {this->MyFileName=”log.txt”;}

this->OpenFileDialog->FileName=this->MyFileName;

if (this->OpenFileDialog->ShowDialog()==System::Windows::Forms::DialogResult::OK)

{

this->TextBox1->LoadFile(this->openFileDialog1->FileName);

this->MyFileName=this->openFileDialog->FileName;

}

}

Создать:

private:Syste::Void newToolStripMenuItem_Click(System::Object^sender, System::Event^e)

{

if(this->richTextBox1->Modified/*==True;*/)

{

if(this->MyFileName==””) { this->MyFileName=”log.txt”;}

this->SaveFileDialog1->FileName=this->MyFileName;

if (this->saveFileDialog1->ShowDialog()==System::Windows::Forms::DialogResult::OK)

{

this->richTextBox1->SaveFile(this->saveFileDialog1->FileName);

this->richTextBox1->Modified=false; //(не необходимо)=============================================

this->MyFileName=this->saveFileDialog1->FileName //запоминаем текущее имя файла (не необходимо)======

}

}

this->richTextBox1->Clear();//Очищение содержимого текстового редактора с помощью метода Clear();===================

}

Отображение текущего времени в строке статуса $3.9

Элемент StripStatus – строка статуса;

Timer; при перемещении таймера на форму образуется переменная timer1, у него есть два свойства: Enabled (присваиваем значение =true) и Interval (указывается в милисекундах, присвоим значение =1000, если значение =0 — таймер отключен). Существуют так же два метода Start(); и Stop();

Таймер:

private:System::Void timer1_Tick(System::Object^sender, System::Event^e)

{this->toolStatusLabel1->Text=System::Convert::ToString(System::DateTime::Now);}

$4 Элементы управления Windows Forms

$4.1 checkBox — независимые переключатели

Text- текст около переключателя;

Cheked – T/F;

ThreeState – 3 состояния T/F;

CheckState – свойство выставления состояний (варианты: Checked|Uncheked|Indeteminate

$4.2 Зависимые кнопки Radiobutton

Могут размещаться на панели GroupBox

$4.3 Ввод данных по маске MaskedTextBox

Свойство Mask:

0 — цифра от нуля до 9ти

9 — цифра или пробел

# - цифра, пробел + -

L — буква

? - буква или пробел

& - символ

С — символ или пробел

А - буква, цифра или пробел

. - положение десятичной точки

, - положение разделителей тысяч

: - разделитель времени

/ - разделитель даты

$ - денежный символ

< - приведение к нижнему регистру

> приведение к верхнему регистру

| - отмена преобразование регистров

\ - начало Escape последовательности

Пример маски:

«+7-***-*** *****» = “#0-000-0000000 “

Ошибка: неполная маска:

MaskFull

private:Syste::Void maskedTextBox1_KeyDown(System::Object^sender, System::Windows::Forms::KeyEventArgs^e)

{

if(e->KeyCode==Keys::Enter)

{

if (!this->maskedTextBox1->MaskFull) {MessageBox::Show(“Данные введены не полностью”, “Ошибка», MessageButton::OK, MessageBoxIcon:Asterisk); return;}

}

}

$4.4 Списки

ListBox|ComboBox|ChekedListBox

Свойство Items – содержимое списков. Элементы списка имеют тип ListItem.

У каждого элемента списка есть свойства

Text - название

Selected — T/F выбран/нет

Count – кол-во элементов списка

SelectedIndex – возвращает индекс выбранного элемента списка (первый элемент имеет индекс 0;

SelectedItem -

Для модификации списков необходимо использовать методы:

Add(); -добавить элемент в конец списка

Insert(); -добавить элемент внутрь списка

Clear() -удалить все элементы списка

Remove() - удалить указанный элемент списка

Элемент управления «Простой список» LiistBox:

ColumnWidth- определяет ширину колонки.

Items - содержит все пункты списка

примеры обращения к пунктам списка:

String^ it=listBox1->Items[i]->ToString(); //В качестве I можн оиспользовать listBox->SelectedIndex, т.о. Вместо абстрактной строки, мы можем оперировать выбранной строкой;

listBox->SelectedIndex

Multicolumn – кол-во столбцов(?)

Элемент управления ComboBox:

DropDownStyle – задает стиль представления выпадающего списка. Варианты:

ñ Simple – работает только поле редактирование, т. е. Выпадающего списка нет.

ñ Dropdown – свернутый выпадающий список.

ñ DropDownList – нельзя редактировать содержимое списка.

Text – возвращает то., что находится в названии выбранного элемента.

Элемент управления ChekedListBox:

checkOnClick – T/F управлет методом выделения объекта. Если False – выделяет на первый клик, отмеччает флажком на второй, если True, отмечает флаэком при первом щелчке, при втором — отменяет.

Состояния флажка:

ñ checked (1)

ñ unchecked (0)

ñ indeterminate (2)

SetItemCheckState(index, value) – устанавливает состояние, кторое будет выбрано на объекте с заданным индексом

GetItemCheckState(index) – возвращает состояние.

$4.5 Компонент календарь «DateTimePicker» и класс DateTime.

Компонент настраивается либо на ввод даты, либо времени. Как мы будем его использовать определяет свойство Format.

Отображаемое значение хранится в свойстве value.Если происходит работа с датами, то можно поставить ограничение MaxDate, MinDate. В качестве формата представления даты мб выбран формат:

ñ long (дд месяц ггг)

ñ short (дд.мм.гг)

ñ Time

ñ Custom — формат, определяемый пользователем. Необходимо настроить CustomFormat.

Значение value хранится в виде DateTimе.

Создание формата пользователя с помощью символов:

d – день месяца (напр. 7)

dd — день месяца, априори двузначные (напр. 07)

ddd – день месяца, день недели (07 пт)

dddd – полное название дня недели (07 пятница)

M – номер месяца (10)

MM – перед однозначным номером месяца добавится 0.

MMM – выдается аббревиатура месяца (окт.)

MMMM - полное название (октябрь)

y – две последние цифры года

yy – при однозначном значении обязательно 2 символа

yyyy – полное (2011)

gg – эра (н.э. / д.н.э.)

h – часы (12часовой формат

hh – два знака обязательно. 12Часовой формат

H — 24 часовой формат

HH -..

m — минуты

mm -

s - секунды

ss -

f – дробная часть секунд (только), когда s – только целая/ 10ая точка

.

fffffff — максимальное кол-во дробной части

t – если 12тичасовой формат, то выдается либо «a”, или «p”

tt – a.m. / p.m

z – часовой пояс (разница между местным и гринвическим временем)

zz – 0 для однозначного числа

zzz – часы, минуты.

: - разделитель времени

/ - разделитель даты

'dddd/MMMM/yyyy'

'HH:mm:ss.fff'

В связанных библиотеках.NET есть раздел глобализация, которые определяет вид интерпритации выходных данных, например:

DateTime dt=DateTime::Now;

String^ date=dt.ToString(“dd/MM/yy HH:mm:s”, System::Globalization::DateTimeFormatInfo::InvariantInfo); - в данном случае выбран инвариантный вариант, т. е.всемирный.

String^ date=dt.ToString(“dd/MM/yy HH:mm:s”, System::Globalization::DateTimeFormatInfo::CurrentInfo); - будут использоваться настройки ОС.

Список свойств (получаем в виде dt ->Date)

Date

Day

DayofWeek

DayofYear

Hour

Minute

Seconds

Milliseconds

Month

Year

TimeOfDay

Список методов:

Add - Сложить две переменные типа DateTime

AddDays – добавить кол-во дней

AddHours – прибавить часы

AddMinutes – прибавить минуты

AddSeconds – добавить секунды

AddMilliseconds

AddMonths

AddYears

ToString

ToUniversalTime

$4.6 Элементы управление для построения наборов страниц (TabControl)

«Закладки»

Св-во:

TabPages – содержит отдельные страницы

SelectedIndex позволяет установить какая вкалдка акивна на данный момент.

TabControl1->SelectedIndex=1;

SelectedTab

tabControl1 → SelectedTab =tabPage2

$4.7Компонент Progress Bar

отображает степень завершенности процесса.

- Min/max задают максимальное, минимальное значение

- step – шаг изменения св-ва value.

- Vaue

- PerformStep()

- Perform(n)

.

Timer

timer1->Enabled =true;

progressBar1->Value=0;

обработчик события OnClick

progressBar1->PerformStep();

timer1->Enabled=false;

progressBar1->Visible=false;

$4.8Стандартное окно диалога. Открытие файла (OpenFileDialog

ShowDialog();

Multiselect – возможность одновременного выбора нескольких файлов;

ShowReadOnly – позволяет отмечать те файлы на диске с доступом только для чтения;

Filter – фильтрация файлов;

Text files (*.txt) |*.txt| All files (*.*) | *.*;

$4.8Стандартное окно диалога. Сохранение файла (SaveFileDialog

overwritepromt = T/F;

Filer;

$5. Управление формами

$5.1 Форма. Класс Form

$5.1.1 Свойства формы.

AutoScaleMode – режим автоматического масштабирования (как будет вести себя форма на другом коммпьютере;

Неизменными могут остаться:

ñ Font — шрифт;

ñ DPI — кол-во точек на дюйм;

ñ Inherit – наследование;

Autoscroll =T/F (При T – если окно не влазит, появляются полосы прокрутки);

BackColor – задаетт цвет фона формы;

BackgroundImge – задает фоновый рисунок;

ChancelButton – T/F, если T – нажатие клавиши Esc приводит к выходу из приложения;

ContextMenuStrip;

ControlBox – позволяет управлять, будут ли в заголовке формы присутствовать кнопки _ [] x;

DoubleBuffered – (T/F) Если T – для отрисовки формы используется дополнительный буффер, если мы вынуждены часто перирисовывать содержимое;

Enabled – если значения T – форма доступна, если ложна, то — нет;

Font – шрифт;

FormBorderStyle – стиль окантовки формы.

Значения мб:

ñ Sizable – возможность изменения размеров формы программы;

Icon – задает пиктограмму.

KeyPreview – (T/F) если значение св-ва T – форма перехватывает любое событие нажатия клавиши;

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

Localisable – св-во связано с настройкой на конкретные страны;

Lockated – св-во позволяет заблокировать форму (T/F), однако элементы будут видимы;

Maximum Size - |

MinimizeBox - | управление кнопками _ []

MaximizeBox - |

Opacity – задает уровень прозрачности формы (от 0 до 1);

Size – задает размер формы;

StartPosition – определяет положение формы при запуске проограммы (по умолчанию, окно появляется;

Text – задает текст, появляющийся в заголовке;

TopMost – определяет будет ли данное окно располагаться поверх всех остальных окон;

UseWaitCursor – (T/F), Если истина, то на то время пока форма занята — появляется курсорр ожидания;

Visible – видима/невидима;

$5.1.2 События формы.

Load – первое событие, которое воозникает при создании формы;

Shown – показ при выводе формы;

Activated – событие возникает, когда мы делаем форму активной;

Paint – перерисовка формы;

FormClosing – событие возникает перед закрытие формы;

FormClosed – закрытие формы

Deactivated – полное закрытие формы

private: System::Void Form1_FormClosing(System::Object^ sender, System::Windows::Forms::FormClosingEventArgs^ e)

{

if (MessageBox::Show("Завершить работу?", "Завершение работы", "MessageBoxButtons::OKCancel", MessageBoxIcon::Question)== System::Windows::Forms::DialogResult::Cancel)

e->Cancel=true;

else

e->Cancel=false;

}

$5.1.2 Методы форм

Сlose()

При закрытий формы, форма не уничтожается.

Hide() - скрытие формы

Dispose() - уничтожение формы

Show() - показать

ShowDialog – показать форму в модальном режиме;

Focus () - передает фокус

Добавим в наш калькулятор две формы:

Форма заставка и форма ввода пароля.

$6.Элементы компьютерной графики

$6.1 графический формат — порядок, согласно которому данные описывающие изображении записываются в файле.

1. Векторный (возможность масштабирования, занимает много места).

2. Растровый (изображение разбивается на точки, строится матрица, мы знаем её координаты и цвет, при сильном масштабировании — резкая потеря качества, данные можно представить компактно).

3. Метафайл (объединение растрового и векторного представления).

$6.1 Пиксели и цвет пикселей

Пиксель - Минимальный элемент изображения. Различают физические и логические пиксели.

Физический пиксель - существует на физическом устройстве, или на каком-либо другом физическом носителе.

Логический пиксель -

Глубина цвета — 2n(глубина), n(кол-во цветов); true color n=24 бита; 16млн.

Тема: Новые концепции программирования

Цель: ознакомить с новыми концепциями программирования, дать им характеристику и провести сравнительный анализ

План:

  1. Общие сведения о новых концепциях
  2. Характеристика объектно-ориентированного программирования;
  3. Характеристика унифицированного языка моделирования (UML);
  4. Специализированные средства разработки программного обеспечения

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: