将TPanel组件放入设计器时,似乎无法制作transparent?有一个不透明度选项,但只有动画才有效.我希望面板本身完全透明,所以我可以看到下面的图像.(我想使用面板作为控件布局的一种方式放置在它上面)
我msbuild在RAD Studio XE4中遇到了一些奇怪的错误,我正在寻求帮助来诊断正在发生的事情.我已经遇到了这个问题已经有几个星期了,但是我自己也没有成功解决这个问题 - 时间问得更广泛了.症状是:
msbuild Project.cbproj似乎可以正常工作msbuild Project.cbproj /t:Clean,并删除中间文件.输出的可视扫描不显示任何异常文件被删除 - 只有.obj文件,链接器状态文件,最终EXE等.msbuild Project.cbproj /t:Build或只是简单失败,并显示以下错误消息:msbuild Project.cbprojMicrosoft(R)Build Engine版本3.5.30729.5420 [Microsoft .NET Framework,版本2.0.50727.5472]版权所有(C)Microsoft Corporation 2007.保留所有权利.
Build build 12/09/2013 10:35:03.节点0上的项目"C:\ projects\Project.cbproj"(默认目标).
_PasDepCheck:已修改:Source\Common\resample.pas _PasCoreCompile:Embarcadero Delphi for Win32编译器版本25.0版权所有(c)1983,2013 Embarcadero Technologies,Inc.C:\ Program Files(x86)\ Embarcadero\RAD Studio\11.0\Bin\CodeGear.Cpp.Targets(191 1,5):错误F1026:找不到文件:'True.dpr'完成构建项目"C:\ projects\Project.cbproj"(默认目标) - 失败.
建立失败.
"C:\ projects\Project.cbproj"(默认目标)(1) - >(_PasCoreCompile目标) - > C:\ Program Files(x86)\ Embarcadero\RAD Studio\11.0\Bin\CodeGear.Cpp.Targets(1 911,5):错误F1026:找不到文件:'True.dpr'
Run Code Online (Sandbox Code Playgroud)0 Warning(s) 1 Error(s)
有些事情让我觉得这个:
True.dpr不存在,也无法找到手动搜索.cbproj文件True.dpr的True …如何使用FiremonkeyFM³获得屏幕尺寸?以下代码:
var
Size: TPointF;
begin
Size := FMX.Platform.IFMXScreenService.GetScreenSize;
...
end;
Run Code Online (Sandbox Code Playgroud)
导致此编译器错误:
[dcc32 Error] Unit1.pas(46): E2018 Record, object or class type required
Run Code Online (Sandbox Code Playgroud)
我该如何使用IFMXScreenService界面来获取屏幕尺寸?
我试图压缩Microsoft Access数据库,但下面显示的代码不起作用.
procedure TForm1.Disconnect1Click(Sender: TObject);
begin
ADODataSet1.Active := False;
ADOTable1.Active := False;
ADODataSet1.Connection := nil;
DataSource1.Enabled := False;
ADOConnection1.Connected := False;
JetEngine1.Disconnect;
end;
function DatabaseCompact(const sdbName: WideString): boolean;
{ Compact ADO mdb disconnected database. }
var
iJetEngine: TJetEngine; { Jet Engine }
iTempDatabase: WideString; { TEMP database }
iTempConn: WideString; { Connection string }
const
iProvider = 'Provider=Microsoft.Jet.OLEDB.4.0; Data Source=';
begin
Result := False;
iTempDatabase := ExtractFileDir(sdbName) + 'TEMP' + ExtractFileName(sdbName);
iTempConn := iProvider + iTempDatabase;
if FileExists(iTempDatabase) then
DeleteFile(iTempDatabase); …Run Code Online (Sandbox Code Playgroud) 我在Delphi 7中有一个项目,我TAdoQuery.ParseSql();用来加载参数.现在我在XE4中编译它,参数类型有时是错误的.这真的是ftInteger创造了ftSmallint.我该怎么做才能解决这个问题?我的数据库是SQL Server 2008 R2.
表定义:
CREATE TABLE [dbo].[tblTest](
[sysId] [int] IDENTITY(1,1) NOT NULL,
[Code] [nvarchar](50) NOT NULL,
[Name] [nvarchar](500) NOT NULL,
CONSTRAINT [PK_tblTest]
PRIMARY KEY CLUSTERED ( [sysId] ASC )
WITH ( PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON )
ON [PRIMARY] )
ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)
样本数据:
INSERT INTO tblTest ( Code, Name ) VALUES ( 'a1', 'name1' )
Run Code Online (Sandbox Code Playgroud)
德尔福代码:
ADOQuery.SQL.Text := 'SELECT * FROM tblTest …Run Code Online (Sandbox Code Playgroud) 我有一个'基类',它包含一个'函数',接受'Array of const'类型的参数,如下所示: -
type
TBaseClass = class(TObject)
public
procedure NotifyAll(const AParams: array of const);
end;
procedure TBaseClass.NotifyAll(const AParams: array of const);
begin
// do something
end;
Run Code Online (Sandbox Code Playgroud)
我有另一个'通用类'派生自'基类'(上面定义)
type
TEventMulticaster<T> = class(TBaseClass)
public
procedure Notify(AUser: T); reintroduce;
end;
procedure TEventMulticaster<T>.Notify(AUser: T);
begin
inherited NotifyAll([AUser]); ERROR HERE
end;
Run Code Online (Sandbox Code Playgroud)
每次我编译这段代码时都会出错:
变量类型数组构造函数中的错误参数类型
它指的是什么错?
我有以下流利的接口声明和实现该接口的类:
type
IDocWriter = interface
['{8CB5799A-14B1-4287-92FD-41561B237560}']
function Open: IDocWriter;
function Close: IDocWriter;
function Add(const s: string): IDocWriter;
function SaveToStream(Stream: TStream): IDocWriter;
end;
TDocWriter = class(TInterfacedObject, IDocWriter)
public
function Open: IDocWriter;
function Close: IDocWriter;
function Add(const s: string): IDocWriter;
function SaveToStream(Stream: TStream): IDocWriter;
end;
{ TDocWriter }
function TDocWriter.Open: IDocWriter;
begin
Result := Self;
// DoOpen
end;
function TDocWriter.Close: IDocWriter;
begin
Result := Self;
// DoClose
end;
function TDocWriter.Add(const s: string): IDocWriter;
begin
Result := Self;
// DoAdd
end;
function TDocWriter.SaveToStream(Stream: …Run Code Online (Sandbox Code Playgroud) 使用Delphi IDE处理版本信息并非易事。借助DDevExtensions,我设法获得了项目中的基本版本信息,该信息将在所有项目平台/配置中传播。在这种情况下为Win32 / Win64。
似乎VerInfo_Keys标记是负责在最终exe文件中包含正确的版本信息的标记。
<VerInfo_Keys>FileVersion=5.0.0.501;ProductVersion=5.0;CompanyName=;LegalCopyright=Copyright © 2015;FileDescription=Setup</VerInfo_Keys>
Run Code Online (Sandbox Code Playgroud)
但是,在.dproj文件的结尾附近,还有一组版本信息条目,由VersionInfo和覆盖VersionInfoKeys。
<VersionInfo>
<VersionInfo Name="IncludeVerInfo">False</VersionInfo>
<VersionInfo Name="AutoIncBuild">False</VersionInfo>
<VersionInfo Name="MajorVer">1</VersionInfo>
<VersionInfo Name="MinorVer">0</VersionInfo>
<VersionInfo Name="Release">0</VersionInfo>
<VersionInfo Name="Build">0</VersionInfo>
<VersionInfo Name="Debug">False</VersionInfo>
<VersionInfo Name="PreRelease">False</VersionInfo>
<VersionInfo Name="Special">False</VersionInfo>
<VersionInfo Name="Private">False</VersionInfo>
<VersionInfo Name="DLL">False</VersionInfo>
<VersionInfo Name="Locale">1050</VersionInfo>
<VersionInfo Name="CodePage">1250</VersionInfo>
</VersionInfo>
<VersionInfoKeys>
<VersionInfoKeys Name="CompanyName"/>
<VersionInfoKeys Name="FileDescription"/>
<VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
<VersionInfoKeys Name="InternalName"/>
<VersionInfoKeys Name="LegalCopyright"/>
<VersionInfoKeys Name="LegalTrademarks"/>
<VersionInfoKeys Name="OriginalFilename"/>
<VersionInfoKeys Name="ProductName"/>
<VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
<VersionInfoKeys Name="Comments"/>
<VersionInfoKeys Name="CFBundleName"/>
<VersionInfoKeys Name="CFBundleDisplayName"/>
<VersionInfoKeys Name="UIDeviceFamily"/>
<VersionInfoKeys Name="CFBundleIdentifier"/>
<VersionInfoKeys Name="CFBundleVersion"/>
<VersionInfoKeys Name="CFBundlePackageType"/>
<VersionInfoKeys Name="CFBundleSignature"/> …Run Code Online (Sandbox Code Playgroud) 如果将长RTF-sequenz(例如150 000个字符串)流式传输到TRichEdit控件中(在XE4中),则控件不会显示文本,而是显示原始RTF代码:
{\rtf1\ansi\ansicpg1252\deff0...
Run Code Online (Sandbox Code Playgroud)
怎么了?
procedure TForm1.Button1Click(Sender: TObject);
var
RtfText: string;
Stream: TStringStream;
begin
RtfText := GenerateRtfText();
Stream := TStringStream.Create(RtfText);
try
RichEdit2.PlainText := False;
RichEdit2.Lines.LoadFromStream(Stream); //<--- ERROR: RichEdit displays raw RTF-Code
// if RtfText is too long
if StartsText('{\rtf', RichEdit2.Lines.Text) then
begin
ShowMessage('Oh no, not converted!');
//WORKAROUND: 2nd try seems to work...
//Stream.Position := 0;
//RichEdit2.Lines.LoadFromStream(Stream);
end;
finally
Stream.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
例如,具有以下RTF生成功能:
function TForm1.GenerateRtfText: string;
var
I: Integer;
Stream: TStringStream;
const
DOES_WORK_COUNT = 10000;
DOES_NOT_WORK_COUNT = 15000;
begin
//Fill …Run Code Online (Sandbox Code Playgroud) 如何在Delphi中检测等宽字体?
TFont.Pitch应该是fpFixed我认为,但它对Delphi XE4不起作用:
var
Font: TFont;
begin
Font := TFont.Create;
Font.Name := 'Courier New';
if Font.Pitch = fpFixed then
ShowMessage('Monospace Font!');
...
Run Code Online (Sandbox Code Playgroud)
Font.Pitch基于GetObjectWinAPI.它应该返回lfPitchAndFamily FIXED_PITCH,但我总是得到DEFAULT_PITCH所有字体(也适用于Arial).
delphi-xe4 ×10
delphi ×9
ado ×2
firemonkey ×2
c++builder ×1
delphi-7 ×1
generics ×1
ios ×1
ms-access ×1
msbuild ×1
winapi ×1