Игра "Блок Шлёп" для HTC HD2 на Windows Mobile

Игра для коммуникаторов HTC с разрешением экрана 480x800. Создавалась специализированно для HTC HD2, тестировалась так-же на нём. Создана по причине невозможности найти аналог с приемлемым управлением пальцами (без стилуса).
    По своей сути эта игра похожа на игру в разноцветные шарики, которая была с Windows на предыдущих КПК и смартфонах в комплекте. Основное отличие заключается в том, что взамен исчезнувшей группы блоков (в оригинале шариков) сверху игровое пространство заполняется новыми разноцветными блоками. Также, отличается система подсчёта очков, итоговый счёт зависит не только от того сколько вы заработали очков, но и от того за какое время.

Подробнее

Примеры изменения документов Word из C#

    В последнее время, довольно часто приходится работать с документами Word из C#. Должен сказать что это неплохой механизм для формирования несложных отчётов. Получается довольно удобно — поскольку Word часто стоит на большинстве пользовательских компьютеров и отпадает необходимость установки на клиентский компьютер дополнительных компонент, вроде Crystal Report (они хоть и хороши, но когда надо что-то совсем простенькое то возможно лучше и без них).
    Дополнительно хочется сказать о том, что если по какой либо причине на клиентской машине отсутствуют необходимые компоненты программы Word, то это остаётся практически незаметным, поскольку при первом же обращении они сами устанавливаются (что меня очень приятно удивило, но это касаемо того способа обращения к документам Word — который описан ниже).

    Ниже приведены два примера работы с документом Word. Первый иллюстрирует замену текста в документе — удобно использовать при автозаполнении договоров и подстановки нужных значений. Второй иллюстрирует заполнение таблиц — удобно использовать при создании несложных отчётов.

Подробнее

Получение фотографии с камеры КПК C#

Недавно задумался над небольшой задачей — задействовать фотокамеру в своём приложении и получить с неё фотографии. Как оказалось, это довольно просто делается.
Для этого просто необходимо добавить в проект библиотеку Microsoft.WindowsMobile.Forms.
Библиотека находится в Windows Mobile SDK — скачать его можно на сайте Microsoft.

Итак, кусочек кода реализующий фотографирование:

CameraCaptureDialog cameraCaptureDialog = new CameraCaptureDialog();
  cameraCaptureDialog.Owner = this;
  cameraCaptureDialog.Title = "Фотография";
  cameraCaptureDialog.Mode = CameraCaptureMode.Still;
  if (cameraCaptureDialog.ShowDialog() == DialogResult.OK &&
  cameraCaptureDialog.FileName.Length > 0)
  {
     pictureBox1.Image = new Bitmap(cameraCaptureDialog.FileName);
  }
Подробнее

Работа с G - Sensor (акселерометром) на HTC C#

Недавно озадачился (в связи с приобретением девайса HTC HD2) а как же в нём, взять с акселерометра данные? И вот результат трудов, маленькая библиотека для доступа к G-Сенсору в HTC (теоретически должна подходить для всех HTC с акселерометром). Разумеется всё это с исходным кодом, используйте на ваше удовольствие в своих разработках.

Подробнее

Заполнение ComboBox из DataSet C#

Собственно в чём суть дела, нет ничего проще заполнения ComboBox-а из DataSet-а.
Делается это вот так:

SqlConnection connRC = new SqlConnection(MainParams.ConStr);
string command = "SELECT     Kod, Nam FROM Produkt ORDER BY Nam";
SqlDataAdapter da = new SqlDataAdapter(command, connRC);

DataSet ds = new DataSet();
connRC.Open();
da.Fill(ds);
connRC.Close();

comboBox1.DataSource = ds.Tables[0];
comboBox1.DisplayMember = "Nam";
comboBox1.ValueMember = "Kod";


Но работает зараза при больших выборках — адски медленно!

Подробнее

DataTable , Фильтры и выбор количества записей.

Эта публикация из цикла о том, как делать не надо. А делать надо так: сначала читать MSDN затем творить, а не наоборот. И в результате проблема: «А чего это он мне 56 записей показывает? Ведь я фильтр наложил и должна быть ровно 1 запись!».

Так вот — если наложили фильтр на DataTable, то вот так вот делать нельзя:

DataTable table = new DataTable();
//Здесь - заполняем нашу таблицу чем нибудь...
table.DefaultView.RowFilter = "[поле_таблицы]=значение"; 
//Если значение символьное - то в одинарных ковычках.
int count = table.Rows.Count; 
//Узнаём сколько строк после фильтра неполучится - выдаст общее количество!
string value = table.Rows[0]["поле_таблицы"].ToString();
//Получаем значение ячейки из первой строки (тоже без фильтра сделает).
Подробнее

Чтение данных из таблиц Excel C#

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

Итак приступим:

Первым делом добавляем в наш проект (Add References...)
Microsoft.Office.Interop.Excel

Подробнее

Drag And Drop и Scroll в TreeView C#

Не так давно пришлось делать DragAndDrop для TreeView и с удивлением обнаружил что на .NET не работает сама собой прокрутка (никак не работает, как выяснилось Microsoft признаёт что есть такая проблема, и предлагают её решать способом описанным ниже).

Итак сам способ.

Вопервых импортируем функцию из user32 — SendMessage
Для этого разумеется не забываем включить в проект (using System.Runtime.InteropServices;)

[DllImport("user32.dll")]
public static extern int SendMessage(
       int hWnd,      // handle to destination window
       uint Msg,       // message
       long wParam,  // first message parameter
       long lParam   // second message parameter
       );
Подробнее

Передача параметров между формами в C#

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

Способ №1
Передача параметров, используя связь между формами. (этот метод назвал я так сам — может есть и научное название).

Подробнее

Делаем программно DataGridViewComboBoxCell C#

В этой публикации я приведу пример программного добавления DataGridViewComboBoxCell.
Как программно заполнить DataGridView рассматривалось здесь.

Операцию по превращению выбранной ячейки DataGridView мы проделываем с существующей ячейкой, поэтому прежде нам необходимо будет создать эту ячейку при помощи предыдущей статьи, в нашем случае будем менять ячейки в колонке с индексом 1 и строке с индексом 1.

Превратить можно не любые ячейки такой метод работает 100% с текстовыми полями. Можно и не превращать а задать сразу. Но я исхожу в данном случае из того что нам не везде нужны ComboBox-ы и следовательно может возникнуть такая необходимость.

Подробнее