Firemonkey使我们能够为我们的应用程序添加样式,矢量图形,位图,效果,动画等.但我不是设计师,所以我需要雇一个来做这些奇特的工作.但据我所知,所有的设计工作都在IDE中完成.
是否有一种简单的方法可以让设计人员处理项目而无需拥有Delphi XE2的副本和源代码的完整副本?
(是的,他们可以编辑.style文件,但这不完全是视觉或方便).
我正在写一个ruby-on-rails库模块:
module Facets
class Facet
attr_accessor :name, :display_name, :category, :group, :special
...
URI = {:controller => 'wiki', :action => 'plants'}
SEARCH = {:status => WikiLink::CURRENT}
#Parameters is an hash of {:field => "1"} values
def render_for_search(parameters)
result = link_to(display_name, URI.merge(parameters).merge({name => "1"}))
count = WikiPlant.count(:conditions => (SEARCH.merge(parameters.merge({name => "1"}))))
result << "(#{count})"
end
end
...
end
Run Code Online (Sandbox Code Playgroud)
当我调用render_for_search时,我得到了错误
undefined method 'link_to'
Run Code Online (Sandbox Code Playgroud)
我已经尝试过直接要求url_helper,但无法弄清楚出了什么问题.
新手Ruby问题:
我现在正在写:
if mystring == "valueA" or mystring == "ValueB" or mystring == "ValueC"
Run Code Online (Sandbox Code Playgroud)
这样做有一个更简洁的方法吗?
我正在使用ActionMailer发送注册确认电子邮件.电子邮件需要包含一个返回网站的链接以验证用户,但我无法说服Rails生成完整的URL(包括域等).
我正在使用:
<%= url_for :controller => 'login', :action => 'verify', :guid => @user.new_user.guid, :only_path => false, :host => 'http://plantality.com' %>
Run Code Online (Sandbox Code Playgroud)
在我看来
在开发模式下,如果我没有在上面的链接中指定主机explicilty,则Rails会抱怨.但我不想在制作中这样做.有解决方案吗
我有一个使用下面结构的rails帮助器,但是当我使用它时,我得到了消息
undefined method 'link_to'
Run Code Online (Sandbox Code Playgroud)
助手安排如下:
module MyHelper
class Facet
def render_for_search
link_to("Value", params)
end
end
class FacetList
attr_accessor :facets
def initialize
#Create facets
end
def render_for_search
result = ""
facets.each do |facet|
result << facet.render_for_search
end
result
end
end
end
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个使用泛型的属性:
type TMyClass = class
protected
function GetCountBy<T: Class>: Integer;
public
property CountBy<T: Class>: Integer read GetCountBy<T>;
end;
Run Code Online (Sandbox Code Playgroud)
但是编译在属性声明上失败,并且消息'Property CountBy在基类中不存在',并且在属性名称的开头<上出现红色波形.
有没有办法实现这个目标?
编辑:这是我的另一个用例,它更复杂但更真实:
property ItemsBy<T: Class>[Index: Integer]: T read GetItemsBy<T> write SetItemsBy<T>;
Run Code Online (Sandbox Code Playgroud)
该函数过滤列表的内容以返回指定类的Index'th项.
我正在尝试安装思考sphinx gem,它位于gemcutter.org上
当我运行命令
gem sources -a http://gemcutter.org
Run Code Online (Sandbox Code Playgroud)
我收到错误:
Error fetching http://gemcutter.org:
bad response Not Found 404 (http://gemcutter.org/specs.4.8)
Run Code Online (Sandbox Code Playgroud)
如果我将上述URL更改为http://gemcutter.org.specs.4.8.gz,则会找到一个文件.如何告诉rubygems下载.gz扩展名?
我看到了一个youtube视频(不记得哪一个)用户在Delphi XE2中更改了一个选项,以更改整个FireMonkey应用程序的默认样式.经过多次打猎,我找不到选项.
IDE Insight for"style"在"项目选项"下显示"默认样式 - 自定义样式(表单)".但除非我特别厚,否则那里没有这样的选择.
我有一个项目,我需要构建两个可执行文件:一个在Delphi XE2下,一个在XE3下.我有一个构建脚本来构建每个版本(即XE2的一个脚本和XE3的一个脚本).
如果我运行我运行的IDE的最后一个版本的构建脚本,一切运行良好(即运行Delphi XE2,构建应用程序,运行XE2构建脚本).
但是,如果我运行构建脚本只运行不同版本的IDE,我会在应用程序启动后立即获得AV(即运行Delphi XE2,构建应用程序,运行XE3构建脚本).
看起来好像IDE正在缓存/修改构建脚本,我需要恢复我想要构建的版本的相应数据.我用.dproj尝试过这个,但没有运气.
或者它可能是加载表单资源 - 两个版本都显示错误,因为如果IDE启动时不存在属性.如果是这样,有没有一个简单的方法来保持所有.fmx文件的多个版本?
这是一个示例构建脚本:
set path=%path%;c:\Windows\Microsoft.NET\Framework\v3.5
set path=%path%;c:\Program Files (x86)\Embarcadero\RAD Studio\10.0
set path=%path%;c:\Documents and Settings\All Users\Documents\RAD Studio\10.0
set BDS=c:\Program Files (x86)\Embarcadero\RAD Studio\10.0
set FrameworkDir=c:\Windows\Microsoft.NET\Framework\
set FrameworkVersion=v3.5
set failed=false
cd \myprogs\monkeystyler
msbuild monkeystyler.dproj /t:build /p:config=full||set failed=true
cd build
if not %failed%==true goto Done
echo ****FAILED TO BULD MONKEYSTYLER
****
Pause
exit
:done
Run Code Online (Sandbox Code Playgroud) 在Delphi(2007)中,我习惯用CTRL-SHIFT-0,1,2等设置书签.
自从我升级到Vista x64后,上述功能不再适用.我仍然可以用CTRL-K-0,1,2等设置书签,但我习惯于传统的方式(加上它更快).
有谁知道为什么它不适合我?
在我目前的一个项目中,我正在使用单用户身份验证系统.我说"单用户",因为我没有计划在同一个Windows帐户上为多个用户进行此项工作(仅仅因为它不是我想要做的事情).
当用户启动应用程序时,会向他们显示身份验证屏幕.此验证屏幕使用图像(即点击图像中的3个特定点),用户名(标准编辑框)和图像选择(下拉菜单允许他们选择他们希望使用的图像).图像选择,用户名和在图像上单击的点必须与用户在设置密码时指定的内容相匹配.
将所有3个结果组合成一个字符串,然后用该Soap.EncdDecd.EncodeString方法对其进行编码.然后使用SHA-512进行散列.最后,它使用DES加密.然后将此值与设置密码时创建的值进行比较.如果匹配,则授予他们访问权限.如果不是,则拒绝访问.我计划在应用程序的其他位置使用SHA512值(例如"主密码",用于在主应用程序中使用各种不同的模块进行授权).
在一个示例中,初始字符串的长度为29个字符,SOAP编码的字符串为大约40个字符,SHA-512字符串为128个字符,DES值为344个字符.由于我不使用大量字符串,所以它实际上非常快.SOAP被用作非常基本的混淆,而不是作为安全措施.
我担心的是第一部分(普通字符串和SOAP)可能是弱点.基本字符串不会给他们一些他们可以输入并被授予访问权限的东西,但它会给他们"图像点击坐标",以及用户名和图像选择,这可能允许他们访问应用程序.SOAP字符串可以很容易地解码.
加强认证的第一部分以试图避免从内存直接撕掉这些值的最佳方法是什么?我是否应该关注潜在的剥削者或攻击者以这种方式阅读价值观?
作为与同一主题直接相关的另一个问题;
存储用户在初始设置期间创建的密码哈希的最佳方法是什么?
我目前正在运行一种TIniFile.SectionExists方法,因为我还没有想出更优雅的东西.这是我缺乏知识的一个领域.我需要跨会话存储密码"hash"(因此使用内存流不是一个选项),但我需要确保安全性足够好,以至于任何脚本小子都无法完全破解它.
更重要的是我是否应该关注,以及我所做的编码,散列和加密是否足够.我开发的图片密码系统已经是一个很好的基础,可以阻止传统的"我知道你的基于文本的密码是什么,所以现在我在你的系统中"攻击,但我担心从内存中读取的技术攻击越多.
delphi ×6
delphi-xe2 ×3
firemonkey ×2
link-to ×2
ruby ×2
styles ×2
actionmailer ×1
bookmarks ×1
class ×1
compare ×1
delphi-2007 ×1
encryption ×1
gem ×1
gemcutter ×1
generics ×1
helpers ×1
host ×1
ide ×1
msbuild ×1
properties ×1
rubygems ×1
string ×1
url-for ×1
url-helper ×1