2010/04/28

Delphi/C++ Builder で Button でポップアップメニュー

Delphi 2010 の TButton (TCustomButton) に DropDownMenu プロパティが追加されて、ボタン→ポップアップメニューてのが、あっさり実現するのかとおもいきや Windows Vista 以降のみでしか使えない(Helpにも書いてある)
ということで
procedure TForm1.Button1Click(Sender: TObject);
begin
  with (Sender as TButton) do begin
    PopupMenu1.Popup(ClientOrigin.X, ClientOrigin.Y + Height);
  end;
end;
という風に TButton の ClientOrign を使うと、けっこう簡単に位置決めができる

SQLite の Insert で挿入した主キーを取得

SQLite の Insert で最後に挿入した主キー(AutoIncriment)を取得

lastInsertRowid

で取得できる
ライブラリによっては、GetlastInsertRowid 等になっていたりする

SQLite3 の日時の初期値

SQLite3 の日時の初期値

自動で現在の日時を入れるには、初期値を CURRENT_TIMESTAMP を指定しておけばよい

ただし、協定世界時(UTC)なので、ローカル日時を入れたい場合は、
INSERT や UPDATE で datetime('now', 'localtime') を利用

2010/04/27

Delphi/C++ Builder の TImageList へビットマップの左下を透過色に指定しつつ追加

Delphi/C++ Builder の TImageList へビットマップの左下のピクセル色を透過色に指定しつつ追加

TImageList の AddMasked メソッドを使用する際、第二引数に透過色を指定すればよいが、Canvas プロパティの Pixels を利用すると簡単に可能

左下
ImageList.AddMasked(Bitmap, Bitmap.Canvas.Pixels[0, Bitmap.Height -1]);

右下なら
ImageList.AddMasked(Bitmap, Bitmap.Canvas.Pixels[Bitmap.Width -1, Bitmap.Height -1]);

左上なら
ImageList.AddMasked(Bitmap, Bitmap.Canvas.Pixels[0, 0]);

2010/04/14

「ドコモwebメール」を使ってみる3

i-modeメールの受信

携帯への受信は、i マークが付く
携帯からの送信は「送信箱」へ


当たり前だけど、デコメールも表示される

最初に変更したい設定
設定情報(メイン画面右上) → 基本設定 → 登録情報の表示・変更 → お知らせ受信設定 を受信しない








「ドコモwebメール」を使ってみる2

「ドコモwebメール」を使ってみる2

推奨ブラウザは IE8 or Firefox3

Firefox で userContent.css をいじって id="ad" をブロックしている場合、ログイン画面が表示されない

id="ad" の定義より下に
@-moz-document domain("dwmail.jp") {
div[id="ad"]{
display :inline !important;
}
}

等を入れておくとよい
それ以外の広告については、一般的な ad5 とかなので簡単にブロック可

右の広告エリアが邪魔だという方は
@-moz-document domain("dwmail.jp") {
td[width="232px"],
div[id="RightBar"]{
display :none !important;
}

div[id="ad"]{
display :inline !important;
}
}
※広告エリアの幅が変わったら使えないけど

「ドコモwebメール」を使ってみる

2010年4月14日(水) から利用可能になった「ドコモwebメール」を利用してみた

http://cp.dwmail.jp によると、iメニューから入れと書いてあるが、朝の段階で iメニューにリンクがなかったので、携帯から http://cp.dwmail.jp/i/ へ接続して、新規アドレスの取得と、iモードメールからの転送設定が可能だった

早速PCからログインしてみる
すると、携帯のアドレスへ Webメールへのログイン通知 (最大一日一回)メールが到着、なんとも鬱陶しい

ログイン通知の有無設定は、設定画面を探した限り見つからなかった。その上送信元(From)が入っていないメールなので、フィルタに登録も出来ない。ちなみにログイン通知のメールについては、パケット代無料だそうだ


メイン画面

設定画面

2010/04/09

Delphi/C++ Builder 2010 Update4 で、TTimer コンポーネント変更

Delphi/C++ Builder 2010 Update4 で、TTimer コンポーネント変更

スレッド(ワーカースレッド)内からからメインスレッドの TTimer を操作できなくなってます
http://blogs.embarcadero.com/teamj/2010/01/21/935/

久々に手直ししたら、タイマーの Enabled が無視されていた

オートメーション経由でスレッドから、関数呼び出しが完了できなかったため
タイマーを利用していたが、逆にそっちが動くようになっていた
案件によっては、修正が必要

Delphi/C++ Builder 2010 の TThread で resume メソッド 推奨されません

Delphi/C++ Builder 2010 の TThread で resume メソッド 非推奨
代わりに start メソッドを使うべきらしい

2010/04/02

「オイルヒーターの特徴は、燃料を燃焼するわけではないため、空気が乾燥せず、また汚れにくいこと。」???

オイルヒーターの特徴は、燃料を燃焼するわけではないため、空気が乾燥せず、また汚れにくいこと。

石油やガスの方が、燃焼時に水を出すので、空気は乾燥しにくい

そもそも、一定の水蒸気量で、温度が上がるだけで飽和水蒸気量が上がるため、湿度は相対的に下がる
オイルヒーターは空気が乾燥しないというのは、どう考えても間違っている

2010/04/01

ソフトバンク2G 2010/3/31 2:00で停波

ソフトバンクの第2世代携帯電話サービスが 2010年3月31日 午前2:00で終了した

2Gサービスと 3Gサービスの契約者と基地局について計算

基地局数と契約数

54万件という数を1ヶ月で3Gへ誘導する事は難しいだろうから、一時的に、契約数は減少するものの、ユーザー2.5%のために、25%の基地局を使用していたわけで、停波によるメリットはかなり大きいのだろう


【参考文献】
TCA事業者別契約数 - 2010年2月末
携帯電話基地局免許数 - 2010年2月20日