草庐IT

delphi-prism

全部标签

1.Prism框架介绍

什么是Prism:1.WPFPrism是一个用于构建模块化、可扩展和可重用的WPF应用程序的框架。它基于MVVM模式,提供了一种简单且灵活的方式来管理复杂的WPF应用程序。2.Prism框架提供了一些核心概念,包括模块化开发、依赖注入、命令模式、导航和事件聚合等。它还提供了一些实用工具和类来简化开发过程,例如模块加载器、事件聚合器、导航器等。3.Prism框架的主要目标是帮助开发人员构建易于维护和扩展的WPF应用程序,同时提高代码的可重用性和可测试性。Github:https://github.com/PrismLibrary/PrismPrism包括哪些功能模块:   1.Region(区域

2.Prism框架ModuleAttribute、IOC扩展、功能注册

ModuleAttribute(按需延迟加载)ModuleAttribute是Prism框架中用于标识模块的属性。通过使用ModuleAttribute,可以将模块与特定的模块目录进行关联,从而使Prism应用程序能够动态加载和初始化模块。在使用WPFModuleAttribute时,需要将该属性应用于模块类,并指定模块的模块目录路径。例如:ModuleName:获取或设置模块的名称OnDemand:获取或设置指示是否应按需加载模块的值。StartupLoaded:获取或设置一个值,该值指示是否应在启动时加载模块[Module(ModuleName="MyModule",OnDemand=tr

c++ - 将 Delphi 类传递给需要具有 __thiscall 方法的类的 C++ 函数/方法

我有一些MSVC++编译的DLL,我为其创建了类COM(精简版)接口(interface)(抽象Delphi类)。其中一些类具有需要指向对象的指针的方法。这些C++方法是使用__thiscall调用约定(我无法更改)声明的,这与__stdcall类似,只是传递了一个this指针在ECX寄存器上。我在Delphi中创建类实例,然后将其传递给C++方法。我可以在Delphi中设置断点,并看到它命中了我的Delphi类中公开的__stdcall方法,但很快我得到一个STATUS_STACK_BUFFER_OVERRUN并且应用程序必须退出。是否可以在Delphi方面模拟/处理__thisca

c++ - Delphi 中 dynamic_cast 的等价物是什么?

在Delphi中,C++的dynamic_cast、reinterpret_cast和static_cast运算符(尤其是在对象上使用时)的等效项是什么? 最佳答案 重新解释_cast大多数时候,在Delphi中,转换是reinterpret_cast,即一种类型的位和字节被重新解释为另一种类型,例如Integer(myEnum)或Pointer(MyDynamicArrayVar)。有些转换会截掉位,即Integer(MyInt64)会截掉Int64的高32位,而低32位的高位会变成新的符号位。一些Actor阵容扩大,例如Inte

c++ - Delphi 中 C++ NULL 的等效常量是什么?

我需要将我的C++代码迁移到Delphi。在C++代码中有许多检查来检查给定句柄​​(HANDLE)是否为NULL。可以在Delphi中使用的等效常量是什么?Delphi中的null似乎与C++中的NULL不同。 最佳答案 在WindowsC++头文件中,NULL是一个扩展为0的宏.这意味着NULL可以在数字和指针上下文中使用,因为C++语言支持这种用法。但是,对于Delphi,值0用于数字上下文,值nil在指针上下文中使用。WindowsHANDLE值在Delphi中声明为数字类型,因此代替C++NULL你应该使用0在德尔福。

c++ - 类实例和指针背后的 Delphi 设计原则是什么?

我有C++背景,对类、指针和内存地址相当了解。但是,对于Delphi,我发现自己很困惑。我知道,当您在函数/过程的var部分中声明特定类型类的变量时,您真正声明的是指向该类的指针。例如,下面的Delphi和C++大致相同,都在堆上分配MyObject类所需的内存量。//DelphiprocedureBlah.Something();varo:MyObject;begino:=MyObject.Create;o.Free;end;//C++voidBlah::Something(){MyObject*o=newMyObject();deleteo;}在C++中,使用指针(和引用)允许在类

c++ - 如何在 Delphi 中使用由 dll 导出的 C++ 类

有没有办法在Win32的Delphi中使用由win32dll导出的C++类?是否有其他方法来实现类似的东西(COM、.NET等)? 最佳答案 你不能导入一个类。您只能导入函数。RudyVelthuishaswrittenatlengthonthetopic.尽管您不能直接使用导出的C++类,但他描述了一些实现相同效果的技术:“扁平化”对象,因此在调用方不再有对象,只有一个指针连同其他参数一起传递给DLL,用于包装对象方法的一系列函数。编写包装器非常简单,尽管它可能很乏味。使用纯虚类。WindowsC++编译器和Delphi通常具有相

Prism:打造WPF项目的MVVM之选,简化开发流程、提高可维护性

 概述:探索WPF开发新境界,借助PrismMVVM库,实现模块化、可维护的项目。强大的命令系统、松耦合通信、内置导航,让您的开发更高效、更流畅在WPF开发中,一个优秀的MVVM库是Prism。以下是Prism的优点以及基本应用示例:优点:模块化设计: Prism支持模块化开发,使项目更易维护和扩展。强大的命令系统: 提供了DelegateCommand等强大的命令实现,简化了用户交互操作的绑定。松耦合的通信: 通过EventAggregator实现松耦合的组件间通信,提高了代码的可维护性。内置导航系统: 提供了灵活的导航框架,支持导航到不同的视图和传递参数。使用步骤:1.安装PrismNuG

c++ - 如何在 Delphi 中调试 DLL 文件

我是一名VisualC++开发人员,但在我的项目中有一些Delphi组件。我需要调试Delphi组件来解决一些问题。在调试中生成一个DLL文件,然后在Delphi中开始调试,必须具备哪些条件? 最佳答案 在Delphi7中你会这样做:项目|选项|编译器|调试|调试信息(检查)然后去运行|参数|托管应用程序并输入您的exe的名称。在您的DLL代码中添加一些断点,然后单击运行。您的exe将被加载,您可以在DelphiIDE中调试DLL部分。如果您的exe已经在运行,请单击运行|附加到进程--我对此进行了测试,发现我还需要在Delphi7

查询返回没有结果(Delphi,Oracle,DBExpress)

我正在尝试从OracleSQLServer获得查询结果,然后将其插入StringGridShowPapers桌子。我有SQLConnection1(DBExpress连接)设置和工作,SQLDataSetPapers数据集和查询SQLQueryPapers.当我运行此过程时,查询似乎什么都没有返回:procedureTFormOperator.TabSheetShowPapersShow(Sender:TObject);beginSQLQueryShowPapers.SQL.Text:='SELECT*FROMpapers';SQLQueryShowPapers.Open;SQLQuerySh