開発者のコーナー
こちらではWindows開発環境である、Delphiの自作コンポーネントを中心に発表しております。コンポーネント作成はまだまだ初心者ですので、何かあればご指摘ください。
- WM_CopyDataスクリーンセーバ
開発者向けツールです。計測・通信プログラムなどの作業中に、通信データなどを文字として表示させるスクリーンセーバーを組み込み、また作成したアプリケーションからこのスクリーンセーバを呼び出すためのソースコードで構成されています。
スクリーンセーバとしての基本ソースコードは安藤 亮太氏:[Mail address]/[Web Page URL]のサンプルコード(99/06/13更新版)をほぼ流用させていただきました。
あらかじめWindowsフォルダにスクリーンセーバとして特にインストールすることなく、作成するアプリケーションのフォルダにこのプログラムを置き、アプリケーションから
fWMCopyDataSvr := TWMCopyDataSvr.Create('c:\my documents\my application\samples\wm_copydata.scr');
(*実際にスクリーンセーバに文字を送る*)
fWMCopyDataSvr.SendData('送る文字列');
などと実行するだけでこのスクリーンセーバが組み込まれて、アプリケーションが発した文字列がスクリーンセーバ上で表示されます。
Delphi 5/C++ Builder 5で動作確認しています。
利用・配布・改変に当たって、特に連絡する必要はありません。
- KsWnInet
コンポーネントではありません。ソースファイルをDelphiのライブラリフォルダ、または作成するアプリケーションと同じフォルダなどにおいてください。C++ Builderの場合はプロジェクトにこのソースファイルを追加してください。
Inet.pasのTClientSocket利用版です。WinInet APIにはInternetReadFileというのがありますが、これはIEのオフライン状態に依存して使用不能になってしまったり、途中で止めたくても止められないという不都合があるとか、様々なハンドルを要求するので使い方が煩雑なので、自前でWinSockを使ってデータを取り込むユニットを作成しました。内部的にはClientSocketを生成し、ClientSocketのイベントでテキストデータを送受信するものです。InternetReadTextFileを呼ぶだけでテキストデータが手にはいるので、InternetReadFileよりも100倍使いやすいと思います。
ちなみにRFC一応目を通して作っていますが、目に余る(?!)不備/手抜きがあればご一報ください
Proxyにも対応させました。またDelphi-ML:66515投稿のソースコードはHostヘッダを誤って送信している問題がある(Proxyを使わない場合は実害はありませんが、明らかなRFC違反です)ので、こちらに差し替えていただくようお願いします。
その他、RefererやCookieなどのヘッダを自前で追加して送信することもできます。詳しくはサンプルプログラムをご覧ください。
Delphi 5/C++ Builder 5で動作確認しています。
利用・配布・改変に当たって、特に連絡する必要はありません。
- TStringGridIO
Delphi/C++ Builder付属のStringGridコンポーネントにはデータの入出力機能を持たないため、実験データなどをテキストファイルへ入出力する際やクリップボードなどを介して他アプリケーションとやり取りするたびに処理コードを書かなければなりません。そこで、手間を省くためにこのコンポーネントを作成しました。
このコンポーネントで可能な動作は以下の通りです。
・StringGridの中身をテキストファイルで保存。(SaveToFileメソッド)
・StringGridの中身にテキストファイルを読み込む。(LoadFromFileメソッド)
・StringGridの中身をHTML表形式で保存。(SaveToHTMLメソッド)
・StringGridの中身をクリップボードに出力。(CopyToClipboardメソッド)
・StringGridの中身にクリップボードから読み込む。(PasteFromClipboardメソッド)
・StringGridの中身をExcel97に直接出力。(SendToExcelメソッド)
・StringGridの中身を消去。(Clearメソッド)これはおまけです。
残念ながら印刷機能はサポートしておりません。伊藤義弘さんの作成されたStringGridPrinterコンポーネントがございますので、こちらを併用いただくことをお勧めします。
ver 0.2はCSV形式のサポート。
ver 0.3 new!(2002/7/3)
読み込むデータに合わせてColCount/RowCountを伸縮可能にした(Stretchプロパティの新設)。Stretch=falseの場合も、最終列の入力の仕方を常識的な方法にした。Clearメソッドを高速化したつもり。
Delphi 3.0/C++ Builder 2.0以上で動作すると思います。現行バージョンはDelphi5で動作確認しています。
Delphi2.0/C++ Builder 1.0をお持ちの方は、最初の"ComObj"を"ShlObj"に書き直してください。
Excel95への出力は一部ソースを書き直せば使えるはずですが、当方Excel95を利用できる環境がないので確認できません。
利用・配布・改変に当たって、特に連絡する必要はありません。
- TKsWave
ウェーブフォームを手軽に扱うためのコンポーネントです。ファイルの読み込み、録音、再生、新規作成から、サンプルごとのデータの取得変更が簡単にできます。
なお、ver 0.04からDelphiやC++ Builderのヘッダファイルのミスを自分で再定義することで回避しました。Standard/Desktop版をお持ちの方でも問題なくインストールできます。
利用・配布・改変に当たって、特に連絡する必要はありません。
ver 0.06 new!(1999.7.17)1チャンネル8ビットの場合、sizeプロパティが奇数になることがありますが、奇数バイトのファイルを保存できないバグを修正しました。石田さんご報告をありがとうございました。
サンプルプログラムを添付しています。なお、サンプルプログラムのバイナリは単体でダウンロードできます。DelphiやC++ Builderをお持ちでない方でもお試しいただけます。
- TShellAboutDialog
メモ帳やワードパッドなどでは、共通の「バージョン情報」のダイアログが表示されます。このダイアログはShellAboutというWindowsAPIを使うことによって表示できます。
TShellAboutDialogは、DelphiからこのAPIを簡単に呼び出せるコンポーネントです。
利用・配布・改変に当たって、特に連絡する必要はありません。
2004/2/12 非常に遅ればせながら(?)ファイルのバージョン情報を直接ファイルから読み書きするように変更したので、設計時に手入力する必要がなくなりました。レイアウトが気に入らない方は、ソースコードに手を入れてください。
- TFontComboBoxEx
「ワードパッド」や「Microsoft Word」などで使われている「フォントを指定するコンポボックス」です。このコンポーネントはIvan Azic氏作FontComboBoxを改良および拡張したものです。リッチテキストエディタなどにどうぞ。
利用・配布・改変に当たって、特に連絡する必要はありません。
2002.12.14 update!
設計時にフォントを設定できるようにする、日本語フォントのみ/日本語以外のフォントのみ表示など、改善点いろいろ。詳しくはreadme.txt参照
河村のページに戻る
susumuk@fa.mbn.or.jp
推奨されたHTML文書に仕上げるため、
HTMLパーサでチェックしました。HTML4.0対応のすべてのブラウザで正常にご覧いただけます。
HTML4.0に対応していないブラウザでは、表組みが読めなかったり、フォントの色や大きさが変わらないことがあります。