2024年06月28日
エディターの「行番号の表示の序論」について
こんにちは、皆さん。今日は、テキストエディターの「行番号の表示の序論」について、お話ししたいと思います。実は、行番号の表示というのは、簡単そうで滅茶苦茶難しいのです。更に、リッチテキストエディターになると、更に難しくなります。
ですから今回は、三回に分けてお話しすることにします。最初は、「序論」です。二回目は、「TextBox」で作ったエディターの行番号についてです。三回目は、前回作った「RichTextBox」によるエディターの、行番号についてです。
実は前回、C#でテキストエディターを作る場合は、「RichTextBox の一択」と明言したのですが、「Win32 API」を使う場合は、「TextBox」でも作れるのです。というより、軽量な分だけ作り易いかも知れません。「RichTextBox」のような、文字列の装飾が必要ありませんから。
また、「Win32 API」といっても、本の少しであり定番中の定番なので、慣れてくれば大丈夫です。
ただし、「Win32 API」を使う場合は、C#から一時的に離れますから、初心者の方には「お勧め」していなかったのです。そういう意味で、「RichTextBox の一択」と明言した分けです。m(_ _)m
ただ、C#から「Win32 API」を使うことは、慣れてくると良くある事なので、余り気にする必要は無いと思います。まぁ最初なので、少し端折ってみました(笑)。
とは言っても基本は、「C#」で出来る事は「C#」で行った方が良いので、心のどこかに留めて置きましょう。
それとC#には、二つの系統がありまして、一つは Basic 的な内容を重視した標準的な系統と、もう一つは Html 的なプレゼンテーションを重視した、「WPF(Windows Presentation Foundation)」があります。
WPF というのは、基本的には「C#」なんですが、Html や CSS のように重ね合わせが、自由自在に出来るようになっています。それは、「Xaml」という言語仕様なんですが、使い熟せれば標準では出来ない色んな事が、出来るようになります(パワー)。
更に、三次元の画像処理を行う場合は、非常に優れたライブラリーが豊富に揃っているので、「WPF の一択」になります。ただ、還暦を過ぎた叔父さんには、ハードルが高過ぎて使い熟せません(涙)。若い人向けですね。
ですから、「WPF」を使えば、「TextBox」を使ったテキストエディターに対しても、色んなプレゼンテーションを、提供することが出来ると思います。未確認ですが(汗)。
しかし今回は、普通のC#なので、「Win32 API」を使うことになります。
実は、このテキストエディターに関しては、数年前に作ったものを紹介しているのですが、今回それを見直しているのですが、「Win32 API」を使わなくても、「TextBox」の幾つかのメソッドを組み合わせれば、同じような処理が出来るかも知れません。
その辺りは、具体的な処理として、次回に紹介します。紹介するにあたっては、スクリーンショットを取らないといけないので、プログラムを作成しなければなりません(笑)。ですから、一度作成した物とはいえ、次回迄にはある程度の時間が掛かります。m(_ _)m
全体としての感じは、Windows の「Notepad」と同じものは、出来るような感じですね。「TextBox」も「C#」も秀逸ですから。私がしていることは、基本的なプログラミングと、各コントロールをどうのように組み合わせるか?、ということです。
全ての難しいことは、C#が行ってくれます。これが、「RAD Tool」の凄いところです(感謝)。
ただし、C#なので速度は要求出来ません。C++(ネイティブ)等よりも、全体的にやや遅いです。また、C++等に出来てC#に出来ないこともあります。そういう場合に、「Win32 API」を使います。
速度の比較については、作るアプリケーションによっても異なりますが、二次元のグラフィックス関係については、大凡「MFC(Microsoft Foundation Class)」より、1.5 倍位遅いです。
ですから体感的には、動きが「ややもっさり」している感じですね(笑)。しかし、圧倒的な差がある分けでは無いので、「コストパフォーマンス」や「自分で使う分」には、C#でも十分良いと思います。
ですから今回は、三回に分けてお話しすることにします。最初は、「序論」です。二回目は、「TextBox」で作ったエディターの行番号についてです。三回目は、前回作った「RichTextBox」によるエディターの、行番号についてです。
実は前回、C#でテキストエディターを作る場合は、「RichTextBox の一択」と明言したのですが、「Win32 API」を使う場合は、「TextBox」でも作れるのです。というより、軽量な分だけ作り易いかも知れません。「RichTextBox」のような、文字列の装飾が必要ありませんから。
また、「Win32 API」といっても、本の少しであり定番中の定番なので、慣れてくれば大丈夫です。
ただし、「Win32 API」を使う場合は、C#から一時的に離れますから、初心者の方には「お勧め」していなかったのです。そういう意味で、「RichTextBox の一択」と明言した分けです。m(_ _)m
ただ、C#から「Win32 API」を使うことは、慣れてくると良くある事なので、余り気にする必要は無いと思います。まぁ最初なので、少し端折ってみました(笑)。
とは言っても基本は、「C#」で出来る事は「C#」で行った方が良いので、心のどこかに留めて置きましょう。
それとC#には、二つの系統がありまして、一つは Basic 的な内容を重視した標準的な系統と、もう一つは Html 的なプレゼンテーションを重視した、「WPF(Windows Presentation Foundation)」があります。
WPF というのは、基本的には「C#」なんですが、Html や CSS のように重ね合わせが、自由自在に出来るようになっています。それは、「Xaml」という言語仕様なんですが、使い熟せれば標準では出来ない色んな事が、出来るようになります(パワー)。
更に、三次元の画像処理を行う場合は、非常に優れたライブラリーが豊富に揃っているので、「WPF の一択」になります。ただ、還暦を過ぎた叔父さんには、ハードルが高過ぎて使い熟せません(涙)。若い人向けですね。
ですから、「WPF」を使えば、「TextBox」を使ったテキストエディターに対しても、色んなプレゼンテーションを、提供することが出来ると思います。未確認ですが(汗)。
しかし今回は、普通のC#なので、「Win32 API」を使うことになります。
実は、このテキストエディターに関しては、数年前に作ったものを紹介しているのですが、今回それを見直しているのですが、「Win32 API」を使わなくても、「TextBox」の幾つかのメソッドを組み合わせれば、同じような処理が出来るかも知れません。
その辺りは、具体的な処理として、次回に紹介します。紹介するにあたっては、スクリーンショットを取らないといけないので、プログラムを作成しなければなりません(笑)。ですから、一度作成した物とはいえ、次回迄にはある程度の時間が掛かります。m(_ _)m
全体としての感じは、Windows の「Notepad」と同じものは、出来るような感じですね。「TextBox」も「C#」も秀逸ですから。私がしていることは、基本的なプログラミングと、各コントロールをどうのように組み合わせるか?、ということです。
全ての難しいことは、C#が行ってくれます。これが、「RAD Tool」の凄いところです(感謝)。
ただし、C#なので速度は要求出来ません。C++(ネイティブ)等よりも、全体的にやや遅いです。また、C++等に出来てC#に出来ないこともあります。そういう場合に、「Win32 API」を使います。
速度の比較については、作るアプリケーションによっても異なりますが、二次元のグラフィックス関係については、大凡「MFC(Microsoft Foundation Class)」より、1.5 倍位遅いです。
ですから体感的には、動きが「ややもっさり」している感じですね(笑)。しかし、圧倒的な差がある分けでは無いので、「コストパフォーマンス」や「自分で使う分」には、C#でも十分良いと思います。
【このカテゴリーの最新記事】
-
no image
-
no image
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/12607356
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック