2009-12-25

【C++/CLI】 フォームの形状を変形させる

ウィンドウズのウィンドウ(フォーム)の形状は、四角がお決まりのように思っている人もいると思いますが、そんなことはありません。Windows2000ぐらいから非四角形のフォームを作成することは可能になっていて、.NET言語ではより簡単にできるようになっています。ポイントは、
  • 任意の形状を GraphicsPathに指定
  •  GraphicsPathをFormのRegionに指定
 の2点です。任意の形状を指定するには、
  • パスの形状を表す任意の座標集合を配列に格納
  • GraphicsPath::AddClosedCurveメソッドにより座標集合を指定
となります。ただし、自由な曲線を書くというのは難しいので、GraphicsPathが持っているデフォルトの形状を利用するのが無難です。

以下の例は、AddEllipseメソッドを利用して、楕円形のパスを入手し、フォームを表示した例です。

//ボーダーをなくす(そのほうがベスト)
 this->FormBorderStyle=System::Windows::Forms::FormBorderStyle::None;

//FormのGraphicsオブジェクトの作成
 Graphics^ g = this->CreateGraphics();

//Graphicパス変数の宣言
System::Drawing::Drawing2D::GraphicsPath^ path   = gcnew System::Drawing::Drawing2D::GraphicsPath();
     
//GraphicPathに楕円の領域を指定追加
 path->AddEllipse(g->VisibleClipBounds);

//フォームのRegionにpathを設定
this->Region = gcnew System::Drawing::Region(path); 

上記の例では、FormのボーダースタイルをNONEにしています。ただ、この方法を採用すると、マウス操作によるフォームの操作ができませんから、そこは別途実装してもらうことになります。

2009-12-18

MySQLのアップグレード

研究室のLinuxマシンにインストールされているMySQLのバージョンが古かったので(ver4)、ver5にアップグレードしてみた。もともとrpmで入っていて、新しいrpmパッケージをダウンロードしてきてインストールしようとすると失敗する。。。。ふーむ。。。。というわけで、yumコマンドでやってみる。


【準備】
  • mysqldumpでバックアップはとっておく (例:$ mysqldump -u root -p -x --all-databases > mysqlbackup0912.dump)
  • 設定ファイルのバックアップもとっておく (例:cp /etc/my.cnf my.cnf.0912.bak)
【yumでアップデート】
 # yum --enablerepo=centosplus update mysql


これ一発でOKでした。依存ファイルも自動的にとってきてくれるし、yum様サイコー。

2009-12-11

もろもろバージョンアップ祭り

GWT2.0
GWT2.0が出たようです。まだインストールしてませんが、個人的に気になっているのは
  • UIBinder
  • Layoutパネルの改良
というところだろうか、、、、特に、UIBinderはインタフェース周りの開発効率が高まる可能性を感じます。ただ、こういうのって、それを理解するのに時間がかかるのがネック。学生に調べさせるのはトータルで見ると効率が悪いので、研究室では今年度はGWTは従来通りのままでいくか、、、、


Netbeans6.8
研究室のデフォルトIDEと化しているNetbeansですが、6.8になったようです。
  • J2EE6対応
  • JSF2.0対応
がメインなトピックのようだ。J2EEについては、、、、正直、勉強不足でわかりません。へー、そうって感じ。いや、軽視してるのではなくて勉強不足なだけです。JSFについては、、、GWTに出会ってしまったからもういまさらって、、、貴方にあうのが遅すぎたによ!って感じです。

Thunderbird3.0
Gmailのおかげで、すっかり出番が少なくなったThunderbirdですが、UIが変わりすぎですね。まあシンプルになったと考えればいいわけですが。なんかブラウザに限りなく近くなったな。