Thread.Join

Thread.Joinで、ワーカースレッドが終了するまで待つ。Thread.Join メソッド (System.Threading) | Microsoft Docsメインスレッドの方が先に終わってしまうような場合。 // 名前空間の登録 using System; // 共通データ型と基本クラス(System名前空間) using…

ThreadStart

ThreadStartデリゲートにスレッドで実行するメソッドを入れておく。ThreadStart 代理人 (System.Threading) | Microsoft Docs ThreadStartデリゲート変数thstを置いちゃう。で、それをThreadのコンストラクタに渡す。 同時並行で走らせる。 Main(1) ThreadFu…

ジェネリクスの反変性

C#

ジェネリクスの反変性は、しっくり来てるような来てないような感じがあるが、ジェネリックの共変性と反変性 | Microsoft Docs ジェネリクスの共変性・反変性 - C# によるプログラミング入門 | ++C++; // 未確認飛行 Cコード的には、 // 名前空間の登録 using…

ジェネリクスの共変性

C#

C#4でジェネリクスにおいても共変性という性質を持てるようになった。ジェネリックの共変性と反変性 | Microsoft Docs ジェネリクスの共変性・反変性 - C# によるプログラミング入門 | ++C++; // 未確認飛行 CITest.csというのを追加し、 // テストインター…

反変性

C#

さらに難しいのが反変性。共変性と反変性 (C#) | Microsoft Docs デリゲート - C# によるプログラミング入門 | ++C++; // 未確認飛行 C引数が派生クラスの関数、引数が基底クラスの関数があった時、派生クラスを受け取る関数のデリゲートに、基底クラスを受…

共変性

C#

説明が難しいのだが、基底クラスを返す関数を入れるデリゲートがあった時、このデリゲートに派生クラスを返す関数を入れることもできる。 このような性質を共変性と言うらしい・・・。 詳しくは、共変性と反変性 (C#) | Microsoft Docs デリゲート - C# によ…

Activity.removeDialog

Activity.removeDialogは、ダイアログを閉じるとともに作成したダイアログのViewなどのリソースを破棄する。Activity | Android Developers再びshowDialogで表示する時は、onCreateDialogから呼ばれる。このようにすると、100にしている状態で閉じる100にし…

Activity.dismissDialog

Activity.dismissDialogで、ダイアログを閉じるというか退けるというか非表示にする。Activity | Android Developers作成したダイアログを破棄しないので、再度表示するとViewなどはそのままになる。layoutから取ったbuttonのハンドラでクリックしたらdismis…

AlertDialog.Builder.setView

AlertDialog.Builder.setViewでダイアログに独自のレイアウトをセットできる。AlertDialog.Builder | Android Developersdialog_main.xmlを追加して、LinearLayoutのidはlayout_rootにして、EditTextとButtonを配置。showDialogにcount1, count2を渡す。Layo…

Activity.onPrepareDialog(id, dialog, args)

Activity.onPrepareDialogにも、Bundle(args)の引数が渡る。Activity | Android DevelopersonPrepareDialogは表示の度に呼ばれるので、Buttonが既に押されている回数(これまでのDialog表示回数)を数えていくことができる。 (最初は0から始まる。)Buttonが押…

Activity.onPrepareDialog

Activity.onCreateDialogはダイアログ生成時に呼ばれるが、Activity.onPrepareDialogはダイアログを表示する前の準備段階で呼ばれる。Activity | Android DevelopersonCreateDialogは生成時の1回だけだが、onPrepareDialogは何度も表示する度にその前の呼ば…

AlertDialog.Builder.setMessage

AlertDialog.Builder.setMessageでダイアログの本文をセットする。AlertDialog.Builder | Android Developersキー"message"の値もダイアログの本文としてセットする。messageをセットするようにすると、button1 clicked!"button1 clicked!"となったり、butto…

AlertDialog.Builder.setTitle

AlertDialog.Builder.setTitleでダイアログのタイトルをセットできる。AlertDialog.Builder | Android Developersキー"title"の値をダイアログのタイトルとしてセットする。どちらのダイアログもtitleをセットするようにしている。 button1だと、dialog1とな…

Activity.onCreateDialog(id, args)

Activity.showDialogで渡されたID(id)とBundle(args)はActivity.onCreateDialogに渡される。Activity | Android DevelopersBundleで渡す引数を増やしてみる。"title"に加えて、"message"も渡す。キー"message"の値もトーストで表示。 button1を押すと、title…

Activity.showDialog(id, args)

Activity.showDialogは引数としてID以外に、Bundleを渡すことで追加の引数を渡すことができる。Activity | Android DevelopersIDとBundleは、onCreateDialogに渡され、そこで処理することで振る舞いを切り替えることができる。activity_main.xmlで、Buttonを…

SetWindowRgn

SetWindowRgnを使うとウィンドウの指定のリージョンの部分のみ表示するようになる。 つまりウィンドウを非矩形なリージョンの形にできるということ。SetWindowRgn function (winuser.h) - Win32 apps | Microsoft DocsSetWindowRgnに指定したリージョンはシ…

Aoi32(0, 0, 6, 6/Osaki #65) -入力内容が変更されている状態でメニューアイテムの"開く"を選択された時の挙動.

変更状態で"開く"を押すと、結構ややこしいことになるので、その部分の処理を書いた。変更されている場合は、保存するかどうかダイアログを表示し、"はい"なら保存、"いいえ"なら保存しない、"キャンセル"ならその先の処理をしない、という分岐をする必要が…

SelectClipRgn

SelectClipRgnを使うことで、指定のデバイスコンテキストの描画領域を、指定されたリージョンの部分のみにできる。SelectClipRgn function (wingdi.h) - Win32 apps | Microsoft Docs楕円と矩形を結合したリージョンを選択すれば、画像を描画しても結合した…

CombineRgn

CombineRgnは、2つのリージョンを結合する。CombineRgn function (wingdi.h) - Win32 apps | Microsoft DocsWM_CREATEで、第1引数が結合先リージョン、第2引数が1つ目、第3引数が2つ目で、大体は1つ目のリージョンに2つ目のリージョンを結合するパターンであ…

CreateEllipticRgn

CreateEllipticRgnは、楕円形のリージョンを生成する。CreateEllipticRgn function (wingdi.h) - Win32 apps | Microsoft DocsWM_CREATEで、楕円リージョンhRgnと赤いブラシhBrush。 WM_PAINTで、SelectObjectでhBrushを選択して、PaintRgnでhRgnを描画。楕…

FrameRgn

FrameRgnは、リージョンの境界線を指定のブラシで描画する。FrameRgn function (wingdi.h) - Win32 apps | Microsoft Docsブラシ、縦線の太さ、横線の太さを指定できる。今回は、赤いブラシと青いフレーム用ブラシの2種類を用意。 // 画面の描画を要求された…

FillRgn

FillRgnは、指定されたブラシでリージョンを描画する。FillRgn function (wingdi.h) - Win32 apps | Microsoft DocsWM_CREATEで、こちらでも赤いブラシを作成。WM_PAINTで、こちらではFillRgnにhBrushを直接指定。赤いブラシで描画赤いブラシで描画された。S…

PaintRgn

PaintRgnは、指定されたデバイスコンテキストに設定されているブラシやペンでリージョンを描画する。PaintRgn function (wingdi.h) - Win32 apps | Microsoft DocsWM_CREATEで、リージョンとともに、赤いブラシも生成。WM_PAINTは、SelectObjectでhDCに赤い…

Polygon

Polygonは指定された頂点を持つ閉じた多角形を描画する。Polygon function (wingdi.h) - Win32 apps | Microsoft Docs5つの頂点をPOINTの配列ptで指定する。 WM_CREATEで、頂点、そしてペンやブラシをセット。 WM_PAINTで、Polygonでptと頂点の数を指定する…

access

ファイルのアクセス権限をチェックするにはaccessを使う。Man page of ACCESS呼び出し元プロセスから見てアクセスできるかを判定する模様。 (基本的に実行したユーザってことかな・・・。)test.txtを普通に作った時のアクセス権限をチェックする。第2引数が…

unlink

ファイルの削除はunlinkで行う。Man page of UNLINKシンボリックリンクや、名前付きパイプなど、ファイルシステム上名前の付いているものは削除できる。 というか名前を削除して、その名前が参照しているファイル実体も削除するといったほうがいいかな・・・…

mknod

mknodで空のファイルを作成する。Man page of MKNOD通常ファイルも特殊ファイル(名前付きパイプやデバイスやソケットなど)も作成できる。今回は"test.txt"とパイプ"TEST1"を作成する。 ファイル名、そして付与するパーミッションを指定。 デバイスの場合、第…

symlink

symlinkはシンボリックリンクを作成する。Man page of SYMLINKシンボリックリンクが指し示すファイルパス、そしてシンボリックリンク名を指定する。成功すると0が返る。 $ pwd /home/bg1/project/cloud/github.com/Sample/unixsyscall/symlink/symlink/src/s…

mkdir

mkdirはディレクトリを作成する。Man page of MKDIRディレクトリを作成するときに、アクセス権限も指定する。これで、 $ vi mkdir.c $ gcc mkdir.c -o mkdir $ ls mkdir mkdir.c $ ./mkdir mkdir success! $ ls mkdir mkdir.c test_dir $ ls -al 合計 36 drw…

rename

renameは、ファイル名の変更や移動に使う。Man page of RENAMEファイル名"test.txt"を"test1.txt"に変更する。これで、 $ vi rename.c $ gcc rename.c -o rename $ ls rename rename.c $ vi test.txt $ cat test.txt ABCDE $ ls rename rename.c test.txt $ …