喫茶XRAYトップページ

[▲前のスレッド]

[3064] リージョンコンポーネントを使われている方は見えませんか?返信 削除
2010/2/11 (木) 15:48:59 KSCHomePage
リージョンコンポーネントを使われている方は見えませんか?

KSCです。

変わった形のメインフォームを作りたくて、フォームをリージョンするコンポーネントを
探しています。

【今までの経過】
 ・サイトでの検索において、
  http://delphiholic.hopeseeds.com/?day=20070826 にて
  「RgnComp」や「formshape」「formrgn」の紹介
  「RgnComp」を試したかったのですが、ソースが見つからず...。
  「formshape」って、tmssoftwareのやつだと思うけどバルーンにしか化けないような...。
  「formrgn」のソースは、見つけたのでインストールを試みる事にしました。
 ・「formrgn」のインストールについて、
  v.04.05.99 → (1)
   http://www.delphikingdom.com/asp/viewitem.asp?catalogid=83
  v.21.06.99 → (2)
   http://torry.net/pages.php?id=94
 ・(1)をDelphi2007へインストールしようとしたら旧バージョン用だったので、
  「DsgnIntf」で、引っかかりました。
    ↓
   http://support.codegear.com/article/37621 を参考にして、
   ☆宣言文のユニット名「DsgnIntf」 を 「DesignIntf」 と 「DesignEditors」に変更。
   ☆「Requires」に「designide.dcp」を追加。
    ↓
   インストール成功!
 ・(1)より(2)の方が日付が新しかったので、Delphi2007へ再インストール。
  (1を削除後に新たに2用のパッケージを作成)
    ↓
   (1)と同様に修正し、インストールは成功したが、
   そのコンポーネントを使った簡単なアプリをコンパイルしようとすると、
   「[DCC エラー] DesignEditors.pas(610): F1026 ファイル 'Proxies.dcu' が見つかりません」
   とエラー表示されてします。

【質問】
・'Proxies.dcu' が見つかりません と言うエラーを回避する方法を知りませんか?
・皆さんはリージョンコンポーネントを使っていますか?
 使っている場合、どのようなものか教えてくれませんか?

長文で申し訳ありません。


[3065] Re:リージョンコンポーネントを使われている方は見えませんか?返信 削除
2010/2/11 (木) 17:11:14 Mr.XRAY
▼ KSCさん,

添付の図のやつですよね.

> ・'Proxies.dcu' が見つかりません と言うエラーを回避する方法を知りませんか?

これ出ます.
理由は,コンポーネントの提供方法にあるんですが.
ちょっと説明が難しいです.調べてみないと分かりません.

Delphi5だか6からかは忘れましたが.プロパティエディタがある
コンポーネント(オブジェクト・インスペクタでクラス型とかを編集可能
にしたもの)は,コンポーネント本体と登録(プロパティエディタ)を別ユニット
にしなければいけなくなったんです.

拙作コンポの例だと
plPrev.pas    コンポーネント本体
plPrevReg.pas プロパティエディタとコンポ登録用ユニット

DesignIntfとDesignEditorsはその登録(プロパティエディタ)のユニットに
ussesしないと'Proxies.dcu' が見つかりませんのエラーがでます.

http://torry.net/pages.php?id=94
はDelphi4までなので分離してないためですね.

どのファイルをインストールしたのでしょう.
それが分かれば多少は,お役に立つかも知れません.


[3066] Re2:リージョンコンポーネントを使われている方は見えませんか?返信 削除
2010/2/11 (木) 17:15:21 Mr.XRAY
> それが分かれば多少は,お役に立つかも知れません.

むむむ.
これ,dfmファイルがありますね.
これはちょっと面倒な感じがします.
これはフォームファイルで,これをIDEで設計時に表示するので,
この部分もプロパティエディタのユニットにコードを移動させる
必要がありますから.

(^^;

[3067] Re3:リージョンコンポーネントを使われている方は見えませんか?返信 削除
2010/2/11 (木) 17:36:53 KSCHomePage
KSCです。

この短時間に多くの情報を頂き、ありがとうございます。
インストールは、添付の図のようにファイル追加しました。

> これ,dfmファイルがありますね.
> これはちょっと面倒な感じがします.
> これはフォームファイルで,これをIDEで設計時に表示するので,
> この部分もプロパティエディタのユニットにコードを移動させる
> 必要がありますから.


フォームファイルがあると、そんなに厄介なのですか?


[3068] Re4:リージョンコンポーネントを使われている方は見えませんか?返信 削除
2010/2/11 (木) 18:19:55 Mr.XRAY
▼ KSCさん

> フォームファイルがあると、そんなに厄介なのですか?

厄介ですね (^^)

>変わった形のメインフォームを作りたくて、フォームをリージョンするコンポーネントを
>探しています。


簡単のでしたら,自分で作成してしまうのも手かも知れません.

// 逆三角形のフォーム
procedure TForm1.FormCreate(Sender: TObject);
  var
    Rgn1  : HRgn;
    pntXY : array [0..3] of TPoint;
  begin
    { 多角形の作成 }
    pntXY[0].x  :=  0;
    pntXY[0].y  :=  0;
    pntXY[1].x  :=  width div 2;
    pntXY[1].y  :=  height;
    pntXY[2].x  :=  width;
    pntXY[2].y  :=  0;
    pntXY[3].x  :=  0;
    pntXY[3].y  :=  0;
    { リージョンの割り当て }
    Rgn1  :=  CreatePolygonRgn(pntXY, 3, Winding);
    SetWindowRgn(Handle, Rgn1, True);
end;


複雑な形のはパスを使うしかないです.

これは文字の輪郭を切り取っています.
http://mrxray.on.coocan.jp/Halbow/VCL01.html#VChap1-7

ウィンドウを四角以外の形にする
http://www.geocities.jp/asumaroyuumaro/program/tips/setwindowrgn.html

Bitmapから画像の形のリージョンを得る
http://www.geocities.jp/asumaroyuumaro/program/tips/createregionfrombitmap.html


丸いフォームとか...

unit SetWindowRegionU;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure FormPaint(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure WMNCHitTest(var Msg: TWMNCHitTest); message WM_NCHITTEST;
  end;

var
  Form1: TForm1;
  OriginX, OriginY: Integer;    // holds the center coordinates of the window

implementation

uses Math;

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
var
  NewShape: HRGN;    // holds the region
begin
  {create a circular region}
  NewShape := CreateEllipticRgn(GetSystemMetrics(SM_CXBORDER)+3,
                                GetSystemMetrics(SM_CYCAPTION)+3,
                                GetSystemMetrics(SM_CXBORDER)+103,
                                GetSystemMetrics(SM_CYCAPTION)+103);

  {determine the center of the circle. this is used when drawing the numbers
   of the clock}
  OriginX := (GetSystemMetrics(SM_CXBORDER)+90) div 2;
  OriginY := ((GetSystemMetrics(SM_CXBORDER)+90) div 2)-3;

  {set the window region to the circular region. this will create
   a round window}
  SetWindowRgn(Handle, NewShape, TRUE);
end;

procedure TForm1.FormPaint(Sender: TObject);
var
  iCount: Integer;                      // a general loop control variable
  Hour, Minute, Second, MilSec: Word;   // used to decode the time
begin
  {set the background mode to transparent for drawing text}
  SetBkMode(Canvas.Handle, TRANSPARENT);

  {draw a highlighted bevel}
  Canvas.Pen.Color := clWhite;
  Canvas.Pen.Width := 2;
  Arc(Canvas.Handle, 1, 1, 98, 98, 98, 1, 1, 98);

  {draw a shadowed bevel}
  Canvas.Pen.Color := clBtnShadow;
  Arc(Canvas.Handle, 1, 1, 98, 98, 1, 98, 98, 1);

  {for every hour of the day...}
  for iCount := 1 to 12 do
  begin
    {...draw an hour measurement in a circular form around the window}
    Canvas.TextOut(Trunc(Sin(((360/12)*iCount)*(PI/180))*40)+OriginX,
                   Trunc(-Cos(-((360/12)*iCount)*(PI/180))*40)+OriginY,
                   IntToStr(iCount));
  end;

  {retrieve the current time in a useable format}
  DecodeTime(Now, Hour, Minute, Second, MilSec);

  {translate military hours to civilian hours}
  if Hour>12 then Hour := Hour-12;

  {draw the hour hand}
  Canvas.Pen.Color := clBlack;
  Canvas.MoveTo(50, 50);
  Canvas.LineTo(Trunc(Sin(((360/12)*Hour)*(PI/180))*30)+50,
                Trunc(-Cos(-((360/12)*Hour)*(PI/180))*30)+50);

  {draw the minutes hand}
  Canvas.MoveTo(50, 50);
  Canvas.LineTo(Trunc(Sin(((360/60)*Minute)*(PI/180))*40)+50,
                Trunc(-Cos(-((360/60)*Minute)*(PI/180))*40)+50);

  {draw the seconds hand}
  Canvas.Pen.Color := clRed;
  Canvas.MoveTo(50, 50);
  Canvas.LineTo(Trunc(Sin(((360/60)*Second)*(PI/180))*40)+50,
                Trunc(-Cos(-((360/60)*Second)*(PI/180))*40)+50);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  {repaint the form once per second}
  Repaint;
end;

procedure TForm1.WMNCHitTest(var Msg: TWMNCHitTest);
begin
  {this allows the user to drag the window by clicking anywhere on the form}
  inherited;
  Msg.Result := HTCAPTION;
end;

end.


[3069] 画像関係といえばJunkiさん返信 削除
2010/2/11 (木) 18:35:49 Mr.XRAY
> 簡単のでしたら,自分で作成してしまうのも手かも知れません.

忘れていました.
画像処理といえばJunkiさんでした.

http://blog.livedoor.jp/junki560/archives/30287059.html
の ・非矩形なフォーム(1)〜(6)と
3分で出来る非矩形フォーム ですね.


[3070] Re6:リージョンコンポーネントを使われている方は見えませんか?返信 削除
2010/2/11 (木) 18:44:59 KSCHomePage
KSCです。

情報ありがとうございます。

> 画像処理といえばJunkiさんでした.
>
> http://blog.livedoor.jp/junki560/archives/30287059.html


Junkiさんのコードを参考に自分で作ってみます。

それとサイトのトップページのニュースにあった
「Yahoo! JAPANのWeb APIの使用例 ニュースの検索」と言う
記事に飛びついたのですが、

【03_XMLデータバインディングの手順】
http://mrxray.on.coocan.jp/Delphi/plSamples/920_WebAPI_XML-RPC.htm#03

にある「XMLデータバインディング」のウィザードって、Indy10からの
ものなのでしょうか?

私は、Indyを使った事が無いのでRAD Studio2007のインストール時のままなので
Indyのバージョンは「9」になっています。

やはりバージョンアップが必要でしょうか?

[3071] XMLデータバインディング返信 削除
2010/2/11 (木) 18:52:19 Mr.XRAY
▼ KSCさん

> 「Yahoo! JAPANのWeb APIの使用例 ニュースの検索」と言う
> 記事に飛びついたのですが、


おおっ,興味を持ってくださる方が.
実は,郵便場号の[921]を前にテストしていたのですが,今回,あの有名な
某掲示板で他の方式の質問があったので,それを整備.
うん? 待てよ.Yahoo! のも... というわけです.

> にある「XMLデータバインディング」のウィザードって、Indy10からの
> ものなのでしょうか?


これは,DelphiのXML関係の機能ですね.
確かPro版ではDelphi2007からだったと思います.


[3072] Re:XMLデータバインディング返信 削除
2010/2/11 (木) 19:03:35 KSCHomePage
KSCです。

> > 「Yahoo! JAPANのWeb APIの使用例 ニュースの検索」と言う
> > 記事に飛びついたのですが、
>
> おおっ,興味を持ってくださる方が.


マスターのおかげで、色々な開発の入り口を覗かせて頂いています!!

> > にある「XMLデータバインディング」のウィザードって、Indy10からの
> > ものなのでしょうか?
>
> これは,DelphiのXML関係の機能ですね.
> 確かPro版ではDelphi2007からだったと思います.


すいません。
「その他」を選択した際には、ツリー表示されていなかったのですが、
「カスタマイズ」を選択したら、ありました。

これって何で「その他」選択した際に出てないのでしょうかね?


[3074] Re2:XMLデータバインディング返信 削除
2010/2/11 (木) 19:27:19 Mr.XRAY
▼ KSCさん

> 「その他」を選択した際には、ツリー表示されていなかったのですが、
> 「カスタマイズ」を選択したら、ありました。


あらっ? 何ででしょう.
う〜ん.


[3073] Re:XMLデータバインディング返信 削除
2010/2/11 (木) 19:09:28 Mr.XRAY
別にXMLのデータバインディングをしてPasファイルを作成しなくても
XMLのツリーノードをたどればいいんですけどね...
(Web APIで得られるXMLの構造は比較的簡単なので)

http://mrxray.on.coocan.jp/Delphi/plSamples/921_WebAPI_REST_Postal.htm#06

では,なぜ使ったかというと,
せっかくあるので,使いたかったからです.
Pro版にはなかったもんですから (^^;


[3100] XMLデータバインディング(私の勉強不足)返信 削除
2010/2/17 (水) 10:45:13 KSCHomePage
KSCです。

「その他」メニューで「XML」がツリー表示されないと書き込みましたが、
新規プロジェクトまたは既存プロジェクトが開かれている状態でないと
「XML」がツリー表示されないのですね。

私の勉強不足でした!!

これでマスターの記事を参考にしながら「Yahoo API」に触れてみようと思います。

[3101] 新規作成起動しています返信 削除
2010/2/17 (水) 17:21:22 Mr.XRAY
▼ KSCさん

> 新規プロジェクトまたは既存プロジェクトが開かれている状態でないと
> 「XML」がツリー表示されないのですね。


なるほど.これは気づきませんでした.失礼!!
いつも新規作成で起動してしまっているものですから.

http://mrxray.on.coocan.jp/Others/StartFormD2007.htm


[3075] Re:画像関係といえばJunkiさん返信 削除
2010/2/11 (木) 19:37:41 TS
▼KSCさん

いつも面白い情報ありがとうございます。

▼ Mr.XRAYさん

このコンポーネントは既に分離されていますので、
簡単にDelphi2010にインストールされました。

unit FormRgn;

  uses Windows,Messages,SysUtils,Classes,Graphics,
  Controls,Forms,Dialogs,{DsgnIntf,}Menus,
  {RgnEdit,}ExtCtrls,Math;
 
procedure Register;
  begin
    RegisterComponents('My Controls',[TFormRegion,TCaptionRegion,TTextExtRgn,TPictExtRgn,TMenuHotSpot,TSystemButton,TCaptionText,TFRManager]);
    //TS
    //RegisterPropertyEditor(TypeInfo(string),TRegionComp,'Region',TRegionProperty)
  end;

unit RgnEdit;

 procedure Register;
 implementation

 procedure Register;
  begin
   RegisterPropertyEditor(TypeInfo(string),TRegionComp,'Region',TRegionProperty)
  end;

以上です。


[3076] Re2:画像関係といえばJunkiさん返信 削除
2010/2/11 (木) 20:02:04 Mr.XRAY
▼ TSさん

> このコンポーネントは既に分離されていますので、
> 簡単にDelphi2010にインストールされました。


ありゃ,そうですか.
確認不十分でした.大抵Regという名前がついているのにないので...
インストールしてみようと思ったのですが,面倒そうなので...

RgnEditというのがそうだったんですね.(^^;


[3077] 不定形リージョンコンポーネント返信 削除
2010/2/11 (木) 20:42:23 Mr.XRAY
ハハハッ.インストールしようとしたら.
「FormRgn」が他のパスからも見つかりました.
確かにありました.
まっ,何となく付けたくなる名前ですからね.

そのReadme.txtからの抜粋です.転載OKだそうですので添付します.
作者のサイトは

http://kova.la.coocan.jp/

なんですが,現在はブログで
http://borland-maniacs.cocolog-nifty.com/borlandmaniacs/
http://kova.la.coocan.jp/blog/

-------------  ここから ----------------------------------
不定形リージョンコンポーネント Ver.1.1

■ 不定形リージョンコンポーネントとは?

 Windows95やNTには四角形だけではなく円や多角形などのウインドウを作る機能
  が備わっています。この機能を利用して、Bmpファイルからさまざまな形のウイ
  ンドウを作るコンポーネントです。
 デスクトップアクセサリを簡単に作れるように設計されています。

-------------  ここまで ----------------------------------

いったん中止とします.

■添付ファイル fomrgn11.lzh

[3078] Re:不定形リージョンコンポーネント返信 削除
2010/2/11 (木) 23:44:38 TS
▼ Mr.XRAYさん
> 「FormRgn」が他のパスからも見つかりました.

私の試したのは
http://torry.net/pages.php?id=94
のFormRgn.pasです。

同じ名前ですが、違う物の様ですが。


[3079] Re2:不定形リージョンコンポーネント返信 削除
2010/2/12 (金) 08:58:21 Mr.XRAY
▼ TSさん

> 同じ名前ですが、違う物の様ですが。

別ものです.
http://torry.net/pages.php?id=94
をインストールしようとして見つかりました.



[3080] Re2:画像関係といえばJunkiさん返信 削除
2010/2/12 (金) 09:51:45 KSCHomePage
TSさん、お世話になっています。
KSCです。

> いつも面白い情報ありがとうございます。

いつも質問ばかりで大変、恐縮です!!

> このコンポーネントは既に分離されていますので、
> 簡単にDelphi2010にインストールされました。


修正箇所を試しました。
無事にインストールでき、そのコンポを使ったアプリも
「Proxies.dcuが見つかりません」と言うエラーも出ずに実行できました。

テストアプリの実行イメージを添付しておきます。

ですが、「formrgn」のサンプル(私はカエルのサンプルが好きです。)のように
きれいにマスクできないので、もうちょっと調整してみようと思います。
(ブルーカラーがきれいに隠せていない!)

カエルのサンプルは、v.04.05.99のソース内で、v.21.06.99には付いていなかったような...
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=83


[3081] Re3:画像関係といえばJunkiさん返信 削除
2010/2/12 (金) 14:35:28 Mr.XRAY
▼ KSCさん

> 修正箇所を試しました。
> 無事にインストールでき、そのコンポを使ったアプリも
> 「Proxies.dcuが見つかりません」と言うエラーも出ずに実行できました。


おおっ,バッチグーですね(ふっ古い!!)
TSさん流石.
KSCさんがOKなので,私はインストールやめます.
使う予定もないし...

> テストアプリの実行イメージを添付しておきます。

後はいろいろいじくるだけですね.
あまり凝ると,フォームなんだか,デスクトップの画像なんだか...


[3082] Re3:画像関係といえばJunkiさん返信 削除
2010/2/12 (金) 14:40:55 Mr.XRAY
> いつも質問ばかりで大変、恐縮です!!

私も結構楽しんでいます.(失礼!!)


[3083] Re4:画像関係といえばJunkiさん返信 削除
2010/2/12 (金) 15:59:04 TS
Cartoon のHorAlign,VertAlignのプロパティを
raSourceに変更するといいみたいです。

[3084] Re5:コンポーネントのバージョン返信 削除
2010/2/12 (金) 19:51:36 TS
この記事を見られてコンコンポーネントをインストールしょうと
される方がおられましたら。

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=83

からの物をダウンロードされたら、Units567のフォルダーがあります。
これが一番新しいものです、ご注意下さい。

KSCさんの最初の説明でこれはダウンロードしなかったので
分かりませんでした、こちらは既にDelphi4以降Delphi2007まで
RgnEdit.pasで通常のインストールができると思います。

Delphi2009,Delphi2010では少し修正が必要です。
例のStringをAnsiStringへ、CharをAnsiCharへ
あとエラーが出るところを適宜修正です。


[3085] 持ってけ!! 泥棒!!返信 削除
2010/2/13 (土) 19:49:04 Mr.XRAY
▼ TSさん

> この記事を見られてコンコンポーネントをインストールしょうと
> される方がおられましたら。


いいですねぇ.
参考になりますよね.
尻切れトンボではなく,こうした情報があれば,必ず参考になる方が
いるものです.

「持ってけ!! 泥棒!!」
じゃないけど.情報はどんどん持っていってもらいたいものです.
また,提供もして欲しいですけど...


[3087] Re6:コンポーネントのバージョン返信 削除
2010/2/13 (土) 21:09:03 KSCHomePage
KSCです。

> からの物をダウンロードされたら、Units567のフォルダーがあります。
> これが一番新しいものです、ご注意下さい。


このバージョンの「FormRGN.pas」は、
unit FormRgn;
{ *************************************************
  *            FormRgn library 04.05.99           *
 ・
 ・

で、v.21.06.99の「FormRGN.pas」は、
unit FormRgn;
{ *************************************************
  *            FormRgn library 21.06.99           *
 ・
 ・

となっていたのですが、
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=83
の方が新しいのでしょうか?

「FormRGN.pas」で判断している私は、安易過ぎるでしょうか?

[3086] Re5:画像関係といえばJunkiさん返信 削除
2010/2/13 (土) 21:01:37 KSCHomePage
TSさん、こんばんは。
ちょっとワインを飲んでいい気分のKSCです。

> Cartoon のHorAlign,VertAlignのプロパティを
> raSourceに変更するといいみたいです。


テスト結果を連絡頂きありがとうございます。

はい。私も色々調整してHorAlign,VertAlignのプロパティをraSourceに変更する
所まではたどり着けました。
(書き込みが遅くなって申し訳ありませんでした。)

ただ、画像をPhotoShopで加工した関係で微妙な色の調整に手間取ってしまいました。
(高機能な機能を持ったソフトがアダになりました。)

本当にマスターといい、TSさんといい、面倒見の良いご近所さんのようで
有難い限りです!!

すいません。多少、酔っ払っているため、例えが適切ではないかも?


[3088] Re6:画像関係といえばJunkiさん返信 削除
2010/2/13 (土) 23:26:05 TS
▼ Mr.XRAY
> 参考になりますよね.
考えに考え抜いて分からずに、結局マスターのところに有ったんだと
言う事が何回かあります、いつもお世話になります。

▼ KSCさん
> ちょっとワインを飲んでいい気分のKSCです。
私は、今日はちょっと飲み過ぎて帰って来て頭が痛いです。

>FormRGN.pas」で判断している私は、安易過ぎるでしょうか?

それでいいと思います、これのファイルサイズが大きくて
日付の新しいの物が新しいバージョンと言う事になります。

コンポーネント数10個で画像の合成ができる物
TGlassRigion,TMacrosExtRgnが加わった物が新しいものです。

上記で判断して下さい。

私のインストールした物はFormRgn library 04.05.99です。


[3089] イメージを載せます!!返信 削除
2010/2/14 (日) 00:20:20 KSCHomePage
KSCです。

フォーム用のイメージを作成し、アプリで実行した状態を載せておきます。

「センス!ね〜っ!」「だっせ〜っ!!」とPC画面の向こうから多くの
声が聞こえてくるようですが、デザイナーでない私が作ったイメージですので
その辺は勘弁して下さい!!

背景の黒色は、マスクがかかっているのが分かるように付けてあります。

中央の白枠の中にメニュー用コンポーネントを配置しようと考えています。

それでは。

[3090] Re:イメージを載せます!!返信 削除
2010/2/14 (日) 08:31:29 Mr.XRAY
> 「センス!ね〜っ!」「だっせ〜っ!!」とPC画面の向こうから多くの
> 声が聞こえてくるようですが、デザイナーでない私が作ったイメージですので


うっ.返事に困ってしまいます.
「そんなことないですよ」と言っておきます(笑)


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82