FMX TMemo example テキストエディタ サンプルプログラム


2017.6.11更新

これのVCL版
無料のC++ Builder 10.1 Berlin Starter Edition で動作確認しました。
FireMoneky(FMX)のソースです。
TMemoを使ったテキストエディタのサンプルです。
ソースはUTF-8で保存しました。
コメント部分にタイ文字が何文字かありますが無視してください。
VCLにあるTOpenTextFileDialog、TSaveTextFileDialog、TFontDialogがFireMonkey(FMX)にはありません。
そのため、ファイル入出力にTOpenDialogと、TSaveDialogを使用し、フォント選択機能無しとなっています。
巨大ファイルの読み込みには向いていません。
UTF-8での保存はBOM付きになると思います。
UTF-8のBOM付きテキストは未対応のテキストエディタではファイル先頭に不要な文字化け文字が数文字表示される場合があります。
GNU/Linux + wine 2.0.1でも動きました。
FireMonkey(FMX) TMemo テキストエディタ サンプルプログラム
//--------------------------------------------------------------------------- #include <fmx.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.fmx" TForm1 *Form1; //ตัวอย่างFMX TMemo //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::MenuItemExitClick(TObject *Sender) { Close(); //Program End } //--------------------------------------------------------------------------- void __fastcall TForm1::MenuItemUndoClick(TObject *Sender) { Memo1->UnDo(); } //--------------------------------------------------------------------------- void __fastcall TForm1::MenuItemAboutClick(TObject *Sender) { MessageDlg(u"C++ Builder Berlin Starter Edition\nFireMonkey(FMX)TMemo example" u"\nhttp://www.nabeta.tk", TMsgDlgType::mtInformation /* mtError */, TMsgDlgButtons() << TMsgDlgBtn::mbOK, 0); } //--------------------------------------------------------------------------- void __fastcall TForm1::MenuItemOpenFileClick(TObject *Sender) { OpenDialog1->Title = u"Open Text file"; OpenDialog1->Filter = "Text files (*.txt)|*.TXT|C++ files (*.cpp;*.h;*.cc;*.c)|*.cpp;*.h;*.cc;*.c|Any file (*.*)|*.*"; if(OpenDialog1->Execute()){ Memo1->Lines->LoadFromFile(OpenDialog1->FileName,TEncoding::ASCII); } } //--------------------------------------------------------------------------- void __fastcall TForm1::MenuItemOpenUTF8FileClick(TObject *Sender) { OpenDialog1->Title = u"Open UTF8 Text file"; OpenDialog1->Filter = "Text files (*.txt)|*.TXT|C++ files (*.cpp;*.h;*.cc;*.c)|*.cpp;*.h;*.cc;*.c|Any file (*.*)|*.*"; if(OpenDialog1->Execute()){ Memo1->Lines->LoadFromFile(OpenDialog1->FileName,TEncoding::UTF8); } } //--------------------------------------------------------------------------- void __fastcall TForm1::MenuItemSaveFileClick(TObject *Sender) { SaveDialog1->Title = u"Save Text file"; SaveDialog1->DefaultExt = u"txt";//デフォルト拡張子 if(SaveDialog1->Execute()){ Memo1->Lines->SaveToFile(SaveDialog1->FileName,TEncoding::ASCII); } } //--------------------------------------------------------------------------- void __fastcall TForm1::MenuItemSaveUTF8FileClick(TObject *Sender) { SaveDialog1->Title = u"Save UTF8 Text file"; SaveDialog1->DefaultExt = u"txt";//デフォルト拡張子 if(SaveDialog1->Execute()){ Memo1->Lines->SaveToFile(SaveDialog1->FileName,TEncoding::UTF8); } } //---------------------------------------------------------------------------

ソースファイルも用意しています。
プロジェクトファイル、ヘッダファイル、画面設計ファイルを含むコンパイルするための全てのファイルがあります。
実行ファイル(Win32\Debug の中)も入れています。
FMX版のこのソース、実行ファイル

C++ Builder 10.1 Berlin Starter Edition サンプルブログラム example

C言語の話


あーすブラウザ
オンライン鍋田辞書
鍋田辞書トップ