Александр Климов - Программирование КПК и смартфонов на .NET Compact Framework

Тут можно читать онлайн Александр Климов - Программирование КПК и смартфонов на .NET Compact Framework - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Питер, год 2007. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Программирование КПК и смартфонов на .NET Compact Framework
  • Автор:
  • Жанр:
  • Издательство:
    Питер
  • Год:
    2007
  • Город:
    Санкт-Петербург
  • ISBN:
    978-5-91180-270-7
  • Рейтинг:
    4.88/5. Голосов: 81
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

Александр Климов - Программирование КПК и смартфонов на .NET Compact Framework краткое содержание

Программирование КПК и смартфонов на .NET Compact Framework - описание и краткое содержание, автор Александр Климов, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Мобильные устройства все активнее вторгаются в нашу жизнь. Карманные компьютеры и смартфоны давно утратили статус дорогих игрушек и перекочевали в разряд необходимых устройств. Значит, для них необходимо создавать программное обеспечение. Так почему вы должны оставаться в стороне?

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

Книга предназначена для начинающих программистов.

Программирование КПК и смартфонов на .NET Compact Framework - читать онлайн бесплатно полную версию (весь текст целиком)

Программирование КПК и смартфонов на .NET Compact Framework - читать книгу онлайн бесплатно, автор Александр Климов
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

// Если файл существует

string dest = path + Path.GetFileName(clipboardFileName);

if (File.Exists(dest)) {

if (MessageBox.Show("Файл уже существует, перезаписать?", this.Text,

MessageBoxButtons.YesNo, MessageBoxIcon.Question,

MessageBoxDefaultButton.Button2) == DialogResult.Yes)

File.Delete(dest);

else return;

}

// Перемещаем или копируем

string s = path.Substring(0, path.Length - 1);

switch(clipboardAction) {

case ClipboardAction.Cut:

File.Move(clipboardFileName, dest);

break;

case ClipboardAction.Copy:

File.Copy(clipboardFileName, dest, false);

break;

}

clipboardAction = ClipboardAction.None;

clipboardFileName = string.Empty;

fillList();

}

Перед тем как вставить файл в другую папку, нужно удостовериться, что в ней нет файла с таким именем. Если же такой файл существует, то надо предупредить пользователя и узнать, что он хочет сделать. Код для команды Вставить ярлык приведен в листинге 7.15.

Листинг 7.15

private void pasteShortcutMenuItem_Click(object sender, System.EventArgs e) {

int i = 2;

string s = string.Empty;

string dest;

while(true) {

dest = path + "Shortcut" + s + " to " +

Path.GetFileName(Path.GetFileNameWithoutExtension(clipboardFileName) +

".lnk");

if (!File.Exists(dest)) break;

s = " (" + i.ToString() + ")";

i++;

}

StreamWriter sw = new StreamWriter(dest);

s = clipboardFileName;

if(s.IndexOf(" ") > 0)

s = "\"" + s + "\"";

s = s. Length.ToString() + "#" + s;

sw.WriteLine(s);

sw.Close();

fillList();

}

В этом коде создается уникальное имя ярлыка, которое затем записывается в виде файла с добавлением. К имени ярлыка добавляется расширение .LNK .

Код для команды Переименовать приведен в листинге 7.16.

Листинг 7.16

private void renameMenuItem_Click(object sender, System.EventArgs e) {

Cursor.Current = Cursors.WaitCursor;

istViewItem lvi = listView.Items[listView.SelectedIndices[0]];

bool isFolder = lvi.ImageIndex = 0;

string s;

if (isFolder)

s = "папку";

else s = "файл";

NameForm nameForm =

new NameForm(this, "Переименовать " + s, lvi.Text,

new SetNameDelegate(SetRename));

if (nameForm.ShowDialog() = DialogResult.OK) fillList();

listView.Focus();

}

Сначала обрабатывается текущий выделенный элемент. Если пользователь выделил папку, то для формы nameFormзадается соответствующий заголовок Переименовать папку . Также из этой формы передается в основную форму новое имя папки или файла с помощью метода Set Rename, как это показано в листинге 7.17.

Листинг 7.17

///



/// Метод для переименования папки или файла

///

/// Имя папки или файла

public void SetRename(string name) {

ListViewItem lvi = listView.Items[listView.SelectedIndices[0]];

bool isFolder = lvi.ImageIndex == 0;

string itemName = path + lvi.Text;

string destName =

Path.GetDirectoryName(itemName) +

Path.DirectorySeparatorChar.ToString() + name;

if (isFolder)

Directory.Move(itemName, destName);

else

File.Move(itemName, destName);

}

После того как будет получена информация о выделенном элементе, он переименовывается. Для реализации команды Удалить используется код, приведенный в листинге 7.18.

Листинг 7.18

private void deleteMenuItem_Click(object sender,

System.EventArgs e) {

ListViewItem lvi = listView.Items[listView.SelectedIndices[0]];

bool isFolder = lvi.ImageIndex == 0;

string s = "Are you sure you want to delete " + lvi.Text;

if (isFolder)

s += " and all its content";

s += "?";

if (MessageBox.Show(s, this.Text, MessageBoxButtons.YesNo,

MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) ==

DialogResult.Yes) {

if (isFolder)

Directory.Delete(path + lvi.Text, true);

else

File.Delete(path + lvi.Text);

fillList();

}

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

Листинг 7.19

private void newFolderMenuItem_Click(object sender, System.EventArgs e) {

Cursor.Current = Cursors.WaitCursor;

ListViewItem lvi = listView.Items[listView.SelectedIndices[0]];

NameForm nameForm = new NameForm(this, "Новая папка", "",

new SetNameDelegate(SetNewName));

if (nameForm.ShowDialog() == DialogResult.OK) fillList();

listView.Focus();

}

В результате действия этой функции отображается форма NameFormс заголовком Новая папка . Эта форма также передает информацию в главную форму при помощи метода SetNewName, который приведен в листинге 7.20.

Листинг 7.20

///



/// Устанавливает новое имя для папки

///

/// Имя для папки

public void SetNewName(string name) {

Directory.CreateDirectory(path + name);

}

Метод создает папку с заданным именем. Как видно, код его чрезвычайно прост.

Код для выполнения команды Свойства приведен в листинге 7.21.

Листинг 7.21

private void propertiesMenuItem_Click(object sender, System.EventArgs e) {

Cursor.Current = Cursors.WaitCursor;

ListViewItem lvi = listView.Items[listView.SelectedIndices[0]];

FileInfo fi = new FileInfo(path + lvi.Text);

PropertiesForm propertiesForm =

new PropertiesForm(this, fi, new SetNameDelegate(SetRename),

new SetAttributesDelegate(SetAttributes));

if (propertiesForm.ShowDialog() == DialogResult.OK) fillList();

listView.Focus();

}

Этот код вызывает форму PropertiesForm , которая отображает атрибуты выбранного файла или папки. Также в этой форме пользователь может изменять атрибуты файла при помощи метода SetAttributes, код которого приведен в листинге 7.22.

Листинг 7.22

public void SetAttributes(FileAttributes fileAttributes) {

ListViewItem lvi = listView.Items[listView.SelectedIndices[0]];

bool isFolder = lvi.ImageIndex = 0;

if (isFolder) {

DirectoryInfo di = new DirectoryInfo(path + lvi.Text);

di.Attributes = fileAttributes;

} else {

FileInfo fi = new FileInfo(path + lvi.Text);

fi.Attributes = fileAttributes;

}

}

Для создания градиентной заливки соответствующего элемента интерфейса применяется метод, код которого приведен в листинге 7.23.

Листинг 7.23

public static void SetGradient(System.Windows.Forms.ListView listView) {

// Новый вариант

// Для .NET Compact Framework 2.0

SendMessage(listView.Handle, LVM_SETEXTENDEDLISTVIEWSTYLE,

LVS_EX_GRADIENT);

listView.Refresh();

}

Итак, основные трудности реализации программы рассмотрены. Кроме того, в примере присутствуют вызовы функций Windows API для работы с табличным списком ListView. Эти примеры рассматривались в главе 4, поэтому не стоит повторять их разбор. На самом деле эту программу можно улучшать до бесконечности, добавляя новые функциональные возможности. Надеюсь, у вас это получится. Буду рад, если вы пришлете свои варианты примеров, которые, на ваш взгляд, украсят программу.

Диспетчер задач

Но мы с вами не расстаемся с программами, написанными Кристианом Форсбергом. На его сайте можно найти еще одну полезную программу, необходимую как разработчику, так и пользователю. Это Диспетчер задач (Task Manager). Программа подобного рода тоже отсутствует в стандартной поставке Windows Mobile. А ведь эта программа очень полезна в работе. Владелец смартфона под управлением системы Windows Mobile может узнать много нового о своей системе после запуска этой утилиты. Диспетчер задач покажет все программы, которые размещаются в памяти смартфона, отбирая системные ресурсы. Диспетчер задач также позволяет удалять из памяти ненужные программы и процессы. Не случайно, многие производители сами снабжают свои устройства программами подобного типа. Если вам не повезло и у вас нет такой программы, то вы можете сами написать Диспетчер задач.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Александр Климов читать все книги автора по порядку

Александр Климов - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Программирование КПК и смартфонов на .NET Compact Framework отзывы


Отзывы читателей о книге Программирование КПК и смартфонов на .NET Compact Framework, автор: Александр Климов. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x