はじめまして。
印刷プレビューコンポーネントTplPrev(http://homepage2.nifty.com/Mr_XRAY/Delphi/plPrev/index.htm)を使って印刷プレビューし、ページ番号を入れようとしてもうまくいきません。
以下ソースです。
////////////////////////
var
Li,Line,i:Integer;
PageStr:String;
begin
plPrev.BeginDoc;
plPrev.Canvas.Font:=CurrentEdit.Font;
plPrev.Canvas.Font.Size:=CurrentEdit.Font.Size * 3;
for Li:=1 to CurrentEdit.Lines.Count do
begin
plPrev.Canvas.TextOut(SpLeft,SpTop + ((CurrentEdit.Fontheight * 3 + (Gyokan - 5)) * Line),Memo1.Lines[Li]);
Inc(Line);
if (((CurrentEdit.Fontheight * 3 + (Gyokan - 5)) * Line) + SpTop + SpUnder + 100) >= (plPrev.PaperHeight) then
begin
plPrev.NewPage;
Line:=0;
plPrev.Canvas.Font:=CurrentEdit.Font;
plPrev.Canvas.Font.Size:=CurrentEdit.Font.Size * 3;
end;
end;
if Page=True then for i:=1 to plPrev.PageCount do
begin
plPrev.PageNumber:=i;
PageStr:=IntToStr(i) + '/' + IntToStr(plPrev.PageCount);
plPrev.Canvas.Font.Name:='MS Pゴシック';
plPrev.Canvas.Font.Size:=30;
plPrev.Canvas.Font.Style:=[fsBold];
{if Ici='左上' then plPrev.TextOutLT(SpLeft,SpTop - 25,PageStr);
if Ici='上' then plPrev.TextOutCT(plPrev.PaperWidth div 2,SpTop - 25,PageStr);
if Ici='右上' then plPrev.TextOutRT(plPrev.PaperWidth - SpLeft,SpTop - 25,PageStr);
if Ici='左下' then plPrev.TextOutLB(SpLeft,plPrev.PaperHeight - SpUnder,PageStr);}
if Ici='下' then plPrev.TextOutCB(plPrev.PaperWidth div 2,plPrev.PaperHeight - SpUnder,PageStr);
{if Ici='右下' then plPrev.TextOutRB(plPrev.PaperWidth - SpLeft,plPrev.PaperHeight - SpUnder,PageStr);}
end;
plPrev.Title:='プレビュー';
plPrev.EndDoc;
plPrev.ShowModal;
end;
//////////////////////////////////////////
CurrentEditと、Memo1は別ですが、Memo1にCurrentEditの内容を入れてます。
if 文のところはあまり気にしないでください。
spLeft,spTop,spUnder,GyokanはIntegerです。
やってみると、うまく表示されません。
なぜでしょうか。
よろしくお願いします。
このコードはどこに書いてあるんでしょうか。
サイトを見る限りでは、TplPrevコンポーネントの、OnBeforeViewイベントでページを振るように書かれていますが。
# コンポーネントをインストールしていないので未確認です
まず、サイトのサンプルでページ番号が振られるか試してみてください。
にしのさま、ありがとうございます。
OnBeforeViewイベントに書いていませんでした…
やっぱりヘルプ見てやったほうが良いですね。
ありがとうございました。
掲示板に書く前に、少なくともヘルプは見るべきでしょう。
次があるとしたら、もう少しご自身で調べて、それでもわからないときにすべきです。
印刷プレビューコンポーネントTplPrevwを
Delphi7で使用できるのでしょうか??
インストスしようとすると、パスが違うため開けないようで、
”設定された、ファイルが見つかりません”
と表示されてしまいます。。
どなたかご教授お願いします。。
単純にPLPREVFRMのパスが環境に合っていないのでは、と思うのですが(usesの)?
それとも、もっと複雑な事象なのでしょうか?
にしのさん,サポートありがとうごさいます.
多分,uses部のことでしょう.
現在Delphi7には対応していません.ただし,Uses部の修正だけで使用できま
す.
それとJボスさんもサポートありがとうごさいます.作者です.
理恵さんへ,
個別の(Delphi標準でない)コンポーネント関係は,ちょっとここでは
マズイような気がします(普及しているLight Reportなどは除いて).
Delphian Worldに登録してあるものならば,
http://www.egroups.co.jp/group/delphian
に参加して質問するか,作者へ直接の方がいいと思われます.
実は私が作者ですので,いつでも遠慮なく質問メールでどうぞ.
(私のサイトには掲示板はありません)
Uses節をどのように変更すればいいのでしょうか??
Delphiは初心者のもので、いろいろ試してみたのですがわかりません。。。
どなたか、ご教授お願いします。。
現在どうなっているのかがわからないのですが
変更する可能性があるとすると以下だと思います
uses節の中です
PLPREVFRM in '(ここを変更します)c:\src.....'
開きたいファイルのパスです。
USE節の中身をコピーしてみました。。
uses
{$IFDEF VER140}
Windows, Messages, SysUtils, Classes, Graphics, Controls,Forms,Dialogs,
ComCtrls, ExtCtrls, StdCtrls, Printers,Math,ToolWin,plSetPrinter,
JPEG,Clipbrd, Buttons, Menus,plPrev,Variants;
{$ELSE}
Windows, Messages, SysUtils, Classes, Graphics, Controls,Forms,Dialogs,
ComCtrls, ExtCtrls, StdCtrls, Printers,Math,ToolWin,plSetPrinter,
JPEG,Clipbrd, Buttons, Menus,plPrev;
{$ENDIF}
こんな感じです。。
インストールを実行すると、
[致命的エラー] PLPREVFRM.pas(21): ファイル 'plSetPrinter.dcu' が見つかりません
と、表示されてします。。
(カンマ),で区切っていれてやればパスは設定できますが、↓
..aphics, Controls,Forms,PLPREVFRM in '(ここを変更します)c:\src.....',Da
ファイル 'plSetPrinter.dcu' につきましては、勉強不足のためわかりかねます。すみません。
uses節に、plSetPrinterが含まれていますよね。
このplSetPrinterは、plSetPrinter.dcuか、plSetPrinter.pasという名前で、どこかにあるはずです。
どこにもなければ、そのエラーを回避することはできません。
plSetPrinter.dcuかplSetPrinter.pasがあるという前提でお話しします。
Delphiは、必要なファイルを、ある特定の場所からしか探しません。
PCのどこかにあればよい、というわけではないのです。
まず、エクスプローラの「ファイルの検索」機能を使って、plSetPrinter.*を検索してください。
plSetPrinter.dcuかplSetPrinter.pasが見つかったら(たいていは同じ場所ですが)、plSetPrinter.pasのある場所を覚えてください。もちろんコピー&ペーストでよいですから。
Delphiを立ち上げ、メニューバーの「ツール」-「環境オプション」を選びます。
ライブラリというタブがあるので、それをクリックすると、
「ライブラリパス」
とかかれた項目があると思います。
ここにある"..."というボタンを押し、plSetPrinter.pasがあったディレクトリ名(フォルダ名)を、ここに追加します。
今度は
[エラー] plPrev.pas(369): 未定義の識別子 : 'null'
と、表示されてしまうのですが。。。
たびたび、申し訳ありません。。
う〜む.
これは一度plSetPrinter,つまりプリンタ設定コンポーネントのテスト
プログラムが正常に実行できるか確認した方がいいかもしれません.
http://homepage2.nifty.com/Mr_XRAY/Delphi/plPrev/plPrev.htm
の必要コンポーネントに「プリンタ設定」とありますので,
これが動作しないことには始まりません.
これは一度plSetPrinter,つまりプリンタ設定コンポーネントのテスト
プログラムが正常に実行できるか確認した方がいいかもしれません.
インストールしたところ、「プリンタ設定」は、正常に動きましたが・・・
亀レスですが...
理恵さん,Delphi7でインストールできましたか.
お待たせしました.Delphi7対応バージョンを,たった今UPしました.
よろしかつたらどうぞ.
Mr.XRAYさんありがとうございます。
プレビューできました。
ツイート | ![]() |