Windows资源管理器有一个箭头,指示列表视图(在报表视图样式中)的哪个列按哪个方向排序(ASC与DESC).
是否可以TListView在Delphi中显示这样的排序指示箭头?
Delphi 2009抱怨E2283错误:[DCC错误] outputcode.pas(466):E2283局部常量太多.使用较短的程序
Delphi 2007编译得很好.我找不到丰富的局部常数,它是一个短(500行)单位.你看到我能解决的任何丰富的常量或文字吗?
procedure TOutputCodeForm.FormCreate(Sender: TObject);
var
poParser : TStringStream;
begin
if ( IsWindowsVista() ) then
begin
SetVistaFonts( self );
end;
poParser := TStringStream.Create( gstrSQLParser );
SQLParser := TSyntaxMemoParser.Create( self );
SQLParser.RegistryKey := '\Software\Advantage Data Architect\SQLSyntaxMemo';
SQLParser.UseRegistry := True;
SQLParser.CompileFromStream( poParser );
FreeAndNil( poParser );
poParser := TStringStream.Create( gstrCPPParser );
cppParser := TSyntaxMemoParser.Create( self );
cppParser.RegistryKey := '\Software\Advantage Data Architect\SQLSyntaxMemo';
cppParser.UseRegistry := True;
cppParser.CompileFromStream( poParser );
FreeAndNil( poParser );
poParser := TStringStream.Create( gstrPasParser );
pasParser := TSyntaxMemoParser.Create( self …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个包含长参数字符串(> MAX_PATH)的快捷方式(在桌面上).
在MSDN文档中明确指出,对Unicode字符串的字符串可以超过MAX_PATH.
生成的快捷方式在MAX_PATH字符(即Path+ Arguments)后完全切断.
我的实现是否有问题,或者这是一些Windows限制?
procedure CreateShortcut(APath: WideString;
AWorkingDirectory: WideString; AArguments: WideString; ADescription: WideString;
ALinkFileName: WideString);
var
IObject : IUnknown;
ISLink : IShellLinkW;
IPFile : IPersistFile;
begin
IObject := CreateComObject(CLSID_ShellLink);
ISLink := IObject as IShellLinkW;
ISLink.SetPath( PWideChar(APath));
ISLink.SetWorkingDirectory(PWideChar(AWorkingDirectory));
ISLink.SetArguments( PWideChar(AArguments));
ISLink.SetDescription( PWideChar(ADescription));
IPFile := IObject as IPersistFile;
IPFile.Save(PWideChar(ALinkFileName), False);
end;
Run Code Online (Sandbox Code Playgroud)
PS:操作系统是Windows XP(及以上版本).
谁能帮助我如何在delphi中将int变量格式化为一分钟:秒?
示例:myVar:= 19;
我的标签标题应显示00:19
任何想法的人?谢谢
我想使RPC接口更容易使用.这是一个自定义界面,因此没有现成的包装器.
我必须围绕通常有许多参数的函数编写几个包装器.
解决方案1 - 为每个函数使用一个类:
TDoSomethingFunction = class
public
property Arg1: Integer;
property Arg2: string;
property Arg3: Boolean;
procedure Run;
end;
Run Code Online (Sandbox Code Playgroud)
调用者必须创建一个对象来调用该函数:
var
DoSomething: TDoSomethingFunction;
begin
DoSomething := TDoSomethingFunction.Create;
try
DoSomething.Arg1 := 0;
...
DoSomething.Run;
finally
free;
end;
Run Code Online (Sandbox Code Playgroud)
方法2 - 为每个函数使用包装器方法:
procedure TRPCInterface.DoSomething(AArg1: Integer; AArg2: string; AArg3: Boolean);
Run Code Online (Sandbox Code Playgroud)
来电者可以简单地称之为:
TRPCInterface.DoSomething(0, ...);
Run Code Online (Sandbox Code Playgroud)
方法1 - 每个函数的类
反对
临
方法2 - 包装方法
反对
临
我应该使用哪种方法?
我正在使用Delphi XE2和AnyDac组件以及Advantage Database 10.在我的代码中,我使用的参数化查询如下:
q.SQL.Text := 'SELECT * FROM Table1 ' +
'LEFT JOIN Table2 ON (Table1.ID = Table1 .ID_Table2) ' +
'WHERE ' +
':0 BETWEEN Table1.StartAm AND Table1.EndeAm ' +
'AND Table2 = :1';
q.Params[0].Value := AStartDateTime;
q.Params[1].Value := AIDRessourcenGruppe;
q.Open;
Run Code Online (Sandbox Code Playgroud)
这最终会出现异常:
Exception der Klasse EADSNativeException mit der Meldung'[AnyDAC] [Phys] [ADS] Error 7200:AQE Error:State = 22018;
NativeError = 2112; [iAnywhere Solutions] [Advantage SQL Engine]分配错误'aufgetreten.
当然AStartDateTime是一个有效的delphi TDateTime值,AIDRessourcenGruppe是一个整数值.
有趣的是,这两个变体有效:
q.SQL.Text := 'SELECT * FROM Table1 ' +
'LEFT JOIN Table2 …Run Code Online (Sandbox Code Playgroud) delphi parameters advantage-database-server delphi-xe2 anydac
我刚刚用一种奇怪的语法遇到了关于SO的答案:
MyString := 'Hello,' + ^M + ^J + 'world!';
我已经使用Delphi几年了,但我不知道你可以使用抑扬符号来控制字符.
这只是早期德尔福或Turbo Pascal时代遗留下来的吗?
它现在应该用吗?
PS:我不是在询问关于换行符的建议,有sLineBreak和原始问题中讨论的其他方法.
我正在尝试使用ODBC使用SQL查询工作表范围中的已定义名称.
我已经知道这有效:
SELECT * FROM [worksheet1$] -- Query a whole worksheet
SELECT * FROM [worksheet1$A1:C10] -- Query A1:C10 of a worksheet
SELECT * FROM myname -- Query a workbook scoped defined name
Run Code Online (Sandbox Code Playgroud)
请注意,这myname是工作簿范围,而不是工作表作用域.
我原以为像Excel公式中的东西也适用于ODBC表名:
SELECT * FROM worksheet1!myname -- Query a worksheet scoped defined name
Run Code Online (Sandbox Code Playgroud)
但是这不起作用,我尝试了一些语法变体.
这是可能的,如果是,那么使用什么语法?
注意Delphi开发者:该A1:C10语法会导致麻烦TADOQuery,你必须设置ParamCheck到False为了这个工作.
更新:
我正在使用随附的Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)版本.12.00.6606.1000Microsoft Office 2007
我已经检查过我正在使用的Delphi数据库组件的行为方式与Microsoft Query和Microsoft Access 2007相同.
我有以下.dpr
program TPWDDBManager;
{
Delphi DUnit Test Project
-------------------------
This project contains the DUnit test framework and the GUI/Console test runners.
Add "CONSOLE_TESTRUNNER" to the conditional defines entry in the project options
to use the console test runner. Otherwise the GUI test runner will be used by
default.
}
{$IFDEF CONSOLE_TESTRUNNER}
{$APPTYPE CONSOLE}
{$ENDIF}
uses
DUnitTestRunner,
TestuTPWDDBManager in 'TestuTPWDDBManager.pas';
{$R *.RES}
begin
DUnitTestRunner.RunRegisteredTests;
end.
Run Code Online (Sandbox Code Playgroud)
和以下单位:
unit TestuTPWDDBManager;
{
Delphi DUnit Test Case
----------------------
This unit contains a skeleton test case …Run Code Online (Sandbox Code Playgroud) 我遇到了一个关于XPath和Delphi TXmlDocument的问题.
虽然答案适用于选择单个xml节点,但我想用它来选择节点列表.
我找到了一个类似的实用函数,它应该完全正确,但它无法正常工作.
显然有马车的功能:
uses
Xml.Xmldom, Xml.XMLIntf, Xml.XMLDoc;
function SelectNodes(xnRoot: IXmlNode; const nodePath: WideString): IXMLNodeList;
var
intfSelect : IDomNodeSelect;
intfAccess : IXmlNodeAccess;
dnlResult : IDomNodeList;
intfDocAccess : IXmlDocumentAccess;
doc: TXmlDocument;
i : Integer;
dn : IDomNode;
begin
Result := nil;
if not Assigned(xnRoot)
or not Supports(xnRoot, IXmlNodeAccess, intfAccess)
or not Supports(xnRoot.DOMNode, IDomNodeSelect, intfSelect) then
Exit;
dnlResult := intfSelect.selectNodes(nodePath);
if Assigned(dnlResult) then
begin
Result := TXmlNodeList.Create(intfAccess.GetNodeObject, '', nil);
if Supports(xnRoot.OwnerDocument, IXmlDocumentAccess, intfDocAccess) then
doc := intfDocAccess.DocumentObject …Run Code Online (Sandbox Code Playgroud) delphi ×10
delphi-xe2 ×2
anydac ×1
delphi-2007 ×1
delphi-2009 ×1
delphi-xe3 ×1
excel ×1
history ×1
listview ×1
maxlength ×1
odbc ×1
oop ×1
parameters ×1
rpc ×1
shortcut ×1
sql ×1
syntax ×1
time ×1
unit-testing ×1
windows ×1
wrapper ×1
xml ×1
xpath ×1