カテゴリ:プログラミング( 102 )
[コンポーネント] MutliStringGrid v1.2.0
MultiStringGrid … v1.2.0 ('06/03/20)

 StringGridを拡張したGrid
 ・マルチセレクトON時には、[Ctrl]を押すことでセルの複数選択が可能
 ・複数セル選択時には、[TAB]によりセル間フォーカスを移動
 ・自動編集モードON時には、キー入力で編集モードを起動
 ・自動調整モードON時には、セル調整領域をダブルクリックによりセルサイズを自動調整

 [パブリック変数]
 ・SelectedCells … TStringList型、『1,2』のように選択セルを文字列で格納
 ・SelectedCols … TIntegerList型、選択行番号を格納
 ・SelectedRows … TIntegerList型、選択列番号を格納

 [プロパティ]
  ・ExtendedOptions
   goMultiSelect … マルチセレクトON/OFF
   goAutoEdit …… 自動編集モードON/OFF
   goAutoSizing … 調整領域ダブルクリックでセルサイズを自動調整ON/OFF

  ・SelectedBrushColor … 選択範囲の背景色
  ・SelectedFontColor … 選択範囲の文字色

 [メソッド]
  ・SelectCol … 指定列の選択
  ・SelectRow … 指定行の選択
  ・SetFocusCell ……… 指定セルにフォーカスする
  ・AdjustColsWidth … セルの内容に応じて列幅を自動調整
  ・AdjustRowsHeight … セルの内容に応じて行高を自動調整
  ・Adjustment ………… セルの内容に応じて列幅・行高を自動調整

 [イベント]
  ・OnClickFixed …… 固定セルをクリックした際に発生
  ・OnDblClickFixed … 固定セルをダブルクリックした際に発生
  ・OnEditEnd ………… セルの編集終了時に発生
  ・OnFocusCell ……… TABによるフォーカス移動イベント

 【バージョン履歴】
  v1.2.0 ('06/03/20)
   1.機能追加「手続き:SetFocusCell」指定セルをフォーカス
   2.機能追加「イベント:OnClickFixed」固定セルクリック
   3.機能追加「イベント:OnDblClickFixed」固定セルダブルクリック
   4.機能変更 … ExtendedOptionsにgoAutoSizingを追加し、自動調整機能は任意利用とした
   5.名称変更「手続き:AdjustCells → Adjustment」
   6.機能削除 … KeyDownイベントでDeleteキーによるセル内容削除機能
[PR]
by yozda | 2006-03-21 00:25 | プログラミング | Trackback | Comments(0)
[覚書] OutputDebugString を利用してイベントログを収集
Delphi の Professional&Enterprise版なら
表示 > デバッグ > イベントログ で API の OutputDebugString で出力した文字列を拾える。

また、OutputDebugStringでデバッグ情報を出力するようにしておけば、
デバッグモニタツール等で実行時にデバッグ情報の監視が出来る。


Delphiを2年近く使ってきてはじめて知った…。
[PR]
by yozda | 2006-02-01 02:15 | プログラミング | Trackback | Comments(0)
[ツール] イベントチェッカー
イベントチェッカー v1.1

おんぷ村で配布している「DebugUnit」を利用したツール。
DebugUnitも自分用にIPアドレス、ログインIDを出力するようにカスタマイズした。

コンポーネント毎に主に利用するイベントで得られる引数をメモ帳に出力するツール。
MultiStringGrid作成の際に、StringGridのイベントがどの順で発生するかの確認に利用した。


興味あれば適宜改造しご利用ください。

a0021757_217249.gif

[PR]
by yozda | 2006-01-27 02:22 | プログラミング | Trackback | Comments(0)
参考書籍 「Delphiコンポーネント設計&開発 完全解説」
自作コンポーネントの開発時には、是非読んでおきたい一冊。
国内のDelphi第一人者のひとりである、中村 拓男氏 著。(正式サイト)

かなりの良本のようで、どこの本屋・サイトを見ても在庫なしになっている。
電子書籍版も人気のようで、ソフマップではコンピュータ関連で一番人気。


今回、MultiStringGridコンポーネントを作成したが、
独自の方法で実現した訳だが、その方法が果たしてベストだったかどうか正直自信がない…。

出来れば書籍版を手に入れたいのだが、難しいだろうな…。
もうすこし探してみてどうしても見つからないようだったら電子書籍を考えよう。
印刷できないけど…。
-----

'06/01/23

近所の大学の図書館に所蔵されているようなので、
今週末に閲覧しに行く予定。
-----

'06/01/26

仕事があるので、行かれなくなりました。

-----

'06/02/25

仕事がひと段落ついたので、ようやく閲覧にいけました。
中村氏の「Delphi Graphic Secrets―Know‐how & Libraries」もあったので、
両冊ともコピーさせてもらいました。
ちなみに、Graphic SecretsのCD-ROM内容は上記URLでダウンロードできます。

コピーに時間・お金が結構かかったけど、貴重な資料が手に入ってホクホク。
両方ともオークション等では定価倍以上の値段がついているし、
電子書籍で購入しても印刷できないですから。
a0021757_21345343.jpg

[PR]
by yozda | 2006-01-22 02:28 | プログラミング | Trackback | Comments(0)
クラス 「TIntegerList」 … Integer型格納用リスト
TIntegerList … v1.0.0 ('06/01/19)

Integer型の値を、TStringListのように格納するクラス。
TListを継承して作成しています。

MultiStringGridの選択列・選択行の格納に利用しています。
配列の要素番号などの保持に利用すると便利。

TIntegerList.IndexOf(i : Integer) の戻り値を見れば、
その値が格納されているかどうか判定できます。
格納している場合はインデックス、格納していない場合は-1を帰します。
[PR]
by yozda | 2006-01-20 01:18 | プログラミング | Trackback | Comments(0)
コンポーネント 「MutliStringGrid」 バージョンアップ
MultiStringGrid [ソース&サンプルプログラム付] … v1.1.0 ('06/01/19)

  v1.1.0 ('06/10/18)
   1.Integer格納クラス、TIntegerListを追加
   2.SelectedCols,SelectedRowsをTStringListからTIntegerListに変更
   3.選択範囲の文字色を指定できるように変更
   4.DrawCellイベントのInheritedの位置を変更
[PR]
by yozda | 2006-01-20 01:06 | プログラミング | Trackback | Comments(0)
コンポーネント 「MultiStringGrid」 … 複数のセルを選択可能なStringGrid
MultiStringGrid [ソース&サンプルプログラム付] … v1.0.0 ('06/01/13)

StringGridを機能拡張したGrid
・マルチセレクトON時には、[Ctrl]を押すことでセルの複数選択が可能
・複数セル選択時には、[TAB]によりセル間フォーカスを移動
・自動編集モードON時には、キー入力で編集モードを起動
・セル調整領域をダブルクリックにより、選択された行高(列幅)を自動調整

[プロパティ]
・ExtendedOptions
goMultiSelect … マルチセレクトON/OFF
goAutoEdit …… 自動編集モードON/OFF

・SelectedColor … 選択範囲の色

[メソッド]
・SelectCol … 指定列の選択
・SelectRow … 指定行の選択

[イベント]
・OnEditEnd … セルの編集終了時に発生


このコンポーネントを使えば、Excel風のマルチセレクトが簡単に実現!
a0021757_213879.gif
[Ctrl]を押せば複数セルを選択可能 (緑のセルが、セレクト状態)

[PR]
by yozda | 2006-01-13 12:00 | プログラミング | Trackback | Comments(0)
[サンプル] Quoted-Printable変換 - JPEG対応
Quoted-Printable変換サンプル

選択したJPEGファイルをQuoted-Printable形式でエンコードするサンプルプログラムを作りました。
また、Quoted-Printable変換関数をユニット化しました。

ロジックの説明は、
ソース内にコメントを書いているのでそちらをご参考ください。

[開発環境]
 Delphi5 Professional (Parsonalでもコンパイル可)

a0021757_036333.jpg

[PR]
by yozda | 2005-09-08 23:55 | プログラミング | Trackback | Comments(0)
[サンプル] Quoted-Printable変換
http://yozda.hp.infoseek.co.jp/dl/del/qp.zip

テキストのみならコレでいけるはず。
説明はソースを見てちょ。たいしたことしてないから。

ただ、V602SHのvCardにはjpegをQP変換したコードが書かれることもあるから、
そこの対応はこのままじゃダメだなぁ。

[開発環境]
 Delphi5 Professional (Parsonalでもコンパイル可)
[PR]
by yozda | 2005-09-08 00:43 | プログラミング | Trackback | Comments(0)
Vodafone SHARP端末アドレス帳の編集方法
僕の携帯はVodafoneがまだJ-phone時代だったときにSHARPから発売されたSH52

最近のカメラ付携帯は画素数も増えデジカメとして代用できるし、
内蔵の画像ビューアの使い勝手もかなり向上しています。
また最近の第三世代携帯でのネット環境はかなり通信速度が向上しています。
が、
うちの会社はカメラ付携帯持ち込み禁止なので、せっかくのカメラ付携帯は社内に持ち込めません。
またパソコン・デジカメも持っているのに、携帯に何万も出したくありません。(そんなお金もない)


なので、
SH52の機能をフルに使ってみよう!

まずは、SH52にはSDメモリカードスロットがついているので、
SDカードにバックアップしたアドレス帳をパソコンで編集したいと思います。

vCard Editer はVodafone SHARP端末のアドレス帳を編集する上で、
強力なツールなのですが、いかんせんシェアウェアです。
なので、フリーソフトを駆使してアドレス帳を編集する手順を考えてみました。

この編集手順は、Vodafone SHARP端末で利用出来ると思います。


【必要なソフト】
 A.J-PHONE用 vCARD 編集ソフト
 B.簡易アドレスエディタ51
 C.vCard Editer (シェアウェアだが、体験版として利用)

【簡易手順】
 アドレス帳に登録されている電話番号・メールアドレスをパソコン上で行う手順です。

 A はアドレス帳のデータによってはエラーを出すため、A でエラーが出た場合は、
 B でアドレス帳のデータを削減します

 1. A でアドレス帳を開く
   │
   │開く途中でAがアプリケーションエラーを発生し、アドレス帳を編集できない
   │
   └→ B でアドレス帳を開き、保存。 1へ

 2. 開いたアドレス帳を編集する

【詳細手順】
 アドレス帳の電話番号・メールアドレスだけでなく、
 着信設定・メール受信フォルダ振り分け設定などをパソコン上で行う手順です
 A では、どこに何を記述すればよいのか不明瞭なので、
 C でアドレス帳の設定データの記述領域を調べます。

 1. C でアドレス帳を開き、別名で保存する (Cは体験版のため、10件しか保存されない)

 2. A で、1で作成したアドレス帳 と 元のアドレス帳を比較し、
   どこに何を記述すればよいか照らし合わせて確認する

 3. A で、メールフォルダ設定等、設定したい内容を編集する

---------------------------------------------------------------------------------------

手順が面倒なら、vCardEditerは未登録でも10件分は編集できるので、
それを繋ぎ合わせてアドレス帳を編集してもいいかも。
vCardファイル自体、エディタで編集可能なのでそんなに難しい作業じゃないです。
ただ、メモリ番号が重複しないように注意!

メモリ番号は「X-JPG-MDNO」に記載されてます。
[PR]
by yozda | 2005-02-15 00:20 | プログラミング | Trackback | Comments(0)