小编Arn*_*hez的帖子

Delphi XE2后台IDE编译器无法找到源路径

我刚买了XE2版本,安装了更新1 ISO,并用我的开源项目编译.

事实上:

  • 我将库的源代码路径添加到常规设置IDE(对于我使用的所有平台,即Windows 32位和64位到目前为止);
  • 我编译了TestSQLite3.dpr我们框架的回归测试 - 没问题:编译EXE并通过所有测试;
  • 我对IDE后台编译器有一个奇怪的问题:即使编译了项目,IDE也会显示一些关于未知文件的错误(不在底层编译器消息中,而是在类导航树的顶部 - 留给源代码编辑器) ).在.dpr源代码中,单元名称用红色下划线标注,我无法在源代码内导航(使用Ctrl +单击符号).

我已经将库的源代码路径添加到项目选项中(对于Win32/Win64 - 即使它已经在全局IDE级别设置).现在,有关未知文件的错误消失了,但源代码中的单元名称仍以红色下划线,并且Ctrl + Click不起作用.

TestSQLite3.dpr源代码不指定单位的完整路径:

uses
  {$I SynDprUses.inc}
  Windows,
  Messages,
  SysUtils,
  Classes,
  SynCrypto,
  SynCrtSock,
  SynCommons,
  SynDB,
  SynOleDB,
  SynDBOracle,
  (...)
Run Code Online (Sandbox Code Playgroud)

在上面的行中,SynCrypto,SynCrtSock,SynCommons用红色下划线.

我的实际猜测是.dpr(SynCrypto in '..\SynCrypto.pas')中需要完整路径.我没有测试这个,因为我没有XE2在工作.

由于以前的IDE使用这种源代码(从Delphi 6到XE)没有问题,我想知道是否存在回归的可能性,或者以前版本的IDE没有新的选项(可能基于平台)我没有正确设置.或者也许在.dpr中需要完整路径 - 但这听起来像Code/Error Insight编译器中的回归给我.

ide delphi delphi-xe2

11
推荐指数
1
解决办法
3380
查看次数

如何摆脱TListBox垂直滚动限制?

使用TListBox虚拟模式实现日志查看器.

它工作正常(对于我写的所有代码),按预期显示内容(我甚至轻松添加了一个水平滚动条),但我想我已经达到了垂直滚动条的某种限制.

也就是说,当我从顶部向底部滚动垂直条时,它不会将内容滚动到列表的末尾,而只会滚动到某个限制.

你知道有没有摆脱这个限制的可能性?我试过SetScrollInfo,但它没有工作,因为限制听起来不在滚动条中,而是在TListBox自身中.

我知道创建专用的解决方案TCustomControl:在这种情况下,SetScrollInfo将按预期工作.但有人知道仍然使用的解决方案/技巧TListBox吗?

编辑:说清楚 - 我不要求(第三方)组件解决方案,但要知道是否有一些低级GDI消息要发送到标准TListBox以覆盖此限制.如果没有,我将转到专用TCustomControl解决方案.

这是使用TSCROLLINFO的代码:

procedure ScrollVertHuge(Handle: HWND; count: integer);
var Scroll: TSCROLLINFO;
begin
  Scroll.cbSize:= sizeof(Scroll);
  Scroll.fMask := SIF_DISABLENOSCROLL or SIF_RANGE;
  Scroll.nMin := 0;
  Scroll.nMax := count;
  SetScrollInfo(Handle,SB_VERT,Scroll,false);
end;
Run Code Online (Sandbox Code Playgroud)

要精确地解决这个问题:添加和绘制两个工作当然(我的工具按预期工作),但不起作用的是垂直滚动条拖动.我重命名了问题的标题,并删除了令人困惑的已弃用的MSDN文章.

delphi tlistbox

7
推荐指数
1
解决办法
2650
查看次数

哪种硬件配置用于构建跨平台FireMonkey应用程序?

我刚刚购买了Mac Mini,以便使用Delphi XE2开发Mac OS X FireMonkey应用程序.

我是Windows 7下的主要笔记本电脑,我多年来一直用于开发.但是这台笔记本电脑的硬件配置比Mac Mini(带有4GB RAM的Core i5)更旧(AMD TL-56,内存为2GB).

从您的实验中,使用的最佳配置是什么?也就是说,我应该在哪里安装Delphi XE2?

  • 在笔记本电脑上安装IDE,远程调试到Mac?在这种情况下,什么是最好的远程访问工具(我不知道Open GL远程访问)?或者是将我的显示器和键盘切换到mac的唯一解决方案?
  • 或直接在Mac上 - 但在这种情况下,最佳解决方案是什么:在托管Windows的虚拟盒中安装Delphi XE2,或在Mac上进行双启动,在其上安装Windows,然后将Mac OS放入虚拟盒中?
  • 还有其他组合吗?

我只是喜欢使用Windows进行开发 - 例如我大量使用Total Commander和其他自制工具.我在Embarcadero的办公室见过Mac电脑 - 我只是想知道什么是最好的硬件配置.

我不需要像"尝试Mac OS,这是有史以来最好的操作系统"这样的答案 - 只是来自Delphi程序员的反馈,包括提示(例如,如何远程工作FireMonkey 3D加速?).

delphi macos delphi-xe2 firemonkey

5
推荐指数
1
解决办法
526
查看次数

mORMot中的示例SQL查询

我正在使用Synopse mORMot从Delphi 7访问SQLite数据库.我希望通过SQL直接建立连接和查询数据库,而无需使用mORMot的ORM(对象关系映射)功能.

您是否可以提供执行SQL查询而不依赖于mORMot的ORM功能的代码示例?

database delphi sqlite delphi-7 mormot

5
推荐指数
1
解决办法
3974
查看次数

德尔福mORMot.如何制作移动客户端(android,iOS)

我是mORMot的新手.我做了一个mormot服务器和FMX客户端.它适用于Win模式.接下来,我将目标更改为Android并收到错误.

[DCC致命错误] SynCrtSock.pas(253):未找到F2613单位'Contnrs'(单位SynCrtSock;).

{$R *.fmx}
{$R *.LgXhdpiTb.fmx ANDROID}

function Client(const SQL: RawUTF8): RawUTF8;
var 
  Http: THttpClientSocket;
  URI: AnsiString;
begin
  if ParamCount<>0 then
    URI := AnsiString(ParamStr(1)) 
  else
    URI := '192.168.1.20';
  Http := OpenHttp(URI,'888');
  if Http <> nil then
    try
      Http.Post('root',SQL,TEXT_CONTENT_TYPE);
      result := Http.Content;
    finally
      Http.Free;
    end 
  else
    result := '';
end;


procedure TForm3.TMSFMXButton1Click(Sender: TObject);
begin
  ds1.DataSet := JSONToClientDataSet(self,Client('select * from Lists'));
end;
Run Code Online (Sandbox Code Playgroud)

它适用于Win,但不适用于Android.

如何为iOS和Android制作演示?

delphi mormot

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

标签 统计

delphi ×5

delphi-xe2 ×2

mormot ×2

database ×1

delphi-7 ×1

firemonkey ×1

ide ×1

macos ×1

sqlite ×1

tlistbox ×1