2008-10-06 42 views

回答

3

YAML將是序列化prefs的更好選擇,但這裏我只是在prefs.txt文件中存儲逗號分隔的字符串。

require "rubygems" 
require "wx" 
include Wx 

class MyApp < App 
    def on_init 
    left, top, width, height = *prefs 
    position = Point.new(left, top) 
    size = Size.new(width, height) 
    main = Frame.new(nil, -1, "Title", position, size) 

    #when the window closes, save the location 
    main.evt_close do |event| 
     save_window_location(event.get_event_object) 
     event.skip 
    end 
    main.show() 
    end 

    private 

    def save_window_location(frame) 
    self.prefs = [ 
     frame.position.x, 
     frame.position.y, 
     frame.size.width, 
     frame.size.height 
    ] 
    end 

    #load the prefs and return them as an array 
    def prefs 
    location = [] 
    begin 
     location = File.read(prefs_filename).split(',').map{|s| s.to_i} 
    rescue Exception 
     #file didn't exist, or read failed 
    end 
    location = [100, 100, 300, 300] if location.size != 4 
    return location 
    end 

    #save the prefs as a comma-delimited string 
    def prefs=(prefs_array) 
    File.open(prefs_filename, 'w') do |prefs_file| 
     prefs_file << prefs_array.join(",") 
    end 
    end 

    def prefs_filename 
    'prefs.txt' 
    end 
end 

MyApp.new.main_loop 
+0

太棒了,謝謝! – 2008-10-07 23:18:06

相關問題