自作プログラム(XE8、Comunity10.3)             戻る

C++Builder6.0からXE8まで製品を購入してきましたが、値段もだんだんと高額になり手を出しにくくなっておりました。 マイクロソフトのVC++は、最近の版ではGUIが使えなくなったようで、またなじみもなく使う気が起きませんでした。 最近、色々制約はありますが、無償版C++Builder Starter 10.2がでましたので、簡単なソフトを作ってみました。 Windows用のプログラムを作っているかぎりはXE8との違いは判りませんでした。
プログラムはでコンパイルし、Windows10のみでテストしております。 最新版はC++Builder Comunity 10.3.3です

   
mymemo
TCalendar,TMemoを配置して、カレンダーをみながら、メモを書き入れるだけ
2018.02.03(Ver1.00)
mcalendar
1ケ月分のカレンダーの作成
2018.02.25(Ver1.00)
bed
フアイルの16進ダンプ、編集
2020.12.27(再コンパイル)
fdman
フアイルの表示、管理
2017.7.4 (Ver1.00)
fdrag
フアイル、フオルダーのDrag、Drop
2017.7.7 (Ver1.00)
num.zip
StrinGridを使用したナンプレの解法
ver1.00(再コンパイル)
tate.zip
metafileを使用した熨斗などの表書き
ver1.00(再コンパイル)
gview2.zip
png,gif,jpg,bmp,icoなど表示、BMP→PNGなど変換、印刷
Ver1.30(再コンパイル)

















































mymemo   Ver1.00   2018.01.31
 

mymemo(マイメモ) Ver1.00    2018.2.3

TManthCalendar,TMEMOを貼り付け、カレンダーを見ながらメモするプログラムで、コーディングはフアイルの入出力の部分ぐらいです。 メモを書き入れ、プログラムを終了すれば、mymemo.exe を置いたフオルダーに TEST.TXT として書き込み、プログラムの起動時に 読み込まれます。
「OneDrive」などにプログラムを入れておけば、ほかのPCからもメモを読めます。

いずれも、7−Zip(無償の圧縮、解凍ソフト) を用いて圧縮したZIPフアイルです
























 
























mcalendar Ver1.00   2018.2.23  

mcalendar Ver1.00   2018.2.23
EncodeDate()を利用してカレンダーの日付、曜日、小の月、うるう年など調べて、指定された月のカレンダーを作成しました。
小の月、うるう年は29、31日をセットしてEncodeDate()を呼びエラーならその月は28、30日としております。
Try,Catchで処理しておりましたら、デバッグの時、エラーが出て上手くできず、デバッグの時はその部分をコメントアウトしてデバッグしました。
画像は縦長のカレンダーの時は横長画像にしたほうがバランスが良いようで、トリミングの機能をつけてみました。
文字の大きさが印刷画面と違い、Image→Font→Heightに補正をかけ印刷画面に近いようにしてみましたが必ずしも上手くいっておりません。 右画面で印刷 枠高(ドット>文字高(ドット) ならはみ出さないでプリントできそうです。  7−Zip(無償の圧縮、解凍ソフト) を用いて圧縮したzipフアイルです
自己解凍フアイルにするとAVAST,Windows Defenderなどで異常フアイルとされるようなので、ZIPとしました。

















































bed.exe    2004.10.9  

以前に載せたことがありましたが,今回、C++Builder10.3.3でコンパイルしなおしました(inary,editor)
ファイルの内容を16進ダンプして見たい事があり,作りました.ファイルを16進ダンプし,多少の修正が可能としております
Ver 1.05 検索が全く動作しておらないBugの修正,Home,Endキ−で先頭,最後に移動出来るようにしました

2021.1.3 bed filename のようにパラメタ−つきで起動できる用にしました。

bed_exe Ver 1.05 実行ファイル
bed_src Ver 1.05 ソ−ス ファイル
使用法
1 : →←↑↓,Home,・dnd,PageUp,PaageDown によりスクロ−ルなど出来ます
2 : キャレットの点滅した位置で 1- F までの16進数が直接入力できます
3 : 保存も出来ます
4 : 検索は16進でのみ可能(FFD8 など)









 
















































fdman

fdman Ver1.00

WindowsApiのSHFileOperation(&fs)を利用したFile、Directoryのコピ−、移動、名前の変更、削除、バックアップを行うプログラムです。 SHFileOperationを利用することで、特にDirに対するプログラムが簡単になりました。 現在はIFileOperation interfaceの利用が推奨されているようです。 隠しフアイルは表示出来ますが、隠しDirは表示は出来ません。DirはMultiをチェックすれば複数のDirを操作出来ます。
ファイルのアイコンの表示、保存する機能も入れて見ました。

  • fdman_exe.zip 実行フアイル
  • fdman_src.zip ソース フアイル






















































  • fdrag Ver1.00  2017.07.07

    fdrag   ver1.00  2017.07.07

     fdrag_exe.zip   実行フアイル
     fdrag_src.zip    ソース フアイル

    FileListBoxの1ファイルのアプリケション間でのDrag&Dropを行うプログラム
    ヘッダ−ファイルに下記を追加 void __fastcall DropFiles(TWMDropFiles msg); BEGIN_MESSAGE_MAP MESSAGE_HANDLER(WM_DROPFILES, TWMDropFiles, DropFiles) END_MESSAGE_MAP(TForm) CPPファイルで void __fastcall TForm1::DropFiles(TWMDropFiles msg) { int FilCount; wchar_t FileName[255]; FilCount= ::DragQueryFile((HDROP)msg.Drop,0xffffffff,NULL,255);       .       . など追加 FileListBoxのMouseMoveに DoDragDrop(dataObject, dropSource, DROPEFFECT_COPY, &dropEffect); など追加、詳細はソ−スファイルを見て下さい

































































    num ver1.00 2013.3.10(XE8で再コンパイル)

    num_exe.zip   実行フアイル
    num_src.zip   ソース フアイル

    TStringGridの使用法を調べたく、試行錯誤したプログラムで、ナンバ−プレスの問題も一応解けるようです。問題を入力しCheckボタンを繰り返しクリック すればなんとかなります。

    StringGridに枠線は
    StringGrid1→Canvas→Brush→Color=clBlack;
    StringGrid1→Canvas→FrameRect(rect);

    をOnDrawCellイベントに書き、描写しております
    各セルへのフオ−カスはStringGridのRow、Colに座標をセットしております。移動は Tab、Enter、矢印キ−で可能です。

    StringGridのOptionは左記のようにCheckをいれております。
    枠線の描画にStringGrid1→Canvas→FrameRect(rect)を使いましたが、下記のようにStringGrid1→Canvas→Pen を使うほうが綺麗に 描けるようです Form1→StringGrid1→Canvas→Pen→Width=4; Form1→StringGrid1→Canvas→Pen→Color=clBlack; for(i=0;i<4;i++) { Form1→StringGrid1→Canvas→MoveTo(i*230,0); Form1→StringGrid1→Canvas→LineTo(i*230,230*3); Form1→StringGrid1→Canvas→MoveTo(0,i*230); Form1→StringGrid1→Canvas→LineTo(230*3,i*230);  }


















































    tate.exe  ver1.00 2013.8.1(XE8で再コンパイル)

     tate_exe.zip   実行フアイル
     tate_src.zip   ソース フアイル

    熨斗紙などにフオントを指定、縦書き(Font→Orientation=2700 を指定しているため横書きは不可)する事を目的としたプログラムです。

    MetaFileに描画し、表示、印刷は
    Form1→Image1→Picture→Assign(Metafile); Printer()→Canvas→StretchDraw(rect, Metafile);で行っております。

    上段、下段でフオントを別々に選択可能とし、印刷位置も調節可能としました。熨斗などは背景として画像を貼り付けました(BMP、JPG、PNG)。

    下段は連名を想定し二行を印刷可能としました(下段は同じフオントを使用)
    文字、フオントなど変更した際、MetaFileを全体に消し、再描画するため画面が少し乱れます。

    余談ですが、最初 Form上で文字入力、編集するプログラムを組んで見たのですが、Radiobuttonなどを配置すると、Form上でKey入力 が出来なくなり、KeyPreviewをtrueにすると漢字入力が出来なくなったりとトラブリ、解決できず、断念し、このようにしました。

    熨斗紙の背景画像(b、b1、b2.png)をtate−src.exeに入れて置きました。

















































    gview2  ver1.30 2015.02.26(XE8で再コンパイル)


    C++Buider2009からPNG、GIF、ICON、TIFF、JPG、BMPなどの画像フオ−マットがサポ−トされるようになった事を 知り試して見ました。
    #include jpeg.hpp、gifimg.hpp、pngimage.hpp、Graphics.hpp などヘッダ−フアイルを追加すれば各フオ−マット フアイルを表示してくれました。

    BMP→Assign(TIF)などがエラ−で利用出来ず、TIFF、ICOは表示のみでPNG、GIF、BMP、JPGに変換してセ−ブが私には出来ませんでした。

    • gview2_exe.zip 実行フアイル
    • gview2_src.zip ソース フアイル

      OpenDialog を利用し、フアイル名を取得し、 gif→LoadFromFile(FileName)  bmp→Assign(gif)とし、 BMPにAssignし、表示、Saveは逆に、gif→Assign(BMP)、gif→SaveToFile(FileName)で変換しセ−ブしております。
    Ver1.10 目的は「SnippingTool」などでキャプチャ−した画像を、手軽にプリントするためです。
    GetDeviceCaps(dc,LOGPIXELSX)、PrintDialog、Printer()→BeginDoc()、Printer()→Canvas→StretchDraw(p_rect,bmp)、Printer()→EndDoc() など利用して印刷できるようにしました。

    Ver1.20 画像によって正常にプリント出来ないBugの修正
    PrinterはCanonのIP4500しか持ってなく、他のプリンタ−は試しておりません。