标签: delphi-xe4

如何在 Delphi 7 中设置调试器参数?

使用 Delphi XE4 时,我可以通过以下路径访问 RAD Studio 中的调试器参数

Project --> Options --> Debugger --> Parameters
Run Code Online (Sandbox Code Playgroud)

但是我在 Delphi 7 中找不到相同的内容。我可以在哪里设置 Delphi 7 中的调试器参数?

实际上,当我像这样从命令行运行我的应用程序时

C:> myApplication.exe 12345,它工作正常。我的应用程序ParamStr(1)用于设置一些初始值。所以我通过上面的路径在我的 Delphi XE4 RAD Studio 中设置了 12345

 Project --> Options --> Debugger --> Parameters
Run Code Online (Sandbox Code Playgroud)

同样我必须在我的 Delphi 7 应用程序中设置,但我没有找到设置此参数的路径?

delphi delphi-7 delphi-xe4

3
推荐指数
1
解决办法
2130
查看次数

如何在 Delphi XE4 中将 AnsiString 转换为 UnicodeString

exzample code:
var
  str1 : String;
  str2 : AnsiString;
  ....
  str2 := ....;
  str1 := String(str2);  
Run Code Online (Sandbox Code Playgroud)

我按照上面的方法进行了转换,但没有成功。我发现 str1 中丢失了一些数据。是否有安全的方法将 AnsiString 转换为 UnicodeString?

delphi unicode-string ansistring delphi-xe4

3
推荐指数
1
解决办法
2万
查看次数

DBGrid 如何隐藏标题行和指标列?

有没有办法隐藏 DBGrid 上的 Titles 行和 Indicator 列?我找不到任何此类财产。我可以以编程方式完成吗?

delphi tdbgrid delphi-xe4

3
推荐指数
1
解决办法
2945
查看次数

使用哪个midas.dll?32位datasnap/64bit服务器

考虑以下因素:我们在64位 Windows 服务器上安装了32位 Datasnap服务器

在embarcadero\rad studio\11.00\redist是2个文件夹:32位和64位,每个都有一个midas.dll.

我们应该把文件放在哪里?

在windows\system32或windows\syswow64中?

delphi datasnap 32bit-64bit delphi-xe4

2
推荐指数
1
解决办法
7210
查看次数

在delphi中初始化对象

如你所知,在c#中初始化对象非常方便快捷

    StudentName student2 = new StudentName
    {
        FirstName = "Craig",
        LastName = "Playstead",
    };
Run Code Online (Sandbox Code Playgroud)

List<MyObject>.Add(new MyObject{a=1,b=2})
Run Code Online (Sandbox Code Playgroud)

可以像这样在Delphi中初始化对象吗?

delphi delphi-xe4

2
推荐指数
1
解决办法
1746
查看次数

如何在运行时递归创建ActionBars?

我正在编写一个类,它将大型遗留应用程序的TMainMenu层次结构映射到TActionMainMenuBar项目.

从Steve Trevethen的EDN CodeCentralC文章中大量借鉴的最重要的方法看起来像这样.我为长度道歉,但这可能是我在这种情况下可以有意义地显示的最短代码长度:

procedure TMainMenuSkin.DoLoadMenu(
    ActionList: TCustomActionList;
    Clients: TActionClients;
    AMenu: TMenuItem;
    SetActionList: Boolean = True;
    bRecurseFlag:Boolean = False);
var
  I: Integer;
  J: Integer;
  AC: TActionClientItem;
  ca : TCustomAction;
  newAction : TSkinnedMenuAction;
  aci:TActionClientItem;
  submenuitem : TMEnuItem;

  procedure PopulateNodeFromMenuItem(menuitem:TMenuItem);
  begin
        newAction := TSkinnedMenuAction.Create(Application.MainForm);
        menuitem.FreeNotification(newAction);
        newAction.FMenuItem := menuitem;
        newAction.Name := 'action_'+newAction.FMenuItem.Name;
        FNewMenuActions.Add(newAction);
        newAction.ActionList := ActionManager;
        newAction.Tag := menuitem.Tag;
        ca := newAction;
        ca.ImageIndex  := menuitem.ImageIndex;
        ca.HelpContext := menuitem.HelpContext;
        ca.Visible     := menuitem.Visible;
        ca.Checked     := menuitem.Checked;
        ca.Caption     := menuitem.Caption;
        ca.ShortCut    := …
Run Code Online (Sandbox Code Playgroud)

delphi action tactionmanager delphi-xe4

2
推荐指数
1
解决办法
1178
查看次数

在Windows 8中显示Windows 7 Windows图片查看器

在Windows 8上,我尝试运行下面显示的代码以显示旧的Windows 7图片查看器,但它返回错误.在Windows 8上,我可以找到C:\ Program Files(x86)\ Windows Photo Viewer\PhotoViewer.dll,但我认为这是较新的Windows 8 metro应用程序.我认为旧的Windows图片浏览器是'c:\ windows\system32\shimgvw.dll.我想用桌面应用程序样式而不是Metro预览图像.

我试过两个,但两个都返回该文件没有与之关联的程序?我搞砸了什么?

var
SEInfo: TShellExecuteInfo;
ExitCode: DWORD;
ExecuteFile, ParamString, StartInString: string;

ExecuteFile:='c:\windows\system32\shimgvw.dll';
FillChar(SEInfo, SizeOf(SEInfo), 0) ;
SEInfo.cbSize := SizeOf(TShellExecuteInfo);
with SEInfo do begin
  fMask := SEE_MASK_NOCLOSEPROCESS;
  Wnd := Application.Handle;
  lpFile := PChar(ExecuteFile);
  nShow := SW_SHOWNORMAL;
  lpParameters := PChar('ImageView_Fullscreen');
end;
if ShellExecuteEx(@SEInfo) then begin
repeat
   Application.ProcessMessages;
   GetExitCodeProcess(SEInfo.hProcess, ExitCode) ;
 until (ExitCode <> STILL_ACTIVE) or Application.Terminated;
   ShowMessage('Windows Picture Viewer terminated') ;
 end
    else ShowMessage('Error starting Windows Picture Viewer') ;
Run Code Online (Sandbox Code Playgroud)

我之前没有使用过ShellExecuteEx,所以代码的基础来自这里 …

delphi winapi delphi-xe4

2
推荐指数
1
解决办法
1261
查看次数

将Java代码转换为delphi的问题

我有一个必须返回通用接口的方法.试图在delphi中制作该方法.但是不确定它应该如何写?有没有人可以帮助我?这是我用Java制作的一个例子:

public < T  extends StandardDataProvider<?>> T GetDataProvider(String dataProviderName) {
    if (dataproviders == null)
        buildDataProviderMap();
    if (dataproviders.containsKey(dataProviderName)) {
        return (T) dataproviders.get(dataProviderName);
    } else
        return null;
}
Run Code Online (Sandbox Code Playgroud)

然后尝试在delphi中做同样的事情..但是不能让它工作?

function TLocalDataProviderFactory. GetDataProvider(DataProviderName: string): IStandardDataProvider;  // Shows errors here? 
begin
  if not Assigned(DataProvider) then
    BuildDataProviderMap;
  if DataProvider.ContainsKey(DataProviderName) then
  begin
    Result := DataProvider.Items[DataProviderName];
  end
  else
  begin
    Result:= nil;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

java delphi delphi-xe4

2
推荐指数
1
解决办法
550
查看次数

null datetime value 30/12/1899或01/01/1800

我有以下......

var
  LCnn: TADOConnection;
  qryGetData: TADOQuery;
begin
  ...
  //build a connection string to a SQL Server 2008
  ...
  qryGetData.Connection := LCnn;
  qryGetData.SQL.Text := 'SELECT * FROM MYTABLE'
  ...
  LDate := qryGetData.FieldByName('Date').AsDateTime; //Date its a datetime field in the table

end;
Run Code Online (Sandbox Code Playgroud)

这工作正常但是,当某些Pcs中的"Date"字段为NULL时,LDate为0而另一个为-36522.

任何的想法???谢谢!

编辑:

奇怪的行为是

function TDateTimeField.GetAsDateTime: TDateTime;
begin
  if not GetValue(Result) then Result := 0;
end;
Run Code Online (Sandbox Code Playgroud)

在第一种情况下,GetValue结果为false,因此GetAsDateTime结果为0,在第二种情况下GetValue结果为true,因此返回-36522(01/01/1800)

delphi ado delphi-xe4

2
推荐指数
2
解决办法
1万
查看次数

Delphi 7和Delphi XE4中的默认日期格式

我正在将Delphi 7应用程序迁移到Delphi XE4.DateToStr函数在两个版本中的行为都不同.

例如:

DateToStr(IncDay(Today, -9))计算结果为11/30/2013 in Delphi 7同时30/11/3013 in Delphi XE4.

这意味着,Delphi 7采用日期,mm/dd/yyyy而Delphi XE4则采用它dd/mm/yyyy.在Delphi XE4中,我可以将其设置为mm/dd/yyyy

注意:我不想在进行此转换的每个位置使用formatsettings修改代码.我只是想在一个地方做这个改变可能是Delphi XE4的一些设置文件.

delphi date delphi-7 delphi-xe4

2
推荐指数
1
解决办法
3802
查看次数