Create  Edit  Diff  Phillro Industries  Index  Search  Changes  History  Source  RSS  Note  wikifarm  Login

Phi::PrintDialog

Phi::PrintDialog?

印刷ダイアログを出すためのクラスです。印刷はしてくれません。印刷ルーティンは自分で作る必要があります。

ダイアログで選択した内容が Phi::PRINTER にセットされるようです。

PrintDialog.jpg
#! ruby -Ks
require "phi"
require "dialogs"
  #
#require "AttrHash" ; include AttrHash
#require "tree"
  #
  # シンボル型属性を有効にする
  #
require "Phi_sym"

form = Phi::Form.new
button = Phi::Button.new form
button.on_click=proc{
    #
    # ダイアログオブジェクトを作成する
    #
  dialog = Phi::PrintDialog.new
    #
    # 「ページ指定」を有効にする
    #
  dialog.options_sym += [:page_nums]
  dialog.min_page = 1
  dialog.max_page = 999
    #
    # 「選択した部分」を有効にする
    #
  dialog.options_sym += [:selection]
    #
    # ダイアログの実行
    #
  if dialog.execute
      #
      # 上の絵の状態でOKしたときに、結果として出てきた属性の全体
      #
      # puts dialog.attr_hash.tree
      #{
      #  :collate     => false ,
      #  :copies      => 3 ,              # 印刷部数
      #  :ctl3d       => true ,
      #  :from_page   => 2 ,              # 印刷開始ページ
      #  :help_context => 0 ,
      #  :max_page    => 999 ,
      #  :min_page    => 1 ,
      #  :name        => "" ,
      #  :options     => [1, 2] ,
      #  :options_sym => [:page_nums, :selection] ,
      #  :print_range => 2 ,
      #  :print_range_sym => :page_nums , # 印刷範囲はページ番号による
      #  :print_to_file => false ,
      #  :to_page     => 10 ,             # 印刷終了ページ
      # }
      #
      # 一言で言えば、次のような意味になる。
      # "[ 2 ]ページから[ 10 ]ページを[ 3 ]部 印刷するべし"
      #
      # 印字範囲(print_range_sym)に応じた処理を行う。
      #
      # print_range_sym のシンボルは次のとおり。
      #
      # puts  dialog.print_range_sym_hash.tree
      #  :num_sym     => {
      #      0=>:all_pages,
      #      1=>:selection,
      #      2=>:page_nums
      #    } ,
      #
    case dialog.print_range_sym
    when :all_pages
      p "全部のページを[ #{dialog.copies} ]部 印刷するべし"
    when :selection
      p "選択部分を[ #{dialog.copies} ]部 印刷するべし"
    when :page_nums
      p "[ #{dialog.from_page} ]ページから[ #{dialog.to_page} ]ページを[ #{dialog.copies} ]部 印刷するべし"
    end
  else
    p "canceled"
  end
}
form.show
Phi.mainloop
p :OK

#! ruby -Ks
require "phi"
require "methods_for_wiki"
puts Phi::PrintDialog.methods_for_wiki

_dump => Phi::Component#_dump

collate

collate=

collate?

「部単位で印刷」かどうか。

component_count => Phi::Component#component_count

components => Phi::Component#components

copies

copies=

「印刷部数」

ctl3d => Phi::CommonDialog#ctl3d

ctl3d= => Phi::CommonDialog#ctl3d=

ctl3d? => Phi::CommonDialog#ctl3d?

event_handle => Phi::CommonDialog#event_handle

execute => Phi::CommonDialog#execute

extend => Phi::Persistent#extend

from_page

from_page=

「xxページから」

* ユーザーがページ番号を指定できるのは options プロパティで PO_PAGE_NUMS フラグが設定されている場合だけです。PO_PAGE_NUM がオンの場合,max_page プロパティには min_page プロパティより大きな値を指定しないと [印刷] ダイアログボックスが開きません。

handle => Phi::CommonDialog#handle

help_context => Phi::CommonDialog#help_context

help_context= => Phi::CommonDialog#help_context=

marshal_dump => Phi::Component#marshal_dump

marshal_load => Phi::Component#marshal_load

max_page

max_page=

min_page

min_page=

ユーザーが入力できる最大ページ番号と最少ページ番号。

* ユーザーがページ番号を指定できるのは options プロパティで PO_PAGE_NUMS フラグが設定されている場合だけです。PO_PAGE_NUM がオンの場合,max_page プロパティには min_page プロパティより大きな値を指定しないと [印刷] ダイアログボックスが開きません。

name => Phi::CommonDialog#name

name= => Phi::CommonDialog#name=

on_close => Phi::CommonDialog#on_close

on_close= => Phi::CommonDialog#on_close=

on_show => Phi::CommonDialog#on_show

on_show= => Phi::CommonDialog#on_show=

options

options=

PO_DISABLE_PRINT_TO_FILE[ファイルへ出力] チェックボックスを選択不可(淡色表示)にする(poPrintToFile フラグが設定されている場合のみ適用可能)
PO_HELP[ヘルプ] ボタンがダイアログボックスに表示される。Windows 95 のバージョンによっては機能しない場合がある
PO_PAGE_NUMS[ページ指定] ラジオボタンが使用可能になり,ユーザーは印刷するページ範囲を指定できる
PO_PRINT_TO_FILE[ファイルへ出力] チェックボックスをダイアログボックスに表示する
PO_SELECTION[選択した部分] ラジオボタンが使用可能になり,ユーザーは選択したテキスト(強調表示されたテキスト)を印刷できる
PO_WARNINGユーザーがインストールされていないプリンタに印刷ジョブを送ろうとした場合に警告メッセージが表示される

デフォルト値では,すべてのオプションフラグはオフです。

print_range

print_range=

PrintRange? プロパティは,ダイアログボックスで選択されている印刷範囲の種類を示します。

PrintRange? プロパティの値は [印刷] ダイアログボックスの [すべて],[選択した部分],および [ページ指定] の各ラジオボタンに対応します。

ダイアログボックスが開いたときにデフォルトでどのラジオボタンが選択されるかを指定するには,オブジェクトインスペクタまたはプログラムコードで PrintRange? プロパティの値を設定してください。

[ページ指定] ラジオボタンを使用可能にするには,Options プロパティで poPageNums フラグを設定してください。[選択した部分] ラジオボタンを使用可能にするには,Options プロパティで poSelection フラグを設定し,MaxPage プロパティに MinPage? プロパティより大きな値を設定してください。

PR_ALL_PAGES[すべて] ラジオボタンが選択される
PR_SELECTION[選択した部分] ラジオボタンが選択される
PR_PAGE_NUMS[ページ指定] ラジオボタンが選択される

print_to_file

print_to_file=

print_to_file?

「ファイルへ出力」

ダイアログボックスで [ファイルへ出力] チェックボックスを表示するには,Options プロパティで PO_PRINT_TO_FILE フラグを設定してください。[ファイルへ出力] チェックボックスを選択不可(淡色表示)にするには PO_DISABLE_PRINT_TO_FILE フラグを設定してください。

prop_info => Phi::Component#prop_info

to_page

to_page=

「xxページまで」

* ユーザーがページ番号を指定できるのは options プロパティで PO_PAGE_NUMS フラグが設定されている場合だけです。PO_PAGE_NUM がオンの場合,max_page プロパティには min_page プロパティより大きな値を指定しないと [印刷] ダイアログボックスが開きません。

write_res_file => Phi::Component#write_res_file

Last modified:2007/08/06 14:48:14
Keyword(s):
References:[Phi::PRINTER] [Phi::Printer] [image_of_controls]