DelFusa Blog 総本山

プログラミングの話題とかです。

NEW | PAGE-SELECT | NEXT

≫ EDIT

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

| スポンサー広告 | --:-- | comments(-) | trackbacks(-) | TOP↑

≫ EDIT

コンポーネントをインストールせずに使う方法、再び


  ∧,,∧  フーーー
  ミ,,゚ 3 ゚彡 
  ミ つ旦)~~
~と,,,~),,~) 


さてさて、TurboDelphiとD6Perと無料の環境を比べて
TurboDelphiのコンポーネントインストールできない制限についての騒動も
落ち着いたり、時々盛り上がったりする
こともあったりなかったりです。

そういうときにいつもみれるように
テクニック公開すりゃよかったのですが
完全にタイミングを逸してますが
コンポーネントインストールせずに使う方法テクを
公開しておきます。

コンポーネントをインストールせずに使う方法


もうTurboDelphiが出てから1年くらいたつんじゃないの?
もっとだっけ?なんとまあ、遅い!

ニーズを逃しっぱなしで、マッタリボチボチなうちのブログです。


TurboDelphiでも外部コンポーネントを
IDEにインストールせずに、こうやって使えば、制限は全く気にならない。
このテクつかって、少しコードを多めに書いて
コンポーネントを動的生成すればいいだけじゃないかい。

むしろ、Pro版つかっていても
IDEにコンポーネントをインストールする方が
めんどくさいような気もしてきます。


一応、元々はこのブログ内の過去記事でも扱っているんですが

DelFusaBlog コンポーネントをインストールせずに使う方法

DelWikiの中の人が元コードを精錬しなおしてくれています。
ありがとうございます。
変数名や処理順番をちょっと漏れ好みにかえました。

ブログ元記事にでてくるCreateCloneだと、
オブジェクトインスペクタで設定したイベント部分の転送がうまくいかないのと
元のコンポーネントソースを変更する必要があったりするので
ChangeComponentの方が、エレガントでエクセレントです。

元記事の「とっさん」さんのコードも
試してみたのですが、
どこかメモリが壊れているみたいで時々エラーが出ているようです。
try...finallyの使い方も勘違いされていらっしゃるようです。
A.Create; try ... finally A.Free; end;ではなく
try A.Create; ... finally A.free; end;になっている。
調査などは見送ります。

try finally に関しての理解はDelWikiがよいでしょう。
DelWiki - 資料/try...finally
非常に興味深い読み物になってます。


さて、元コンポーネントソースをいじって
CreateCloneを実装したい場合は
そのChangeComponentを使ってこうすればいいです

constructor .CreateClone(Original: TMyButton);
begin
Self := ChangeComponent(Original, TMyButton) as TMyButton;
end;

そしてこんなことができます。

Button1 := TMyButton.CreateClone(Button1);
//これと同じです、Button1 := TButton(ChangeComponent(Button1, TMyButton));
TMyButton(Button1).MyProperty := 'テスト';


コンポーネントインストールの面倒さから解放されて
プロジェクト毎にオリジナルコンポーネントを使えるコーディング方法。
よくありません?

結構、漏れはそういう開発スタイル。好き。


  ∧,,∧   プハァ~
  ミ,,゚Д゚ミ =3 
  ミ つ旦)~~
~と,,,~),,~) 


いやあ、それにしても某所さん
デザイン変わりすぎの、更新されまくりすぎです。素敵。

うちも更新がんばりますよ!
スポンサーサイト

| 未分類 | 01:30 | comments:2 | trackbacks:0 | TOP↑

COMMENT

みんな の プロフィールは、アクセスアップをお手伝いするサイトです。
http://blog.livedoor.jp/mp_1mpro/


より多くのひとに貴方のブログを見てもらえます。

| みんな の プロフィール | 2008/01/16 13:49 | URL | ≫ EDIT

ちぇっっ、
せっかくたくさん更新して、、、お返事いただけたコメントが宣伝かぁ~~

DelFusa Floor、テクニック。
たくさん書いたのでよろしくね。

| ミ・д・彡 | 2008/01/16 23:45 | URL | ≫ EDIT















非公開コメント

TRACKBACK URL

http://delfusa.blog65.fc2.com/tb.php/100-be862f41

TRACKBACK

PREV | PAGE-SELECT | NEXT

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。