vcl专题提供vcl的最新资讯内容,帮你更好的了解vcl。
我需要将VCL组件从32位转换为64位(Delphi XE2).现在我可以安装它,只有当我选择“32位平台”,如果我选择“64位平台”我可以编译,但不安装(没有安装菜单). 如何添加64位支持并安装64位应用程序? 如果你的意思是“安装到IDE”,简单的答案是你不能. IDE是一个32位应用程序,不适用于托管64位DLL.任何组件或插件必须编译为32位才能使用IDE本身. 组件中的64位支持仅用于
当支持运行时DPI切换被添加到窗体类时,没有考虑到诸如菜单之类的基本UI元素. 菜单绘图基本上被打破,因为它依赖于Screen.MenuFont,这是一个系统范围的度量,不是特定于监视器的.因此,当表单本身可以相对简单地适当地缩放时,显示在其上的菜单只能正常工作,如果缩放恰好匹配任何加载到Screen对象中的指标. 这是主菜单栏,其弹出菜单和窗体上的所有弹出菜单的问题.如果表单被移动到具有与系统指
径向菜单已经在几个地方开始出现.我很好奇有没有人看过或正在使用Delphi的径向菜单组件?我们有一个我们想要的概念,在 http://jmrsoftware.delaneyjoi.com/wheel.gif的动画GIF中显示(菜单动画开始需要大约10秒钟) alt text http://jmrsoftware.delaneyjoi.com/wheel.gif 有没有人知道Delphi的组件具有类
Delphi 2010,Win32 VCL.我需要用最标准的外观为我的应用程序创建一个主菜单. TMainMenu在所有 Windows版本中看起来不错,唯一不好的是当它显示Enabled = False的项目的图像时. Delphi有一些奇怪的方法来构建禁用的图像(b / w挤出与斜面,因为我看起来像spew).我想在VCL源中为该过程制作一个补丁,并让菜单从同一个TImageList中选择禁用
我的问题类似于这里的想法: Replacing a component class in delphi. 但是我需要根据需要更改特定的组件类. 这是一些伪演示代码: unit Unit1; TForm1 = class(TForm) ImageList1: TImageList; ImageList2: TImageList; private ImageList3: TImageLi
要求TComponent作为所有者实例化某种对象似乎完全无关紧要.为什么需要这么多Delphi组件? 例如,TXMLDocument需要TComponent对象实例化. 为什么是这样,如果有一个很好的理由,我应该在那里使用什么来“做正确的事情”? 所有者组件应该管理其所有的组件.当所有者被销毁时,所有的组件被自动销毁. 这有助于开发人员从工具调色板中拖放组件,将其放在窗体上,并将事件挂钩,以完成工
我必须从 XML文件加载一个图像. XML文件中没有关于图像是JPG / GIF / BMP的信息.加载图像后,我需要将其转换为Bitmap. 有没有人知道如何将图像转换为Bitmap而不知道实际的文件格式?我正在使用Delphi 2007/2009 谢谢. Delphi 2009内置支持JPEG,BMP,GIF和PNG. 对于早期版本的Delphi,您可能需要找到PNG和GIF的第三方实现,但在
我已经创建了一个基于TPaintBox的组件,TGridPaintBox.它基本上是一个添加了“网格功能”的paintbox.它不是数据网格.更像棋盘组件. 在对象资源管理器中,我可以设置某些属性.最重要的是我可以设置网格尺寸(跨/下两个单元格),还可以设置与图形有关的选项.细胞是否应该是正方形,奇/偶细胞的颜色等 我的这个组件的第一个版本的属性直接在类上,当我更改了一个属性时,设计时间图被立即更
我想要做的是检查我的应用程序是否具有焦点,因为如果不是,那么我将在通知区域上方弹出警报窗口以向最终用户显示一些消息. 调用 Windows.GetForegroundWindow(),然后将HWND传递给Controls.FindControl()函数.如果HWND属于您的进程,它将返回一个非零的TWinControl指针.例如: if FindControl(GetForegroundWindo
我有一个Delphi应用程序,我们正在迁移到C.在调试我的Delphi代码时,我经常会做的一件事是进入VCL本身,以了解正在发生的事情,以跟踪​​一些错误.在C Builder中有可能吗 假设我在C Builder中,我称之为“ShowMessage”.我可以在我的调试会话中进入该调用,并快速切换到Pascal吗? 这是可能的,但您必须更改两个设置. 您必须在链接器设置中关闭动态RTL. 您必须在
目前我正在测试启用VCL样式的应用程序的各个方面. 我注意到,Windows缩放高于默认的96 dpi / 100%, VCL表格的图标和标题栏文字太大了 – 两者都要靠在一起 – 请参阅附页截图.对于200%或250%的更高标度(例如在4K显示器和Windows 10上使用),尤其如此,但即使缩放为144 dpi / 150%,问题也已经可见. 对于随RAD Studio提供的所有样式,都是如此
我正在尝试在没有焦点的情况下在TEdit控件上实现我自己的绘图(当编辑器没有完全显示其文本时在TEdit中显示省略号).所以我用这段代码明星אed: type TEdit = class(StdCtrls.TEdit) private FEllipsis: Boolean; FCanvas: TCanvas; procedure WMPaint(var Messag
下面的代码在Delphi 7中运行正常.但是,在Delphi 2009中,表单仍然隐藏,但任务栏上的按钮现在出现了. ShowWindow(Handle, SW_HIDE); SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW ); ShowWindow(Handle,
有一个包含一些长项的ListBox.这些长项超出了ListBox的右边缘,这里有一个想法,当鼠标悬停在这些项目上时显示这些项目的提示. 我找到了一个例子:(从http://delphi.about.com/cs/adptips2001/a/bltip0201_4.htm开始) procedure TForm1.ListBox1MouseMove (Sender: TObject; Shift: T
我有一个应用程序从二进制日志文件加载记录,并将其显示在虚拟TListView中.文件中可能存在数百万条记录,并且用户可以对显示进行过滤,因此我不会同时在内存中加载所有记录,并且ListView项目索引与之不是一对一的关系.文件记录偏移(例如,列表项1可以是文件记录100).我使用ListView的OnDataHint事件来加载ListView实际感兴趣的项目的记录.当用户滚动时,OnDataHin
数据感知控件可以链接到数据集,以显示当前行中的字段中包含的数据,或者在某些情况下,显示来自多行中的一个或多个列的数据. TTabControl允许您以易于理解的方式将同一组控件应用于不同的数据值集. 在我看来他们会很好地在一起. TTabControl将提供良好的数据感知控制(将其链接到数据集中的标识列,它可能是比TDBNavigator更直观的导航器),但VCL中没有一个. 有没有人创建了数据感
我已经看到Delphi中的大多数组件(VCL)分为两部分. 1)DesignTime包 2)RunTime包 为什么这么大惊小怪.如果将RunTime和DesignTime包合并为一个包,它会有什么不同? 我从来没有真正理解这种分离逻辑. 那么这背后的逻辑是什么? 有人提到这个区别只是为了避免采用和遵循微软制定的组件标准.真的,这背后没有逻辑. 这是真的? 答:某些组件具有大而复杂的设计时功能,例
据我了解并了解TThread类的方法,如果你同步你的代码,它实际上是在主应用程序线程中执行的(就像一个计时器/按钮点击等). 我一直在玩,并注意到MessageBox不会阻止主应用程序,但是睡眠就像预期的那样.这是为什么? type TTestThread = class(TThread) private procedure SynchThread; protected
我有一个VCL表格,上面有五个标签TPageControl.每个TTabSheet的内容都是相当无关的,并且有很多单独的控件和处理逻辑……所以我想要将其分解,以便更容易处理“只是那个选项卡”的代码.像一条线 //-------------------------- begin rules tab methods ------------------- 只是不再削减它了.真的,我想我想以某种方式将每
Delphi中是否有任何内置函数可以从TStringList中删除所有空字符串? 如何遍历列表以删除这些项目? 要回答你的第一个问题,没有内置功能.手动循环很容易.这应该这样做: for I := mylist.count - 1 downto 0 do begin if Trim(mylist[I]) = '' then mylist.Delete(I); end; 请注意,for循