GVKun编程网logo

Delphi 5组件会自动将“db.pas”单元添加到uses子句中吗?(delphi组件参考大全)

9

对于想了解Delphi5组件会自动将“db.pas”单元添加到uses子句中吗?的读者,本文将提供新的信息,我们将详细介绍delphi组件参考大全,并且为您提供关于AngularJS1.1.5-自动将

对于想了解Delphi 5组件会自动将“db.pas”单元添加到uses子句中吗?的读者,本文将提供新的信息,我们将详细介绍delphi组件参考大全,并且为您提供关于AngularJS 1.1.5-自动将哈希标签添加到URL、Delphi 2009中的“Delphi Fundamentals”、delphi – TPanel在包含TPanel时不会自动调整大小、delphi – 为TMemo或TRichEdit组件添加intellimouse支持的有价值信息。

本文目录一览:

Delphi 5组件会自动将“db.pas”单元添加到uses子句中吗?(delphi组件参考大全)

Delphi 5组件会自动将“db.pas”单元添加到uses子句中吗?(delphi组件参考大全)

我正在编写自己的组件,我希望它将“db”单元添加到接口使用子句时,我将其放在表单上,​​因为它有一个已发布的事件,如:

TMyDBEvent = procedure(Sender: TObject; DataSet: TDataSet) of object;

TDataSet在db.pas中声明,我需要手动添加此单元,我想避免.

我见过这个解决方案:

How are Delphi units automatically added when a component is added to a form?

还有这个:

Can I make a custom Delphi component add multiple units to the uses clause?

那使用RegisterSelectionEditor,但是Delphi 5(我知道……)似乎没有这个单元.

我有什么选择?

解决方法

您可以使用相同的名称为组件单元中的类型添加别名:

type
  TDataSet = Db.TDataSet;

无论何时将组件放在表单上,​​Delphi都应将其单元添加到uses子句中.然后,无论你是否以该形式使用Db,都有一个与Db相当的有效TDataSet.

Could there be any side effects/implications/conflicts issues to such type aliasing?

从语言的角度来看,没有.

一般来说,当2个代码(有时甚至在同一个单元中)看起来使用相同的类型时,具有相同名称的类型会导致问题是不明智的,但它们实际上是内部不同的类型.但是,在这种情况下,类型实际上是相同的.

从IDE的角度来看,并不多.

>一个小问题是IDE中的“查找声明”需要额外的步骤才能达到基础类型.
>另一个问题与代码完成有关.我曾经历过,当这种稍微不同寻常的引用技术< unit-name>.< type-name>时,某些版本的Delphi偶尔会遇到代码完成的困难.用来. (我不记得Delphi 5是如何(或者甚至是)受到影响的.)

Are there any other kNown components that uses this trick?

我不知道使用该技术的任何组件.但是我在很多场合出于各种原因使用了混叠.主要是为了避免强制客户端单元的连锁依赖.

AngularJS 1.1.5-自动将哈希标签添加到URL

AngularJS 1.1.5-自动将哈希标签添加到URL

有谁知道为什么1.1.5版会自动在您的网址中添加井号,以及如何将其关闭?海事组织这看起来很丑。只要您的网址不以正斜杠结尾,它就会发生。(我没有使用路线之类的东西)。

所以这:

http://my.website.com/about

变成

http://my.website.com/about#/about

还有这个:

http://my.website.com/about.html

变成:

http://my.website.com/about.html#/about.html

但是这个:

http://my.website.com/about/

没有这个问题。

答案1

小编典典

前几天,我遇到了这个问题。我通过为启用HTML5模式解决了该问题$locationProvider。看到 $ location的文件-
HTML5模式
更新了$
location-HTML5模式的链接。

它看起来应该类似于:

.config([''$locationProvider'', function($locationProvider){    $locationProvider.html5Mode(true).hashPrefix(''!'');}]);

Delphi 2009中的“Delphi Fundamentals”

Delphi 2009中的“Delphi Fundamentals”

有没有人在Delphi 2009中使用/转换过“Delphi Fundamentals”? – http://fundementals.sourceforge.net/

我在我的项目中使用词典(cArrays.pas,cDictionaries.pas,cStrings.pas,cTypes.pas),现在我在升级代码时遇到了一些麻烦.

如果有人能够在Delphi 2009中转换上述单位,我将非常感激.我对Delphi很新,从2007年开始工作,2009年已经发布,我只是无法帮助自己……

谢谢

解决方法

我在项目中使用cUtils,cDateTime和cStrings.

经过30分钟的搜索和替换,像疯子一样,我让他们在Delphi 2009中编译,只有几个警告要修复.

> Char>>>> AnsiChar
>字符串>>>> AnsiString
> PChar>>>> PAnsiChar
> PString>>>> PAnsiString

它通过了所有的自我测试,到目前为止似乎工作正常.我在这里分享了它:http://www.xs4all.nl/~niff/Fundamentals_UtilsD2009.zip

更新我已经将一个移植的cDataStructs.pas添加到zipfile,其中包含字典类.这个仍然有许多编译器警告,你可能想要修复,但自检通过,所以你可以尝试看看它是否适合你..

delphi – TPanel在包含TPanel时不会自动调整大小

delphi – TPanel在包含TPanel时不会自动调整大小

我在另一个内部有一个面板:

内部面板对齐alTop:

并且外部面板设置为AutoSize = true:

一切都很大.如果我在设计时更改了内部面板的高度,外部面板会自动调整大小以适应它:

现在运行时

现在我需要change the height of the inner panel at runtime:

procedure TForm2.Button1Click(Sender: TObject);
begin
    pnlInner.Height := pnlInner.Height + 50;
    lblPointer.Top := pnlOuter.Top + pnlInner.Height;
end;

除非我在运行时更改内部面板的高度,否则自动调整大小的面板不会自动调整大小:

这当然适用于Delphi 5,7和probably XE2 – XE5.

有什么问题?

当然,解决方法是绕过Alignment / Autosize并在各种OnResize事件期间执行所有操作.但那显然不是RAD.我确定这是VCL中的一个小错误.而且由于我们已经修补了大约二十二个XE6 VCL错误,因此修复它会更好,所以没有其他人需要考虑它.

奖金Chatter

我喜欢这条线:

and,Could you please attach sample project?

这几乎就像没有人打算甚至试图重现它.

解决方法

问题是TWinControl.AlignControls中的回归:
procedure TWinControl.AlignControls(AControl: TControl; var Rect: TRect);
begin
   //...snip

   // Apply any constraints
   if Showing and ((sfWidth in FScalingFlags) or (sfheight in FScalingFlags)) then
      DoAdjustSize;

   //...snip
end;

这里的错误是它不会调用DoAdjustSize,除非存在sfWidth或sfheight缩放标志.

解决方法是不要试图超越自己,DoAdjustSize无论如何:

procedure TWinControl.AlignControls(AControl: TControl; var Rect: TRect);
begin
   //...snip

   // Apply any constraints
   //QC125995: Don't look to scaling flags to decide if we should adjust size
   if Showing {and ((sfWidth in FScalingFlags) or (sfheight in FScalingFlags))} then
      DoAdjustSize;

   //...snip
end;

找到这个修复程序后,我们解决了the similar issue except with a TOleControl (e.g. TWebBrowser) rather than a TPanel问题.

Note: Any code released into public domain. No attribution required.

delphi – 为TMemo或TRichEdit组件添加intellimouse支持

delphi – 为TMemo或TRichEdit组件添加intellimouse支持

我如何为TMemo或TRichEdit组件添加 intellimouse支持

我正在使用Delphi XE

解决方法

必须将 ScrollBars属性设置为ssHorizo​​ntal,ssvertical或ssBoth,并将 IMouse单元添加到项目中.

UPDATE

为避免IMouse单元导致的内存泄漏,必须在应用程序退出之前添加此代码(例如,在主单元的最终部分中).

if Assigned(Mouse.PanningWindow) then
    Mouse.PanningWindow := nil;

今天关于Delphi 5组件会自动将“db.pas”单元添加到uses子句中吗?delphi组件参考大全的讲解已经结束,谢谢您的阅读,如果想了解更多关于AngularJS 1.1.5-自动将哈希标签添加到URL、Delphi 2009中的“Delphi Fundamentals”、delphi – TPanel在包含TPanel时不会自动调整大小、delphi – 为TMemo或TRichEdit组件添加intellimouse支持的相关知识,请在本站搜索。

本文标签: