我在FireMonkey表单上有一个带有关联TPopupMenu的TMemo.
当我右键单击备忘录时,我得到了自己的弹出菜单,但是在我的弹出窗口消失之后,我仍然得到默认弹出窗口(即剪切,复制,粘贴,全选).
如何禁用默认菜单,或者我可以将自己的项目添加到默认菜单中?
什么变成了
TStatusBar.Simpletext
将程序从VCL转换为firmonkey时的属性?
(使用firemonkey和xe3).嗨,我创建一个img.
img := Timage.Create(fsbCanvas);
with img do
begin
Parent:=fsbCanvas;
position.X:=frmMainUI.CurrentMouseX;
position.y:=frmMainUI.CurrentMouseY;
Bitmap.LoadFromFile('1.jpg');
Visible:=true;
end;
Run Code Online (Sandbox Code Playgroud)
现在我想将其wrapmode设置为iwStreach.所以我添加这个:
Timagewrapmode.iwStreach但我得到一个错误说"语句预期但发现表达".
有人可以帮忙吗?
在VCL表单中我使用WM_SYSCOMMAND,但在firemonkey中它是未声明的.
我测试这段代码:
procedure TForm4.dragPanelMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Single);
begin
isDraging := true;
X0 := X;
Y0 := Y;
end;
procedure TForm4.dragPanelMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Single);
begin
if isDraging then
begin
Form4.Left := Trunc(Form4.Left + X - X0);
Form4.Top := Trunc(Form4.Top + Y - Y0);
end;
end;
procedure TForm4.dragPanelMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Single);
begin
isDraging := False;
end;
Run Code Online (Sandbox Code Playgroud)
这是有效的,但只是为了缓慢的移动!
如何在Firemonkey中移动表单?
适用于XE6,Firemonkey
我通过在firemonkey中自定义TSpeedButton来创建一个带有图像的按钮.我这样做是通过在样式编辑器中向TSpeedButton添加图像.新按钮工作正常.我现在想制作另一个图像按钮,所以我想我会复制并粘贴表格上的第一个按钮.我更改了复制按钮中的图像(通过样式编辑器),当我点击应用并关闭时,新按钮获取新图像.但是我也注意到我复制的原始按钮也获得了新图像.所以现在我有两个具有相同图像的按钮.除了创建一个全新的按钮并添加一个新图像(这允许我使用具有独特图像的按钮)之外,有没有办法使用复制/粘贴创建具有自己样式的按钮?
我注意到这个问题与如何编辑样式设计器之外的FireMonkey样式中的控件有关?但在这里我想做同样的事情,但是从IDE,而不是以编程方式.
我想创建一个TImage组件,并用背景色填充图像。但是我的代码比我预期的要长。
如果我没记错的话,在旧的Delphi版本中,我可以用FloodFill特定的颜色填充整个图像。所以我想我确实错过了一些事情。
有人可以弄清楚如何用更简单的代码填充背景色吗?
Image := TImage.Create(nil);
Image.Position.X := 100;
Image.Position.Y := 100;
Image.Width := 500;
Image.Height := 500;
Image.Bitmap.Width := Trunc(Image.Width);
Image.Bitmap.Height := Trunc(Image.Height);
with Image.Bitmap.Canvas do
begin
BeginScene;
try
Fill.Color := TAlphaColors.Black;
FillRect(RectF(0, 0, Image.Bitmap.Width, Image.Bitmap.Height), 0, 0, [], 1.0);
finally
EndScene;
end;
end;
Run Code Online (Sandbox Code Playgroud) 这基本上是我以colors编程方式归属的方式Delphi
label.FontColor := TAlphaColors.Yellow;
Run Code Online (Sandbox Code Playgroud)
如果我想要一个自定义颜色#FF1C90EF怎么办?
如何以编程方式设置它?
使用VCL,您可以使用CreateMessageDialog自定义按钮标题生成消息对话框.
随着FMX CreateMessageDialog似乎不再存在(自XE3以来).
除了从头开始重建消息对话框之外,有没有办法使用FireMonkey自定义按钮标题?
我希望能够调用这里描述的函数:
MessageDlg(
'Really quit application ?', mtWarning,
[ButtonInfo(mbNo, 'Do&n''t save'),
ButtonInfo(mbCancel, '&Cancel'),
ButtonInfo(mbYes,'&Save')],
mbYes
);
Run Code Online (Sandbox Code Playgroud) 而不是通过项目选项使用png图像为splashscreen我想使用我自己的表格用于启动画面.
我在以下链接中找到了XE2的解决方案,但它对Delphi 10 Seattle不起作用:https://stackoverflow.com/a/9080804/2728408
下面我有一些我在项目中尝试过的例子.dpr:
例1:
program Project2;
uses
FMX.Forms,
System.SysUtils,
Unit1 in 'Unit1.pas' {MainForm},
Unit2 in 'Unit2.pas' {SplashForm};
{$R *.res}
begin
Application.Initialize;
SplashForm := TSplashForm.Create(nil);
SplashForm.Show;
Application.ProcessMessages;
Sleep(1000); // Whatever to control display time of splash screen
Application.CreateForm(TMainForm, MainForm);
SplashForm.Close;
SplashForm.Free;
Application.Run;
end.
Run Code Online (Sandbox Code Playgroud)
例2:
program Project2;
uses
FMX.Forms,
System.SysUtils,
Unit1 in 'Unit1.pas' {MainForm},
Unit2 in 'Unit2.pas' {SplashForm};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TSplashForm, SplashForm);
Application.Run;
Sleep(1000);
Application.Terminate;// Also tried Application.Destroy
Application.Initialize;
Application.CreateForm(TMainForm, MainForm);
Application.Run;
end.
Run Code Online (Sandbox Code Playgroud)
例3:
program …Run Code Online (Sandbox Code Playgroud) 我不想在TabControl界面中显示点,当我更改TabControl,TabPosition:Dots的属性时......我只想用手势来处理它.
delphi ×10
firemonkey ×10
bitmap ×1
canvas ×1
colors ×1
delphi-xe3 ×1
delphi-xe4 ×1
graphic ×1
mobile ×1
popup ×1
tabcontrol ×1