用Firemonkey查看新的Delphi XE2.考虑到它为Windows,Mac OSX和iOS编译,VCL组件在FireMonkey应用程序中是无用的.
我的问题是:是否会有Indy Firemonkey版?因为我非常需要IdHTTP.Post();.如果没有,有没有办法在FireMonkey中执行此操作?
我现在谷歌搜索了很长一段时间,没有找到任何东西.:S
假设我想要一个并排放置的窗体上的两个形状,每个窗口占据窗口的50%,当窗口调整大小时会调整大小.我怎样才能做到这一点?
我真正想要的是按比例设置...例如..上述形状之一占25%,另一种占75%
动态调整大小非常重要,我不想输入任何代码来实现这一点.
我希望按钮大小(宽度和高度)尽可能小,但我希望它适合文本.任何代码示例?Delphi XE4 FireMonkey移动应用程序.
我正在将一个大型项目转换为Firemonkey,并且我们有一些自定义按钮,这些按钮不会显示在表单上.我已将问题分离到一个非常简单的项目:
使用下面的代码,在移动和桌面上(使用Delphi XE6中的默认新应用程序),创建tTestButton1工作正常,但tTestButton2不会在窗体上显示.怎么可能?
type
tTestButton1 = class(TButton);
tTestButton2 = class(tTestButton1);
tMainForm = class(TForm)
private
fTestButton: TButton;
public
constructor Create(aOwner: TComponent); override;
end;
constructor tMainForm .Create(aOwner: TComponent);
begin
inherited;
// fTestButton := tTestButton1.Create(Self); // this works fine (used instead of next line)
fTestButton := tTestButton2.Create(Self); //this button does not show up
fTestButton.Text := 'Test';
fTestButton.Parent := Self;
fTestButton.Visible := True;
fTestButton.Position.X := 20;
fTestButton.Position.Y := 20;
end;
Run Code Online (Sandbox Code Playgroud) 我在另一篇文章的末尾有点问这个问题,但觉得这个话题需要一个自己的问题......
如果我用自己的.style创建了我自己的组件,那么将它与Delphi提供的已定义样式合并而不修改默认值的正确程序是什么?
我可以将默认样式嵌入到我创建的组件中吗?嵌入式样式是否可以继承其父控件的大部分样式?
我觉得我错过了一个我正在努力描述的链接.我的应用程序有一个TStyleBook,默认情况下加载(例如)"dark.style".我的组件有自己的"MyComponent.style"文件.TStyleBook可以加载"dark.style"或"MyComponent.style",但不能同时加载两者.并且应用程序需要加载"MyComponent.style"似乎不正确,因为组件应该以某种方式引用它.如果组件每次在应用程序中使用时也需要单独的样式文件,则它不会使组件非常便携.
我可以编辑自己的"MyDark.style"并将MyComponent添加到其中但这似乎也不正确,因为它会产生一个问题,以使其与Embarcadero所做的更改保持同步.
我希望我已经清楚地解释了这一点.马丁
我在所有者表单的中心显示模式对话框时遇到问题.我显示模态对话框的代码是:
procedure TfrmMain.btnOpenSettingsClick(Sender: TObject);
var
sdSettingsDialog: TdlgSettings;
begin
sdSettingsDialog := TdlgSettings.Create(Self);
sdSettingsDialog.Position := TFormPosition.poOwnerFormCenter;
try
sdSettingsDialog.ShowModal;
finally
sdSettingsDialog.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
试图在设计器中更改Position属性,但似乎并不是对话框的中心.
你能告诉我这里有什么问题吗?
我做了以下代码:
procedure TForm15.Button1Click(Sender: TObject);
var
Bitmap1: TBitmap;
im: TImageControl;
Color: TColor;
Scanline: PAlphaColorArray;
x,y,i: Integer;
begin
for i:= 1 to 100 do begin
im:= ImageControl1;
Bitmap1:= TBitmap.Create(100,100);
try
for y:= 0 to 99 do begin
ScanLine:= Bitmap1.ScanLine[y];
for x:= 0 to 99 do begin
ScanLine[x]:= Random(MaxInt);
end;
end;
ImageControl1.Canvas.BeginScene;
ImageControl1.Canvas.DrawBitmap(Bitmap1, RectF(0,0,Bitmap1.Width, Bitmap1.Height)
,im.ParentedRect,1,true);
ImageControl1.Canvas.EndScene;
finally
Bitmap1.Free;
end;
end;
end;
Run Code Online (Sandbox Code Playgroud)
有没有更快的方法在Firemonkey中绘制像素?
我的目标是使用康威的生活游戏制作一个演示程序.
Firemonkey应用程序中的TOpenDialog似乎存在问题,该应用程序是为Mac Appstore沙箱化的.我使用XE3,但它也存在于XE2中.我实际上在这里找到了QC报告,但它仍然没有得到解决:
http://qc.embarcadero.com/wc/qcmain.aspx?d=105344
有没有人有同样的问题,或任何想法如何解决它?
这很容易检查.只需在表单上放置一个TOpenDialog并调用Execute方法即可.根据Embarcadero说明对应用程序进行签名和沙箱:
http://docwiki.embarcadero.com/RADStudio/en/Mac_OS_X_Application_Development
当调用Execute时有一个延迟,应用程序冻结片刻,但没有显示任何内容.没有例外或错误消息.如果应用程序没有沙盒,则对话框可以正常工作.
此代码也不起作用,因此问题可能在TNSOpenPanel中的某个地方,由TOpenDialog调用,但遗憾的是我无法找到它.
var
LOpenDir: NSOpenPanel;
begin
LOpenDir := TNSOpenPanel.Wrap(TNSOpenPanel.OCClass.openPanel);
LOpenDir.runModal;
LOpenDir.release;
Run Code Online (Sandbox Code Playgroud)
我在Apple文档中读到,与没有沙箱的沙盒相比,使用Sandbox时,NSOpenPanel来自不同的类.我想这就是问题的原因.
任何想法将不胜感激.我们无法真正发布一个必须使用没有打开/保存对话框的文件的应用程序:)
顺便说一句,我尝试了项目选项中的权利的几种组合,但它们没有效果.
我认为在FireMonkey中扩展应用程序应该很容易,因为它应该也适用于Retina-Mac.似乎有一些背景魔法选择了另一种风格,但在Windows中似乎并非如此.
在VCL中有TForm.Scaled可以完成工作(或多或少).
对于FireMonkey,我发现Embarcadero的这篇文章,但似乎Embarcadero不太确定这种方法是否有用,因为在XE5中,sampleproject"ControlsDemo"不再包含scale-trackbar.它还需要在所有形式中都存在root-TLayout,可以设置比例因子.我的表单中没有这样的元素(我害怕添加一个,因为我不能确定我是否运行另一个firemonkey bug).
那么如何使用FireMonkey考虑不同的DPI设置?
编辑:我试图破解TPlatFormWin并将CurrentScreenScale设置为2但它不起作用:我有黑色工具栏,但没有缩放,但至少它使用了提供的TImage.MultiResBitmap中的HighRes替代.
我在组合TScaledLayout和从fmx中的位图样式设计器创建的自定义样式时遇到绘画问题.
为了演示,我加载了通过在位图样式设计器中选择"VCL/FMX的新样式" - >"另存为.style"创建的默认自定义样式.我在一些彩色矩形上放了几个标准控件:TScaledLayout上的红色和绿色,蓝色直接放在表单上.当我拉伸表格时,ScaledLayout上的控件上会出现彩色线条; 背景部分可见:
如果我将表单的大小设置为与设计时尺寸完全匹配,则线条会消失.这似乎是一个非常重要的问题,我当然不能像这样一起使用这两个.有没有人对可能的修复或解决方法有所了解?
delphi ×10
firemonkey ×10
delphi-xe2 ×5
button ×1
delphi-xe ×1
delphi-xe3 ×1
delphi-xe4 ×1
delphi-xe5 ×1
delphi-xe6 ×1
delphi-xe7 ×1
http ×1
indy ×1
macos ×1
sandbox ×1
text ×1