Delphi Programming / Object Pascal
[掲載 2004年12月31日] [更新 2013年11月05日] Delphi サンプルプログラム集 |
拙作のコンポーネント類を使用したサンプル
T150_TPanel の上に印刷プレビュー画面 |
動作確認等 |
Windows 7 U64(SP1) + Delphi XE Pro
以下の拙作のコンポーネント類が必要
TplSetPrinter, TplPrev |
|
T150_OnPanel.zip [784 KB] 2013年11月05日版 (EXE 同梱) |
- 2013年11月05日
- Windows 7 U64(SP1) + Delphi XE Proで動作確認
|
TPanel の上に印刷プレビュー画面を表示 ( 他のフォームに表示 ) |
印刷プレビュー制御フォームを,メインフォーム画面にはめ込んで表示するサンプルです.
入力画面を兼ねた印刷プレビュー画面と使用する際の参考です.別のフォームに印刷プレビューフォームを表示する方法は,TFormPanel を使用したサンプルにも掲載しています. |
|
図1
設計時のメインフォーム
- パネルを 2 つを配置
- 左のパネルに制御用コントロール
ここでは [実行] [終了] のボタン
- 右のパネルがプレビュー表示用
|
|
図2
継承プレビューフォーム
|
|
図3
[表示] ボタンをクリック |
unit OnPanelUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls;
type
TForm1 = class(TForm)
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
Panel1: TPanel;
Panel0: TPanel;
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure FormMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
uses Unit1;
{$R *.DFM}
//=============================================================================
// [表示]ボタン押下時の処理
// 印刷プレビューフォームplPrevForm1を表示する
//=============================================================================
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
plPrevForm1.Show;
end;
//=============================================================================
// [終了]ボタン押下時の処理
//=============================================================================
procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
Close;
end;
//=============================================================================
// マウスホイールは親のイベントを使用する
//=============================================================================
procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
var
SB: TScrollingWinControl;
begin
if plPrevForm1 = nil then exit;
SB := plPrevForm1.ScrollBox1;
if FindVCLWindow(MousePos) = SB then begin
Handled := True;
SB.VertScrollBar.Position := SB.VertScrollBar.Position - WheelDelta div 5;
end;
end;
end.
リスト2
印刷プレビュー制御フォームの継承フォームのコード |
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
PLPREVFRM, Menus, ExtCtrls, ComCtrls, Buttons, ToolWin, plPrev;
type
TplPrevForm1 = class(TplPrevForm)
plPrev1: TplPrev;
procedure plPrev1FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
plPrevForm1: TplPrevForm1;
implementation
uses OnPanelUnit;
{$R *.DFM}
//=============================================================================
// このフォームを表示するコントロールを指定
// OnCreateはTplPrevにないのでFormのOnCreateに記述
//=============================================================================
procedure TplPrevForm1.FormCreate(Sender: TObject);
begin
inherited;
plPrev1.FormParent := Form1.Panel1;
end;
//=============================================================================
// 描画コード部分
// TplPrevのOnFormShowなのでinheritedは不要
//=============================================================================
procedure TplPrevForm1.plPrev1FormShow(Sender: TObject);
begin
plPrev1.BeginDoc;
plPrev1.EndDoc;
end;
end.
|