Delphi/Rave Report/覚え書き「01」


 最近、忙しいので忘れたときのためにメモを書こう。
 書くのはいいけど・・・・ 
でも、ここって メニューが一個しか作れないからメモにはむいてないなぁって

探すのが大変なんだよね量が増えると・・・
アクセスのデータメモ使いにくいし、
ローカルのXOOPSかHTMLにでも保存するかな・・

  えっ 関係ない言葉がおおいって だってメモだもん ショワッチ・・・

ここ更新失敗すると全部消えるしなぁ・・・ XOOPSにメモいれようかな
表示するときPC重くなるけど・・・でもデータ紛失よりましかな・・・
更新したページだけHMTLを新規に吐き出す、サイトツールのだだなのがあれば
閲覧時はサーバー不要になるし メモ帳がわりになるんだけどなぁ

では本題へ。。。コンポーネントの登録 

詳しくはこちら http://www.nevrona.com/files/rant.txt



RAVEデザイナへの登録(デザイナから登録する)
? まず、Delphiの新規パッケージを開き下記の作ったunitを追加登録して
  コンパイルする。
? ?でできた、パッケージファイル(D:My DocumentsBorland Studio ProjectsBpl
taRvJp.bpl)を
   RAVEデザイナの
  Edit -> Tool -> Preferences -> Packages -> Add
 を押して 指定し登録します。

・RAVEデザイナへの登録コマンド
  procedure RaveRegister;
  begin { RaveRegister }
    RegisterRaveGroup('JPStandard','日本 Standard Components');
    RegisterRaveComponents('JPStandard',[TRaveJpMemo]);

    RegisterRaveProperties(TRaveJpMemo,
     {Beginner}     '',
     {Intermediate} '',
     {Developer}    '',
     {Hidden}       '');
  end; { RaveRegister }

・デザイナへの描画(印刷とは無関係)

procedure TRaveJpMemo.Paint(Canvas: TCanvas);
begin
  inherited;
  // 面倒なので放置。
end;


・印刷デバイスへの描画

procedure TRaveJpMemo.Print(Report: TBaseReport);
begin
  If not AllowPrint then
  begin
    FillChar(Buf, SizeOf(Buf), #0);
    MemoBuf.SetData(Buf,0);
   Exit;
  end;
  MemoBuf.Pos := MemoBuf.Pos+書き込んだ文字数
// 最終的に
// MemoBuf.Pos := MemoBuf.Size;
// になるまで、ループが入るので注意
// いらなくなったら、バッファクリアしておくといい
end;

単位変換
//レポート単位?(units)からインチへ
Report.YU2I(FHeight);

Report.YI2U(Left);
       unMM    : MoziHaba_XSpace := Convert(FMozikann,duMillimeters,duInches);
       unCM    : MoziHaba_XSpace := Convert(FMozikann,duCentimeters,duInches);
       unPoint : MoziHaba_XSpace := Convert(FMozikann,duPoints,duInches);

文字出力
    Report.PrintXY(X,Y,  TempStr);
// × Report.Canvas.TextOut

あとは、VCLと同じかな


【パレット用の画像の設定】 リンク参照

raveには、プロパティエディタにSet型が無いと言うことに気がついた
自分で作ってみた

Ravってつかえないやつ・・・
いまいちやるきがしない。 

【Raveプロパティエディタ】
・Instance[i]
  コンポーネント
・InstCount
  コンポーネントの個数
 例:編集しているコンポーネント
     Instance[InstCount-1]
     一個しかないのなら Instance[0]でいい
・Name  :プロパティ名
・Set型のプロパティの場合の値の取り方
    GetOrdProp(Instance[0],Name)

さらば、Rave
Delphi2005には、みきりをつけた
ばかばかしいので旧バージョンの Delphiでレポート作ろう
匙がないのでふぉーくなげよう 

という気分だろうな 普通は・・・

まぁ ここまできたから なんとか自力で解決したが。。。


このままでは、登録したコンポーネントは、ソフトからは利用できない。
フォーム のCreateなどに
そのRaveユニット名.RaveRegister;
を呼び出す。
これを書いていないと、.rav ファイルを呼び出した時点で例外が発生する。