Delphi
我正在Delphi XE2中找到类似于 Inc()的某个功能,它允许我从当前数量的度数中加减法,导致新的学位。例如,如果我有一个点在一个圆圈周围5度,我想减去10,我不应该得到-5度,而不是355(360 - 5)。与添加过去360相同 - 当它达到360时应该返回到0。 在Delphi中是否有这样的东西,所以我不必重写它?可能在 Math 单位? 解决方案 使用 System.S
..
我正在尝试创建一个通用类,我可以使用一组枚举来启动其中的值。例如: 构造函数TManager .Create; var 枚举:TEnum; enumObj:TMyObject; begin fMyObjectList:= TObjectDictionary .Create([doOwnsValues],10); 为枚举:
..
当你有一个TDBGrid,全部行选择,并始终显示选择,即使没有集中,你想完全拥有者绘制它,你可以选择不赞成的事件 OnDrawDataCell 和一个新事件 DrawColumnCell ,我选择了后者,尝试这样: 程序TDbGridTestForm.mygridDrawColumnCell(发件人:TObject; const Rect:TRect; DataCol:Integer;列
..
我有一个线程叫做TAlertThread。线程通过触发事件与其所有者进行交互。例如,当某些数据在线程内部可用时,它会设置一些临时变量并调用Synchronize(UpdateAlert),从而触发相应的事件。 完美的在任何标准Windows应用程序。我的问题是当我将该线程放在ActiveX窗体(TActiveForm)中时。然后将ActiveX控件(又名COM对象)嵌入到Windows桌面小
..
是否可以让IDE在Delphi XE中自动实现继承的抽象方法?在Java和C#IDE中,它是一个常见的功能,如在Visual Studio中按ALT + SHIFT + F10或IntelliJ IDEA中的ALT + RETURN。 没有这个我总是要手动查找哪些方法必须实现,并复制他们的声明,这真的是我现在不应该做的事情! p> 解决方案 您可以在类声明中使用ctrl + spac
..
我需要使用 TClientdataset 进行一些聚合。在SQL中,这些聚合可以用这样的脚本完成: 从table1中选择Sum(column1),其中Date_Column
..
我最近下载了SynEdit,我想知道如何启用行号(如拉撒路)? 我没有在互联网上找到任何东西。 感谢 解决方案 根据 这里找到的代码 尝试使用: SynEdit1.Gutter.ShowLineNumbers:= True;
..
是否有最大限制,可以将字符串传递给Delphi控制台应用程序的时间长度?我正在考虑传递大量的JSON数据。我将使用ParamStr(x)函数读取数据。 解决方案 命令行是限制由操作系统到2047个字符。 如果要使用更多的数据,你可以使用一个文件。
..
我想使Drag和Dock在我的应用程序中也像在Delphi IDE中一样工作(即可以拖动对象检查器/结构视图并将其停放在合适的站点)。我已经将对接表单转换成了PageControl已经取得了很好的成功,但是想知道是否有人知道如何使用这个小的关闭按钮和引脚等。 我也有兴趣知道Delphi IDE使用哪些组件来实现这一点。 我的问题是我想制作更多高级视频关于如何做到这一点,我以前做过的两个
..
我目前遇到编译错误,我们公司没有人可以帮助,我很遗憾的是找不到SO或谷歌的正确搜索模式。 作为代码我正在使用2个接口,继承和2类,继承。 以下代码重现错误: 程序Project22; {$ APPTYPE CONSOLE} type IStorageObject = interface(IInterface) end; TObjectStorage
..
在本地安全策略(PC控制面板 - 管理 - 本地安全策略)中,有一个参数“密码的最小长度”,参数“密码必须满足复杂度要求”(true / false)。如何在Delphi中读取它们(对于WinXpSp3-Win2003-Vista-Win7-Win2008(+ r2))? 我正在寻找类似的东西: 功能DetectSystemMinPassLength:integer; begin
..
我们希望在应用程序中添加可移动面板。目前我们已经使用DevExpress对接图书馆,但发现他们是令人失望的古怪和难以合作它也有一些局限性并不是很好。 通过拖放自动隐藏,固定和移动页面都是我们想要的功能使用。 内置的delphi对接似乎没有足够的功能来完成我们所需要的(见下面的示例)。也许我应该深入delphi的对接能力...我的初步印象是,他们似乎非常以工具栏为导向,而不是我可以放下一
..
在断言不是的时候,我希望能够做某些事情来阻止对未使用变量的提示活动在代码如 procedure Whatever; var v:整数; begin v:= DoSomething; Assert(v> = 0); 结束 在上述代码中,当断言不活动时,有一个关于变量v被分配的提示值是从未使用过的。 代码在一个将用于各种环境的库中,所以我可以专门
..
procedure questiontype; begin writeln('输入你想要的问题的类型...); writeln('1. Add'); writeln('2. Multiply'); writeln('3. Subtraction'); writeln('4. Division'); readln(typeofquestion); case type
..
我想格式化特定的单元格以强制两个小数位。数据来自一个ElevateDB存储过程并挂接到一个TDataSource中。 编辑:SQL编程注意: 我不知道这是否只是一个ElevateDB问题。在了解字段编辑器之前,我尝试通过在存储过程中使用CAST(NumericField as varchar(10))语句在SQL级别格式化数据。通过这样做,它没有在这个特定字段的字段编辑器中公开 Dis
..
我在Windows XP中使用Delphi Pro 6,配有FastMM 4.92和JEDI JVCL 3.0。给出下面的代码,我遇到以下问题:只有第一个异常处理块获得一个有效的E.实例。其他块与正在引发的异常类正确匹配,但E是未分配(nil)。 例如,给出当我提出E1匹配的块为E1匹配的异常处理块的当前顺序,而E是有效的对象实例。但是,如果我尝试提高E2,那么该块确实匹配,但是E未被分配(
..
我正在使用FireMonkey网格控件,但在尝试右对齐列时有一个持续的问题。从其他用户发帖,我设法创建一个新的TColumn类型,应用一个样式(文本为HorzAlign = taTrailing),理论上认为这将是解决方案。这些值由OnGetValue函数提供给Grid控件。 然而,问题是,虽然起初看起来不错,如果您滚动条/鼠标滚轮等新的TColumn类型列似乎不会使用下面的方法/代码正确刷
..
我有一个简单的字符串,由一些字符分隔,我们来说一个逗号。我应该能够创建一个TStringList并将其分隔符设置为逗号,然后将DelimitedText设置为我要解析的文本,并且应该自动解析。 问题是当我看看输出,它还包括空格作为分隔符,并排除我的结果。如何避免这种情况,或者有更好的方法来做到这一点。 解决方案 在TStringList中有一个StrictDelimiter属性。将其
..
我如何通过WebBrowser控件(ActiveX InternetExplorer)获取页面的源代码? 我有一个xml文档“foo.xml”。 var Web:TWebBrowser; begin ... Web.Navigate(“foo.xml”); //如何通过WebBrower控件获取源代码$ ---- ... end; 解决方案
..
我在Delphi中编写一个dll库,其中创建了多个线程。让我一步一步地描述问题。我很抱歉有一个冗长的描述: - (。 让我们忘记一段时间的图书馆,我创建了一个Windows应用程序,我创建了一个窗口,用于显示单个相机的视图,它包含一个TImage控件,有一个线程(一个TThread后代),每隔几毫秒从相机中下载当前图像,并将其分配给该窗口的TImage控件(使用Synchronize()方法
..