Make Font Windows GUI 使用方法

こんにちは、Takymです。
今回は、前回作成したソフト、「Make Font Windows GUI」の使用方法を説明します。

エディタのまわりの説明


まず、右上の「コンパイル」というボタンは付属のmakefont.exeを使用して、フォントファイルをバイナリ形式に変換します。
これで、OSASKやHaribote OSで利用できる形に変換できます。
「コンパイル」ボタンの隣にあるテキストボックスは、フォントファイル(テキスト形式)のファイル名を設定する所です。
右隣の「…」ボタンを押せばファイルダイアログが開かれますのでそこから選択する事も可能です。
「開く」ボタンは指定されているファイルからフォントデータを読み込みます。
「保存」ボタンは編集した内容をファイルにテキスト形式で保存します。
一番下の白い所は、フォントをプレビューする所です。

エディタ部分の説明


「<戻る」ボタンは、現在開いている番号を-1します。
「次へ>」ボタンは、現在開いている番号を+1します。
「」ボタンの真ん中にあるテキストボックスは、現在編集中の番号です。
その下にあるマス目で、フォントを編集します。
右側の「×」ボタンは、フォントを削除します。
その下の「反」ボタンは、白と黒を反転させます。
「C」ボタンを押すと編集中の内容をグリップボードにコピーします。
「P」ボタンは、グリップボードから「C」ボタンでコピーした内容を貼り付けます。

Haribote OS のhankaku.txtを表示している所


今回はここまでです。
感想・分からない事は、ここのコメント欄にお願いします。
新機能の要望やバグ等は、ここのコメント欄ではなくこちらにお願いします。
最後まで読んでくれてありがとうございました。

C#を1.0~7.0までのバージョンを比較してみる。目次

こんにちは、Takymです。
前回くらいに「C#を1.0~7.0までのバージョンを比較してみる。」のシリーズが終わったので、目次を作成したいと思います。

参考にした全てのページ

一応、もう一度参考にしたページへのリンクを貼っておきます。

※因みに、C# 4.0とC# 5.0との比較はしていません。

今日のC#インタラクティブ (2017/05/31) ~csi.exe編~

こんにちは、Takymです。
「C# 1.0~C# 7.0まで比較する」シリーズが終わりましたね。
今回は、csi.exeを使用したいと思います。
csi.exeは、‘C:\Program Files (x86)\MSBuild\14.0\Bin\csi.exe’にあると思います。

早速実行

Microsoft Windows [Version 10.0.15063]
(c) 2017 Microsoft Corporation. All rights reserved.
C:\Users\XXXXX>"C:\Program Files (x86)\MSBuild\14.0\Bin\csi.exe"
Microsoft (R) Visual C# インタラクティブ コンパイラ バージョン 1.3.1.60616
Copyright (C) Microsoft Corporation. All rights reserved.
詳細については、「#help」と入力します。
> #help
キーボード ショートカット:
Enter         現在の送信が完全と思われる場合には、それを評価します。そうでない場合には 、改行を挿入します。
Escape        現在の送信をクリアします。
UpArrow       現在の送信を前の送信に置き換えます。
DownArrow     現在の送信を次の送信に置き換えます (前に戻っている場合) 。
Ctrl-C        REPL を終了します。
REPL コマンド:
#help         利用可能なコマンドとキー バインディングに関するヘルプを表示します。
スクリプト ディレクティブ:
#r            指定されたアセンブリとそのすべての依存関係へのメタデータ参照を追加します (例: #r "myLib.dll")。
#load         指定されたスクリプト ファイルを読み込んで実行します (例: #load "myScript.csx")。
// ↑とりあえず、「#help」してみた。
// Visual Studio版より機能が少ないかも・・・
// 名前空間を実行してみる。
> System
(1,1): error CS0118: 'System' は 名前空間 ですが、変数 のように使用されています。
> System sys = new System();
(1,1): error CS0118: 'System' は 名前空間 ですが、種類 のように使用されています。
(1,18): error CS0118: 'System' は 名前空間 ですが、種類 のように使用されています。
// ↑やっぱりエラーになった。

今回は、ここまでです。

C#を1.0~7.0までのバージョンを比較してみる。その5

こんにちは、Takymです。
今回は、C# 6.0とC# 7.0を比較します。いよいよ最後ですね。
前回の記事→http://takymsystems.blog.fc2.com/blog-entry-13.html

C# 5.0 vs C# 6.0

C# 6.0とC# 7.0との比較の前にC# 5.0とC# 6.0を比較しますね。

using static

C# 6.0から、staticクラスをusingできるようになりました。

using static System.Console;
public class Program
{
public static void Main(string[] args)
{
for (int i = 0; i < args.Length; ++i)
{
// Consoleを省略できる。
WriteLine($"args[{i}]:{args[i]}");
}
}
}

C# 6.0 vs C# 7.0

それでは、C# 6.0とC# 7.0を比較します。

タプル

(int, string) a = (64, "TEST!!!!!!!!!!!!");

※この機能を使用するには、NuGetからSystem.ValueTupleを入手するか、
このページを参考にしてください。

出力変数宣言

if (int.TryParse("123", out var i)) {
Console.WriteLine($"Number is {i}");
}

型スイッチ

string DoSomething(object obj)
{
switch (obj)
{
case int n:
return $"It is a number. The value is {n}.";
case string s:
return $"It is a string. The value is {s}.";
default:
return $"It is a other object. The value is {obj}.";
}
}

それ以外の機能は割愛します。
これで、「C# 1.0~C# 7.0まで比較してみる」シリーズは終わりです。

感想

C# 1.0からC# 7.0までの進化が物凄いという事が分かりました。
また、新機能が多すぎて調べて書く作業が大変でした。
そのため、割愛が多すぎて残念だなと思いました。
この記事に関する指摘や分からない事はこの記事のコメント欄に書いてください。
最後まで読んでくれてありがとうございました。
参考にしたページ①:C# 6 の新機能 – C# によるプログラミング入門 | ++C++; // 未確認飛行 C
参考にしたページ②:C# 7 の新機能 – C# によるプログラミング入門 | ++C++; // 未確認飛行 C

続きを読む “C#を1.0~7.0までのバージョンを比較してみる。その5”

今日のC#インタラクティブ (2017/05/29) ~画面の色編~

こんにちは、Takymです。
C# インタラクティブの時間です。
今回は、ConsoleColor系を弄りたいと思います。

>  Console.BackgroundColor
Black
// ↑え?黒?
> Console.BackgroundColor = ConsoleColor.Gray;
// ↑あれ?変わらない・・・
// なら、csi.exeで試してみる。
> Console.BackgroundColor = ConsoleColor.Gray;
// ↓の様になった。


今回は、短すぎますが以上です。
最後まで読んでくれてありがとうございました。

C#を1.0~7.0までのバージョンを比較してみる。その4

こんにちは、Takymです。
昨日は更新できなくてすみませんでした。
今回は、C# 5.0とC#6.0を比較したいと思います。
前回、C# 4.0とC# 5.0を比べる予定と言っておりますが、割愛させていただきます。すみません。
前回→C#を1.0~7.0までのバージョンを比較してみる。その3

C# 5.0 vs C# 6.0

自動プロパティの拡張

C# 6.0から簡単にプロパティの限定値を設定できるようになった。

public class Test
{
public int Number
{
get
{
return _number;
}
set
{
_number = value;
}
}
// 限定値の設定
private int _number = 123;
}
public class Test
{
public int Number { get; set; }
public Test()
{
// 限定値の設定
this.Number = 123;
}
}
public class Test
{
// 限定値の設定
public int Number { get; set; } = 123;
}

expression-bodiedな関数メンバー

C# 6.0から、関数をラムダ式みたいに書くことができるようになりました。

public int Add(int x, int y)
{
return x + y;
}
public int Add(int x, int y) => x + y;

文字列挿入

C# 6.0からstring.Formatを以下の様にして、省略できるようになりました。

int num = 123;
string f = $"{num}";
int num = 123;
string f = string.Format("{0}", num);

nameof演算子

C# 6.0から、nameof演算子を使う事で、変数やクラス等の名前の書き間違えの防止ができるようになりました。

string a = nameof(System.Console);

今回はここまでです。それ以外の新機能は割愛します。
(なんか、割愛しすぎな気がする・・・)
分からない事や記事に対する指摘等はこの記事のコメント欄でお願いします。
最後まで読んでくれてありがとうございました。
参考にしたページ:C# 6 の新機能 – C# によるプログラミング入門 | ++C++; // 未確認飛行 C

続きを読む “C#を1.0~7.0までのバージョンを比較してみる。その4”

C#を1.0~7.0までのバージョンを比較してみる。その3

こんにちは、Takymです。
今回は前回のC#を1.0~7.0までのバージョンを比較してみる。その2続きです。

C# 2.0 vs C# 3.0

自動プロパティ

C# 2.0では、以下の様に記述しなければいけませんでした。

public int Number
{
get
{
return _number;
}
set
{
_number = value;
}
}
private int _number;

C# 3.0から以下の様に記述できるようになりました。

public int Number { get; set; }

他にもLINQに関する機能が追加されたようですがここでは割愛します。
(そもそも僕はLINQの使い方をしらない・・・)

C# 3.0 vs C# 4.0

動的型付け変数 (dynamic)

dynamicはvarと違い、動的に型情報を調べます。

void DoWork(dynamic obj)
{
obj.DoWork();
}

この機能は、C# 4.0以降から使用可能です。

オプション引数

C# 4.0以降からの様に引数に限定値を設定できるようになりました。
(結構最近できたのか、この機能。昔からあると思い込んでいました。)

int XorNumber(int a = 0)
{
return ~a;
}

その他機能はここでは割愛します。
次回は、C# 4.0とC# 5.0を比べてみる予定です。
最後まで読んでくれてありがとうございました。
分からない事、間違い等はこの記事にコメントしてください。
参考にしたページ①:C# 3.0 の新機能 – C# によるプログラミング入門 | ++C++; // 未確認飛行 C
参考にしたページ②:C# 4.0 の新機能 – C# によるプログラミング入門 | ++C++; // 未確認飛行 C

続きを読む “C#を1.0~7.0までのバージョンを比較してみる。その3”

今日のC#インタラクティブ (2017/05/26) ~配列編~

こんにちは、Takymです。
今回から、C#インタラクティブを使って何かをするシリーズを始めようと思います。
ただし、殆ど一発ネタ未満です。また、実行するプログラムは大体1~3個になる予定です。
因みに、C#1.0~7.0まで比較するシリーズは今日はお休みします。

// 配列
> Array a = new string[] { "Test", "abc123", "a1b2", "HogeHoge" };
> a
string[4] { "Test", "abc123", "a1b2", "HogeHoge" }
// ↑あえてArray型を使ってみる。
// 配列を、オブジェクトにキャストしてみる
> Object b = a;
> b
string[4] { "Test", "abc123", "a1b2", "HogeHoge" }
// おお!うまくいってる!
// 配列の価を変えてみる
> a[0] = "changed_text";
(1,1): error CS0021: 角かっこ [] 付きインデックスを 'Array' 型の式に適用することはできません
// ↑そうか、Array型じゃだめなのか・・・
> string[] c = ((string[])(a));
// ならば、string[]にキャストしてみる。
> c[0] = "changed_text";
> a
string[4] { "changed_text", "abc123", "a1b2", "HogeHoge" }
> b
string[4] { "changed_text", "abc123", "a1b2", "HogeHoge" }
> c
string[4] { "changed_text", "abc123", "a1b2", "HogeHoge" }
// ↑うまくいってる。

最後まで読んでくれたありがとうございました。

WordPress.com で次のようなサイトをデザイン
始めてみよう