标签Ruby下的文章

08月16, 2012

Phi中使用DFM文件

Delphi中有将窗体持续化的函数

  • ObjectBinaryToText: 将二进制object流转换为文本格式
  • ObjectResourceToText:将Windows资源对象流转换为文本格式
  • ObjectTextToBinary:将文本格式对象流转换为二进制格式
  • ObjectTextToResource:将文本格式对象流转换为Windows资源格式

Phi中可以加载一个DFM文件,然后动态创建DFM对应的窗体。这样就不用手工敲代码创建了。只不过DFM只能包含Phi中的控件。

阅读全文 »

06月28, 2009

Java程序中引入JRuby

以前有篇文章是写给Delphi程序增加对Pax JavaScript的支持 今天研究了一下给Java程序增加对 Ruby 的支持

目前可以通过 Apache的 BSF(Bean Script Framework) 和Sun的 Java Scripting(javax.script)

阅读全文 »

11月28, 2008

再学php

初学php是在大三。在看了STL,Ruby,JavaScript之后,再看php和当初完全是两种感觉了。

Array, Hash是动态语言中核心的数据结构。一旦你用过他们,你就会试图在此后接触的语言中寻找他们的身影或替代品。

阅读全文 »

03月07, 2007

初识lambda

lamda{||block} ->aProc

Kernel::Proc的同义语 lamda{block} 等价于 proc{block}

例子:

print "(t)imes or (p)lus: "
times = gets
print "number: "
number = Integer(gets)


if times =~ /^t/
calc = lambda {|n| n*number }
else
calc = lambda {|n| n+number }
end

puts((1..10).collect(&calc).join(", "))

15:39 2008-3-17 补充

Python中的lambda:

def make_repeater(n):
     return lambda s: s*n

twice = make_repeater(2)
print twice("word")
c:\> wordword

Python中的lambda只能使用expression,不能使用statement

阅读全文 »

02月17, 2007

wxRuby2的安装与Demo程序

用gem安装wxruby2

c:>gem install wxruby2-preview

在文件前面增加下列代码

begin
   require "wx"
rescue LoadError => no_wx_err
   begin
     require "rubygems"
     require "wx"
   rescue LoadError
     raise no_wx_err
   end
end

测试:

class TroutApp < Wx::App
   def on_init
     frame = Wx::Frame.new(nil, -1, "Tiny wxRuby Application")
     panel = Wx::StaticText.new(frame, -1, "You are a trout!",
           Wx::Point.new(-1,1), Wx::DEFAULT_SIZE,
           Wx::ALIGN_CENTER)
     frame.show
   end
end

TroutApp.new.main_loop

update:

FOX界面库

require "fox16"
include Foxapplication = FXApp.new("Hello", "FoxTest")

application.init(ARGV)
main = FXMainWindow.new(application, "Hello", nil, nil, DECOR_ALL)
FXButton.new(main, "&Hello, World!", nil, application, FXApp::ID_QUIT)
application.create()
main.show(PLACEMENT_SCREEN)
application.run()

阅读全文 »