标签: firemonkey

Delphi XE2:可以在VCL应用程序中实例化FireMonkey表单吗?

在Delphi XE2之前,我们只使用VCL来创建GUI应用程序.Delphi XE2声明:

警告:FireMonkey(FMX)和可视组件库(VCL)不兼容,不能在同一项目或应用程序中使用.也就是说,应用程序必须只有一个或另一个,FireMonkey或VCL.不兼容性是由FireMonkey(FMX)和VCL之间的框架差异引起的.

我的应用程序是一个使用运行时包构建的纯VCL应用程序.所有VCL表单都存储在运行时包中.如果我要创建一个FireMonkey表单并存储在一个包中,我是否有机会在运行时在我的VCL应用程序中实例化这个FireMonkey表单?所以我可能会喜欢FireMonkey的3D或HD效果.

delphi vcl delphi-xe2 firemonkey

24
推荐指数
3
解决办法
8263
查看次数

使用FireMonkey及其跨平台,我应该在哪里存储我的应用程序数据?

通常,使用Windows,我将应用程序的数据保存在用户文件夹(%appdata%)中.

为此,我使用ExpandEnvironmentStrings链接到Windows 的函数来获取我需要的文件夹,并将其存储在我的inifile子文件夹中.

有没有最佳实践来管理它并符合所有支持的平台(Windows 32b,64b和Mac)?


我成功地测试过:

procedure TfrmMain.SaveSettings;
var
  fnINI: TFileName;
  ini  : TIniFile;
begin
  fnINI := IncludeTrailingPathDelimiter(GetHomePath) + IncludeTrailingPathDelimiter(APP_NAME) + ChangeFileExt(APP_NAME, '.ini');
  if ForceDirectories(ExtractFilePath(fnINI)) then
  begin
    ini := TIniFile.Create(fnINI);
    try
      ini.WriteString(INI_CONNECTION, INI_IP, edtIP.Text);
    finally
      ini.Free;
    end;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

delphi directory delphi-xe2 firemonkey

23
推荐指数
1
解决办法
3308
查看次数

Delphi XE2:是否可以在没有FireMonkey的情况下创建Mac GUI应用程序?

使用Delphi XE2,是否可以在不使用FireMonkey的情况下创建Mac GUI应用程序?如果是这样,可以使用什么以及如何进行呢?

delphi delphi-xe2 firemonkey

20
推荐指数
1
解决办法
2362
查看次数

设计师如何设计出firemonkey风格

Firemonkey使我们能够为我们的应用程序添加样式,矢量图形,位图,效果,动画等.但我不是设计师,所以我需要雇一个来做这些奇特的工作.但据我所知,所有的设计工作都在IDE中完成.

是否有一种简单的方法可以让设计人员处理项目而无需拥有Delphi XE2的副本和源代码的完整副本?

(是的,他们可以编辑.style文件,但这不完全是视觉或方便).

delphi styles delphi-xe2 firemonkey

19
推荐指数
1
解决办法
4153
查看次数

Firemonkey版本的VirtualTreeView

有没有人碰巧知道是否有正在准备的流行VirtualTreeView的Firemonkey版本?此外,是否有人收集了一些将自定义控件移植到Firemonkey的经验,并且可以估算将虚拟树视图移植到Firemonkey的工作量?我们需要这个控件,如果我们可以让这个控件工作,切换到Firemonkey只是一个选项.

谢谢!

delphi virtualtreeview delphi-xe2 firemonkey

19
推荐指数
1
解决办法
5089
查看次数

FireMonkey iOS RAD Studio XE2 - 在从URL加载的表单上显示图像

是否可以在iOS的FMX表单上放置TImage并将URL中的图像(jpg)加载到此TImage中以显示在iOS应用程序中?

我试过没有成功.任何提示或正确方向的点都值得赞赏.

delphi url timage ios firemonkey

18
推荐指数
1
解决办法
3476
查看次数

多线程文件上载同步

目前我正在使用Delphi XE3客户端/服务器应用程序来传输文件(使用Indy FTP组件).客户端部分监视文件夹,获取内部文件列表,将它们上载到服务器并删除原始文件.上传由一个单独的线程完成,该线程逐个处理文件.文件的范围从0到几千,它们的大小也有很大差异.

它是为OSX和Windows编译的Firemonkey应用程序,因此我不得不使用TThread而不是OmniThreadLibrary,这是我更喜欢的.我的客户报告该应用程序随机冻结.我无法复制它,但由于我对TThread没有那么多经验,我可能会把死锁条件放在某处.我读了很多例子,但我仍然不确定一些多线程的细节.

应用程序结构很简单:
主线程中的计时器检查文件夹并将每个文件的信息获取到记录中,该记录进入通用TList.此列表保留有关文件名称,大小,进度,文件是完全上载还是必须重试的信息.所有显示在带有进度条等的网格中.此列表仅由主线程访问.之后,通过调用AddFile方法(下面的代码)将列表中的项目发送到线程.该线程将所有文件存储在一个线程安全的队列中,如下所示http://delphihaven.wordpress.com/2011/05/06/using-tmonitor-2/
上传文件时,上传者线程通知主线程调用同步.
主线程定期调用Uploader.GetProgress方法来检查当前文件进度并显示它.这个函数实际上不是线程安全的,但它可能导致死锁,还是只返回错误的数据?

什么是安全有效的进度检查方法?

那么这种方法还可以,或者我错过了什么?你会怎么做?
例如,我虽然只是为了阅读文件夹内容而创建一个新线程.这意味着我使用的TList必须是线程安全的,但必须始终访问它以刷新GUI网格中显示的信息.不是所有的同步都会降低GUI的速度吗?

我已经发布了下面的简化代码,以防有人想看一下.如果没有,我会很高兴听到一些关于我应该使用的一般意见.主要目标是在OSX和Windows上工作; 能够显示有关所有文件的信息和当前文件的进度; 并且无论文件的数量和大小如何都要响应.

这是上传者线程的代码.我删除了一些以便于阅读:

type
  TFileStatus = (fsToBeQueued, fsUploaded, fsQueued);
  TFileInfo = record
    ID: Integer;
    Path: String;
    Size: Int64;
    UploadedSize: Int64;
    Status: TFileStatus;
  end;

  TUploader = class(TThread)
  private
    FTP: TIdFTP;
    fQueue: TThreadedQueue<TFileInfo>;
    fCurrentFile: TFileInfo;
    FUploading: Boolean;
    procedure ConnectFTP;
    function UploadFile(aFileInfo: TFileInfo): String;
    procedure OnFTPWork(ASender: TObject; AWorkMode: TWorkMode; AWorkCount: Int64);
    procedure SignalComplete;
    procedure SignalError(aError: String);
  protected
    procedure Execute; override;
  public
    property Uploading: Boolean read FUploading;
    constructor Create;
    destructor Destroy; …
Run Code Online (Sandbox Code Playgroud)

delphi macos upload multithreading firemonkey

18
推荐指数
1
解决办法
2128
查看次数

使用便携式打印机通过蓝牙与Delphi XE7连接

我正在尝试通过蓝牙与Sewoo LK-P32打印机通信.为此,我使用的是Delphi XE7.我做了一些Delphi附带的例子并没有成功.我把配对的打印机放在平板电脑中,即使这样我也无法连续打印.

当我打印的东西必须重新启动应用程序,所以我可以再打印一些东西.在我的来源下面.

有人能帮助我吗?支持这个问题?我尝试其他技术的时间很短.

启动与打印机通信的方法

procedure TForm2.ButtonClickStart(Sender: TObject);
var
  Msg, Texto: string;
  I, B: Integer;
  BluetoothAdapter: TBluetoothAdapter;
  ListaDeAparelhosPareados: TBluetoothDeviceList;
  LServices: TBluetoothServiceList;
begin
  try
    Memo1.Lines.Add('Ponto 1');
    FBluetoothManager := TBluetoothManager.Current;
    if FBluetoothManager = nil then
      Memo1.Lines.Add('FBluetoothManager esta nulo');

    Memo1.Lines.Add('Ponto 2');
    BluetoothAdapter := FBluetoothManager.CurrentAdapter;
    if BluetoothAdapter = nil then
    Memo1.Lines.Add('BluetoothAdapter esta nulo');

    ListaDeAparelhosPareados := BluetoothAdapter.PairedDevices;
    Memo1.Lines.Add('Ponto 3');
    if ListaDeAparelhosPareados = nil then
      Memo1.Lines.Add('ListaDeAparelhosPareados esta nulo');

    for I := 0 to ListaDeAparelhosPareados.Count - 1 do
    begin
      LDevice := ListaDeAparelhosPareados[I] …
Run Code Online (Sandbox Code Playgroud)

delphi bluetooth firemonkey delphi-xe7

18
推荐指数
1
解决办法
6364
查看次数

Delphi XE2 Firemonkey示例应用程序未在MAC上运行

我试图在Mac上运行示例Firemonkey应用程序,但我在mac中收到此消息:

dyld: Library not loaded: @rpath/libcgunwind.1.0.dylib
  Referenced from: /Users/nobre/Applications/Embarcadero/PAServer/scratch-dir/rafael_colucci-Nobre/Project37.app/Contents/MacOS/Project37
  Reason: image not found
dyld: Library not loaded: @rpath/libcgunwind.1.0.dylib
  Referenced from: /Users/nobre/Applications/Embarcadero/PAServer/scratch-dir/rafael_colucci-Nobre/Project37.app/Contents/MacOS/Project37
  Reason: image not found
dyld: Library not loaded: @rpath/libcgunwind.1.0.dylib
  Referenced from: /Users/nobre/Applications/Embarcadero/PAServer/scratch-dir/rafael_colucci-Nobre/Project37.app/Contents/MacOS/Project37
  Reason: image not found
Run Code Online (Sandbox Code Playgroud)

我使用本教程添加OSX平台:

新Mac和Rad Studio XE2

编辑

有关错误的更多信息:

Process:         Teste2 [34270]
Path:            /Users/User/Applications/Embarcadero/PAServer/scratch-dir/rafael_colucci-VM/Teste2.app/Contents/MacOS/Teste2
Identifier:      Teste2
Version:         ??? (???)
Code Type:       X86 (Native)
Parent Process:  launchd [94]

Date/Time:       2011-09-01 19:36:26.246 +0100
OS Version:      Mac OS X 10.6.8 (10K540)
Report Version:  6

Interval Since Last Report:          3908 …
Run Code Online (Sandbox Code Playgroud)

delphi macos delphi-xe2 firemonkey

17
推荐指数
3
解决办法
1万
查看次数

如何在Android中使用Delphi XE5发送短信

有谁知道如何让这个工作?我得到的最接近的是下面的代码,但没有成功.首先,当它告诉您需要SEND_SMS许可时,它会给您一些希望.但在您设置此权限后,没有任何反应!

uses
 Androidapi.JNI.JavaTypes;

procedure TForm1.Button1Click(Sender: TObject);
var
  smsManager: JSmsManager;
  smsTo, smsFrom: JString;
begin
  smsManager:= TJSmsManager.JavaClass.getDefault;
  smsTo:= StringToJString('552199999999'); //replace with the right destination number
  smsFrom:= StringToJString('552499999999'); //replace with the right originator number
  smsManager.sendTextMessage(smsTo, smsFrom, StringToJString(Edit1.Text), nil, nil);
end;
Run Code Online (Sandbox Code Playgroud)

delphi sms android firemonkey delphi-xe5

17
推荐指数
1
解决办法
1万
查看次数