Tag: delphi xe6

如何创build一个对话框,允许在其中放置其他控件?

这是一个Firemonkey组件,但是我可以看到,大部分的组件基础对于VCL和FMX都是一样的,所以如果你知道在VCL中如何做到这一点,请分享你的知识,最终可以成为我的案例的解决scheme。 我正在使用TPopup作为祖先。 这对我来说很方便,因为它仍然保留在窗体/框架上,我可以使用LiveBindings使用父窗体的相同上下文/结构来连接它,这对我来说非常方便。 我需要它的行为正是TPopup,作为一个容器。 但我需要它看起来更好,并有我的具体button(我已经创build了一些属性和自动化为我的软件在里面) 问题是我创build了一些内部控件,比如TLayouts,Tpanels和Tbuttons,看起来像这样:(空) 里面的黑色区域是我想放置像TEdit和其他控件的地方。 我已经将所有内部创build的控件设置为Store = false,所以它不会被存储在stream式系统上。 这样做,当我删除一个TEdit例如,我得到的是(Tedit与align =顶部我需要这个): 但是我期待这样的: 如果我改变了Store = true,我可以得到正确的效果,但是所有的内部控件都暴露在Structure面板上,每次保存表单并重新打开所有的东西都会被重复。 内部组件暴露对我来说不是问题,但是重复的是,如果我closures并打开组件10次,我会得到整个内部结构复制10次。 我将尝试展示一些与组件devise相关的代码: 类声明: [ComponentPlatformsAttribute(pidWin32 or pidWin64 or pidOSX32 or pidiOSSimulator or pidiOSDevice or pidAndroid)] TNaharFMXPopup = class(TPopup, INaharControlAdapter, INaharControl) private protected FpnlMain : TPanel; FlytToolBar : TLayout; FbtnClose : TButton; FbtnSave : TButton; FbtnEdit : TButton; FpnlClientArea : TPanel; […]

Delphi XE6在iOS中链接C代码

我已经使用需要C代码的Delphi XE6在Android上构build了一个应用程序。 但是在iOS上我无法使它工作。 我怀疑这个问题与arm/拇指状态有关,但我不确定。 从任何一个系统调用Pascal的C代码都没有问题。 但是,如果C代码callback一个Pascal过程,则iOS会生成一个"bad system call (12)" 这是pascal代码: function testarm(a,b:integer):integer; cdecl; external "testC.o"; Procedure testC; Begin testarm(1,2); end; function BackToPascal(a,b:integer): integer; cdecl; Begin result := a+b; end; …… exports BackToPascal; 这里是C代码: extern int BackToPascal(int a,int b); extern int testarm(int a,int b) { int i; i = BackToPascal(a,b); return i+1; } 在Android上,这是我如何编译(这是工作): …"arm-linux-androideabi-gcc.exe" -c […]