nprogram’s blog

気ままに、プログラミングのトピックについて書いていきます

WPFで登録と削除が可能なリストを作成します

はじめに ObservableCollectionを使用して、登録と削除が可能なリストを持つアプリを作成します。 アプリの見た目 アプリには、登録、削除、全削除ボタンがあります。 名前と連絡先に文字列を入れて登録ボタンを押すと、データが登録されます。 リストの項目…

WPFでGridコントロール

Gridコントロール Gridコントロールを使えば、コントロールの配置を簡単に決めることできます。 3行、3列のGridを作成する場合は以下のように指定します。

ObservableCollectionを使用した簡単なバインディング

ObservableCollectionを使用すれば、簡単にバインディングを実現できます。 以下のサイトを参考にさせていただきました。 www.youtube.com 実行結果 コード [Palyer.cs] namespace WpfApp3 { public class Player { public int Id { get; set; } public stri…

WPF コレクションのデータバインディングを学習します

以下のページを参考にして、WPFのコレクションのデータバインディングを学習していきます。 http://technical.live-on.net/archives/1987 inuinuwanwanilovecat.seesaa.net

WPF ICommand学習

よいページが見つかったので、紹介させていただきたいと思います。 WPFサンプル:ICommand インターフーイスを実装してカスタムコマンドを作成する http://gushwell.ldblog.jp/archives/52321430.html yoshinorin.net

INotifyPropertyChangedを使った簡単なWPFサンプル例 (MVVMパターンに修正)

サンプル説明 前回のコードをMVVMに直します。アプリ表示は、同一になります。 プロジェクト構成では、前回と比較して、ViewModel.csファイルを追加しました。 コード修正が入るファイルは、MainWindow.xaml.csファイルとMainWindow.xamlです。 前回と比較し…

INotifyPropertyChangedを使った簡単なWPFサンプル例

サンプルコードについて INotifyPropertyChangedを使って、プロパティ値が変更されたことをViewに通知するのみのサンプルコードです。 簡単化するため、ViewとModelしかありません。 BindableBaseクラスは、INotifyPropertyChangedインタフェースを継承して…

簡単なWPFアプリケーションを作成しましょう (株価を取得するアプリ)

C#

はじめに 簡単なWPFサンプルアプリケーションを作成します。 本サンプルでは、Html Agility Packというライブラリを使用するため、あらかじめプロジェクトにインストールしてください。 方法は以下のページにあります。 www.atmarkit.co.jp プロジェクト名は…

マルチバイト文字列(std::string)とワイド文字列(std::wstring)の間の変換を行うライブラリが便利すぎる

C++

最近、仕事でMFCのアプリケーションをUnicode対応する仕事をしていて、以下のライブラリを使わせていただきました。 マルチバイト文字列(std::string)とワイド文字列(std::wstring)の間の変換を行うライブラリが便利すぎたので、紹介させてください。 本ライ…

無効パラメータハンドラーとセキュア関数でバッファオーバーラン対策 (C / C++)

C++

はじめに Microsoft Visual Studio Community 2017を使用して、C++コンソールプロジェクトでプログラムを作成しています。 C++警告レベルはデフォルト(レベル3 (/W3))を使用しています。 セキュア関数を使用しないで、strcpy関数で文字列をコピーした場合 以…

C#で、正規表現を使って、一行から複数の文字列を抽出する

C#

C#で、正規表現を使って、一行から複数の文字列を抽出するには、 名前空間System.Text.RegularExpressionsのMatchクラスのMatch.Groupsプロパティを使用して抽出できます。 Match.Groupsプロパティは、正規表現に一致したグループのコレクションを取得するプ…

C#で、非同期処理学習

C#

非同期処理を使う必要性が発生したので、学習用のサイトを記録しておきます。 ufcpp.net www.kekyo.net

C# オブジェクト指向設計の学習

C#

メソッドでパラメータを渡すのではなく、オブジェクト生成時に必要なデータをすべて準備する データと、そのデータを使うロジックは、一つのクラスにまとめる 一つ一つのオブジェクトの役割は単純にする 複雑な処理は、オブジェクトを組み合わせて実現する

C# シングルトンパターンの学習

C#

C#で簡単なシングルトンパターンを記載してみます。 using System; namespace ConsoleApp2 { class Program { static void Main(string[] args) { SingletonClass instance = SingletonClass.Instance; SingletonClass instance2 = SingletonClass.Instance;…

C#でファイルから一行ずつ読み出し、正規表現を使って文字列を検索し、抽出する

C#

C#で、ファイルから一行ずつ読み出し、文字列を検索し、抽出する方法はいくつかありますが、正規表現を使う方法が一般的です。 以下に、ファイルから一行ずつ読み出し、正規表現を使って文字列を検索し、抽出するプログラムを記載します。 D:\test.txtに以下…

C# 正規表現を学習する

C#

正規表現を学習します。 www.atmarkit.co.jp

WPF MVVM基礎の学習

INotifyPropertyChangedインタフェースは、プロパティ値が変更されたことをクライアントに通知するインタフェースです。 ICommandインタフェースは、コマンドを定義するインタフェースです。 操作を実行するためにのExecuteメソッド、操作が実行可能かどうか…

WPF 基礎の学習

WPFのデータバインディングを勉強していきます。 開発環境は、Microsoft Visual Studio Community 2015を使用します。 WPFでは、データ・ソース(=モデルなどの、データの提供元)をビュー(=WPFの場合はXAMLコード)上のUI要素と簡単に結び付けるために、…

C++11 文法について

以下のページに詳しく書いてあります。 cpprefjp.github.io 範囲for文 型推論 ラムダ式 型alias typedef ⇒ usingを使おう typedefはオワコン 新初期化記法 リストイニシャライザ override

Qt Creatorを用いた自動deploy方法 (Windows 編)

Qt

Qtアプリを配布する場合は、実行ファイル(*.exe)ファイルのみでは実行できません。 アプリで使用しているDLLファイルがないためです。 そこで、DLLファイルをいざ集めようとするとこんなに大量にDLLファイルが必要になります。 <一例> そこで、windeployqt…

Decoratorパターンについて

C++

Decoratorパターンは、オブジェクトに付加的な責務を動的に付与します。

Observerパターンについて

C++

Observerとは、英語で観察者を意味します。 Observer パターンとは、状態の変化を観察することを目的としたものですが、どちらかというと「観察」よりも「通知」に重点の置かれたものになっています。 あるインスタンスの状態が変化した際に、そのインスタン…

Strategy Patternについて

C++

[Duch.h] #include <iostream> using namespace std; //QuackBehavior インターフェース class QuackBehavior { public: virtual ~QuackBehavior() {} virtual void quack() const = 0; //純粋仮想関数(派生クラスに) }; //QuackBehaviorインターフェースを実装したQua</iostream>…

デザインパターン入門 (勉強するぞー)

C++

HeadFirstデザインパターンの本のコードのサンプルは、GitHubにあります。 http://www.wickedlysmart.com/headfirstdesignpatterns/code.htmlgithub.com 以下の本を使ってこれから、学習を進めていきたいと思います。 どうぞよろしくお願いいたします。 Head…

Qtでcsvファイルに書き込む方法

Qt

QTextStreamを用いることで、csvファイルに保存することが可能です。 csvファイル保存の形式に合わせるため、データごとにカンマで区切ります。今回は、10個のデータごとに改行します。 今回使用するデータは、日本語文字列データを使用しました。 以下がコ…

Qt5で日本語文字列を扱おうとすると文字化けするので、その対処方法

Qt

文字列リテラルを QString へ変換する Qt5では文字列リテラルを QString へ変換するには主に以下のメソッドを使用可能。 QString::fromLatin1() Latin1(ISO-8859-1) として QString を作成 QString::fromLocal8Bit() 現在のロケールに合わせたコーデックを使…

ユーザー定義クラス(独自クラス)のリストをQDataStreamにセーブ・ロードする方法

Qt

作成環境について Qt Creator 4.3.1で、以下の設定で、プロジェクトを作成しております。以下の設定でクラス名、cppファイル名、hファイル名はすべてデフォルトを使用しています。 Qtウィジェットアプリケーション 基底クラスは、QMainWindows フォームを生…

QSettingsを用いて、画面のサイズをセーブ・ロードしよう

Qt

作成環境について Qt Creator 4.3.1で、以下の設定で、プロジェクトを作成しております。以下の設定でクラス名、cppファイル名、hファイル名はすべてデフォルトを使用しています。 Qtウィジェットアプリケーション 基底クラスは、QMainWindows フォームを生…

QSettingsクラスに、ユーザー定義クラス(独自クラス)の情報を格納する・読み出す方法について

Qt

作成環境について Qt Creator 4.3.1で、以下の設定で、プロジェクトを作成しております。以下の設定でクラス名、cppファイル名、hファイル名はすべてデフォルトを使用しています。 Qtウィジェットアプリケーション 基底クラスは、QMainWindows フォームを生…

Qtで、ユーザー定義クラスのデータを保存する・読み出す方法 (Qt Designer使用)

Qt

作成環境について Qt Creator 4.3.1で、以下の設定で、プロジェクトを作成しております。以下の設定でクラス名、cppファイル名、hファイル名はすべてデフォルトを使用しています。 Qtウィジェットアプリケーション 基底クラスは、QMainWindows フォームを生…