image_viewer.rb
001 #!ruby
002
003 # cf:
004 # Delphi4 プログラミングバイブル p.314
005 # 7.4.2. イメージビューア
006
007 require 'phi'
008 require 'dialogs'
009 require 'jpeg'
010
011 form = Phi::Form.new
012 form.caption = 'Image Viewer'
013
014 i = Phi::Image.new form, :image
015 i.align = Phi::AL_CLIENT
016
017 Phi.new_menu form, :menu, [
018 Phi.new_item('&File', '', :mi_file).add(
019 Phi.new_item('&Open', 'Ctrl+O', :mi_open),
020 Phi.new_item('E&xit', '', :mi_exit)
021 ),
022 Phi.new_item('&Options', '', :mi_opt).add(
023 Phi.new_item('&Stretch', '', :mi_stretch),
024 Phi.new_item('&Center', '', :mi_center)
025 ),
026 Phi.new_item('&Help', '', :mi_help)
027 ]
028
029 form.mi_open.on_click = proc do
030 dlg = Phi::OpenDialog.new
031 dlg.filter = 'Bitmap(*.bmp)|*.bmp|Icon(*.ico)|*.ico|Metafile(*.wmf)|*.wmf|Jpeg(*.jpg)|*.jpg'
032 if dlg.execute
033 form.image.picture.load dlg.file_name
034 form.caption = 'Image Viewer - ' + dlg.file_name
035 end
036 end
037
038 form.mi_stretch.on_click = proc do
039 form.mi_stretch.checked = form.image.stretch = ! form.image.stretch
040 end
041
042 form.mi_center.on_click = proc do
043 form.mi_center.checked = form.image.center = ! form.image.center
044 end
045
046 form.show
047 Phi.mainloop
このスクリプトを実行すると、このような ウィンドウがあらわれます。