Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Прототипи (форми в VS)



Технології та бібліотеки

· Бібліотека zlib.net.dll

· Середовище розробки Visual Studio 2010

· Мова C#

· Framework 3.5

Технічне завдання. Архіватор повинен вміти:

· стискати файли і каталоги

· збирати образ без стиснення

· шифрувати дані (зі стисканням та без)

· виключати вказані шляхи

· видаляти файли після їх стискання

· розпаковувати образ

Створюємо головну форму програми на якій буде розміщено дві кнопки «Зняти образ» і «Розпаковка»:

namespace std

{

public partial class MainForm: Form

{

public MainForm()

{

InitializeComponent();

}

private void bCompress_Click(object sender, EventArgs e)

{

new CompressForm().ShowDialog();

}

private void bDecompress_Click(object sender, EventArgs e)

{

new DecompressForm().ShowDialog();

}

private void MainForm_Load(object sender, EventArgs e)

{

}

}

}

Рисунок 2.6.1 – Головна форма

Далі створимо форму на якій розмістимо кнопки («Каталог», «Файл», «Зняти Образ») 2 елемента check («Без стиснення» та «Видалити джерело») та поле для редагування тексту для пароля.

namespace std

{

public partial class CompressForm: Form

{

ArchiveProvider compressor = new ArchiveProvider();

public CompressForm()

{

InitializeComponent();

compressor.ProcessMessages += compressor_ProcessMessages;

compressor.ErrorProcessing += ProcessingFileError;

}

void compressor_ProcessMessages(string message)

{

lbLog.Items.Add(message);

}

OperationErrorAction ProcessingFileError(string caption, string message)

{

using (AscActionByError form = new AscActionByError(caption, message))

{

form.ShowDialog();

return form.Result;

}

}

private void button1_Click(object sender, EventArgs e)

{

using (FolderBrowserDialog fbd = new FolderBrowserDialog())

{

if (fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK)

{

label1.Text = fbd.SelectedPath;

}

}

}

private void bCompress_Click(object sender, EventArgs e)

{

using (SaveFileDialog sfd = new SaveFileDialog())

{

if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK)

{

CompressorOption option = new CompressorOption()

{

Password = tbPassword.Text,

WithoutCompress = cbNoCompression.Checked,

RemoveSource = cbRemoveSource.Checked,

Output = sfd.FileName

};

foreach (string line in lbIncludes.Items)

option.IncludePath.Add(line);

foreach (string line in lbExclude.Items)

option.ExcludePath.Add(line);

compressor.Compress(option);

}

}

}

private void bInclude_Click(object sender, EventArgs e)

{

using (FolderBrowserDialog fbd = new FolderBrowserDialog())

{

if (fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK)

lbIncludes.Items.Add(fbd.SelectedPath);

}

}

private void bExcludeFolder_Click(object sender, EventArgs e)

{

using (FolderBrowserDialog fbd = new FolderBrowserDialog())

{

if (fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK)

lbExclude.Items.Add(fbd.SelectedPath);

}

}

private void bIncludeFile_Click(object sender, EventArgs e)

{

using (OpenFileDialog ofd = new OpenFileDialog())

{

if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)

{

lbIncludes.Items.Add(ofd.FileName);

}

}

}

private void bExcludeFile_Click(object sender, EventArgs e)

{

using (OpenFileDialog ofd = new OpenFileDialog())

{

if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)

{

lbExclude.Items.Add(ofd.FileName);

}

}

}

}

}

Рисунок 2.6.2 – Форма зняття образів

Наступним кроком є створення форми для розпакування образів у вказану папку. На формі розміщуємо такі компоненти як: два поля для введення тексту (TextEdit1 і TextEdit2), дві кнопки (Button1 i Button2) та Label1 з назвою Пароль.

namespace std

{

public partial class DecompressForm: Form

{

ArchiveProvider decompressor = new ArchiveProvider();

public DecompressForm()

{

InitializeComponent();

}

private void bArcView_Click(object sender, EventArgs e)

{

using (OpenFileDialog ofd = new OpenFileDialog())

{

if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)

{

tbArchive.Text = ofd.FileName;

}

}

}

private void bDecompress_Click(object sender, EventArgs e)

{

using (FolderBrowserDialog fbd = new FolderBrowserDialog())

{

if (fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK)

{

decompressor.Decompress(tbArchive.Text, fbd.SelectedPath, tbPassword.Text);

}

}

}

private void DecompressForm_Load(object sender, EventArgs e)

{

}

}

}

Рисунок 2.6.3 – Форма для розпаковки образів у вказану папку

І на останок створимо форму на випадок виникнення помилок. Розмістимо на ній 4 кнопки (Button1, Button2, Button3, Button4) «Пропустити все», «Пропустити», «Перерваги», «Повторити». Розмістимо TextBox для виведення помилок.

namespace std

{

public partial class AscActionByError: Form

{

public OperationErrorAction Result = 0;

public AscActionByError(string caption, string text)

{

InitializeComponent();

lText.Text = caption;

tbMsg.Text = text;

}

private void button1_Click(object sender, EventArgs e)

{

Result = OperationErrorAction.Abort;

Close();

}

private void button2_Click(object sender, EventArgs e)

{

Result = OperationErrorAction.Ignore;

Close();

}

private void button3_Click(object sender, EventArgs e)

{

Result = OperationErrorAction.Replay;

Close();

}

private void bIgnoreAll_Click(object sender, EventArgs e)

{

Result = OperationErrorAction.IgnoreAll;

Close();

}

}

}

Рисунок 2.6.4 – Форма звіту про помилки





Дата публикования: 2015-06-12; Прочитано: 4931 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.012 с)...