我如何获得由FastMM分配的内存总量?
我试过了:
function GetTotalAllocatedMemory: Cardinal;
var
MMState: TMemoryManagerState;
begin
GetMemoryManagerState(MMState);
Result := MMState.TotalAllocatedMediumBlockSize + MMState.TotalAllocatedLargeBlockSize;
end;
Run Code Online (Sandbox Code Playgroud)
这是对的吗?
无论如何它会返回奇怪的东西.它比我在Windows任务管理器中看到的值少5倍.我相信Delphi应用程序分配的内存量等于FastMM分配的内存加上一些系统开销.我错了吗?
有很多的方式,用户可以如何触发一个动作(TAction)执行:快捷键,工具栏按钮,弹出式菜单按钮等是否有可能得到的信息是如何的行动已被触发?
我只是考虑实现活动日志,以找出在GUI中使用不同功能的最流行的方法.
更新
我需要收集一些关于用户如何与应用程序GUI交互的统计信息.
仅仅因为您需要实现日志记录而不是为每个按钮创建单独的操作不是最好的主意.Ulrich Gerhardt的回答看起来很合适.我可以为TActionList.OnExecute事件分配一个处理程序,并从一个地方写入日志.
是否有可能在活动编辑器窗口中突出显示特定行,就像Delphi IDE突出显示编译器错误时那样?
该FMX.Types.TBitmap班有ScanLine在FMX(FireMonkey)财产,但似乎除去此属性,并在FMX2(FireMonkey FM2)丢失.
有没有解决方法?我们如何TBitmap直接在FMX2中访问内容?
JMapView控件不会出现在Android中的FireMonkey表单上.
请看下面我的代码,可能是我错过了什么.
NativeLayout: JNativeLayout;并被Maps: JMapView;声明为表单的私有字段.
procedure TForm3.FormShow(Sender: TObject);
var
MapOptions: JGoogleMapOptions;
Camera: JCameraPosition;
LatLng: JLatLng;
begin
CallInUIThreadAndWaitFinishing(
procedure
begin
LatLng := TJLatLng.JavaClass.init(0, 0);
Camera := TJCameraPosition.JavaClass.init(LatLng, 3, 0, 0);
MapOptions := TJGoogleMapOptions.JavaClass.init;
MapOptions.camera(Camera);
MapOptions.mapType(TJGoogleMap.JavaClass.MAP_TYPE_NORMAL);
MapOptions.compassEnabled(False);
MapOptions.rotateGesturesEnabled(False);
MapOptions.tiltGesturesEnabled(False);
Maps := TJMapView.JavaClass.init(SharedActivity, MapOptions);
NativeLayout := TJNativeLayout.JavaClass.init(SharedActivity,
MainActivity.getTextEditorProxy.getWindowToken);
NativeLayout.setControl(Maps);
NativeLayout.SetPosition(10, 10);
NativeLayout.SetSize(600, 600);
NativeLayout.SetFocus(true);
end);
end;
Run Code Online (Sandbox Code Playgroud)
执行此代码后,我看到一个空的FireMonkey表单.