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 ファイルを呼び出した時点で例外が発生する。