小编Ple*_*rds的帖子

如何获取delphi函数中参数传递的变量或对象节点的名称?

在Java中,我们有类似的地方VarName.toString来描述var的名称.

我在Delphi中有一个代码,我需要实现相同的功能,因为我有一个record类型,我需要识别许多子字符串:

type
THierarchyAccess = String; // receive the user permissions from the MySQL DB
THierarchy = record
      MOD_HIERARQUIA   : THierarchyAccess; // 'BROWSE_ONLY', 'MANAGE', 'NONE'...
      MOD_OPERADORES   : THierarchyAccess;
      MOD_ESTATISTICAS : THierarchyAccess;
      MOD_AUDITORIA    : THierarchyAccess;
      MOD_HOMEPAGE     : THierarchyAccess;
      MOD_HOTSITES     : THierarchyAccess;
      MOD_MATRIZ       : THierarchyAccess;
      MOD_NOTICIAS     : THierarchyAccess;
      MOD_VISITANTES   : THierarchyAccess;
          ...
          end;
...

function  TAccess.IsAccessPermited(apNeed, apHave: String): Boolean;
begin
// HERE I need to know not only the content of "apHave", 
// but if it came from …
Run Code Online (Sandbox Code Playgroud)

delphi variables function parameter-passing delphi-2006

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

如何在允许其他用户编辑之前检查用户是否正在编辑表记录,而不是等待发布?

我正在开发一个艺术家档案和桌面软件的网站来管理其数据库内容.有许多运营商会在其收件箱中收到相同数量的待审核记录,以便进行审批和发布.问题是当两个或多个运算符尝试编辑同一记录时.数据库服务器(远程mysql)将引发锁定错误,或者只是维护最后保存它的运算符的数据.

在向另一个用户授予对此记录的访问权限之前,检查是否有人已经在编辑记录的最佳方法(更简单和更有效的方法),或者如果记录的所有者是他自己再次更新他的记录,那将是什么?网站?

该软件仍在实验室中.但当我将它交付给客户时,我知道这将是一个问题.

我可以创建一个表来将每个记录标记为"在编辑中"或"空闲",因此我不需要改变表的结构(因为人们已经在网站上使用它们).但我需要确保有更优雅/更快的方式来做到这一点.

php mysql delphi remote-access zeos

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

我们如何在运行时检测和更改样式?

Delphi XE3及以下版本的应用程序风格很酷.但我注意到我们可以根据需要标记多种样式,并选择使用哪种样式作为默认样式.

这意味着我们可以随意更改样式,但如何在代码中执行?如何让用户选择在我们的软件中使用哪种风格?

delphi vcl-styles delphi-xe3

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

如何在代码编辑器中禁用自动完成代码语句?

每当我打字if并按下空格键时,Delphi就会用if True then上面的空行完成它.

有没有办法删除这个 "自动完成"功能或至少编辑它不创建新行?

delphi delphi-xe3

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

在不同的表中使用相同字段名称的问题,特别是ID

我正在开发一个大数据库,从这种情况来看,我决定至少考虑两次关于表格和字段布局的决策.我最关心的是主键.

我几乎总是使用table name加号_id来命名这些索引.我这样做是因为在连接表时我不必担心重复的字段名称,因为Delphi数据库组件给我们的字段table_name.field_name只是字段.

另一方面,如果我们可以为每个表使用相同的ID字段名称,那么创建一个函数来处理与该索引控件有关的每个表总是更容易.

有没有人在选择其中一个数据库设计时遇到过错误?在每个字段名称上重复表名称是一种好方法吗?

database delphi indexing database-design

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

为什么局部变量不能在声明和全局变量中分配?

在Delphi中我们可以这样做:

 interface 
 var
   test: string = 'this is a test!'; { compiler accepts that }
Run Code Online (Sandbox Code Playgroud)

但我们不能这样做:

 implementation
 procedure showTest;
 var
   internal_test1; { compiler accepts that }
   internal_test2: string = 'another test'; { compiler error }
Run Code Online (Sandbox Code Playgroud)

我希望Embarcadero的一些用户可以回答这个问题.:-)

delphi

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

为什么我的Delphi服务应用程序没有启动?

Windows Service使用向导创建了一个新项目,推出了一些代码,编译了它,运行它/INSTALL然后我尝试使用它来启动它net start myservice但是我有一个service name not found错误; 然后我进入了服务中的控制面板,当我尝试开始单击"开始"链接时,对话框窗口会无限期地显示50%的进度条冻结.

这是我第一次尝试提供服务来更新我正在开发的主系统,为了测试我Timer每隔一分钟就说一次.任何人都可以注意到什么是错的,为什么它会像那样?

DPR文件包含:

{...}
begin
  if not Application.DelayInitialize or Application.Installing then
  begin
    Application.Initialize;
  end;
  Application.CreateForm(TZeusUpdateSevice, ZeusUpdateSevice);
  Application.Run;
end.
Run Code Online (Sandbox Code Playgroud)

PAS文件:

{...}
procedure ServiceController(CtrlCode: DWord); stdcall; 
begin
  ZeusUpdateSevice.Controller(CtrlCode);
end;

function TZeusUpdateSevice.GetServiceController: TServiceController;
begin
  Result := ServiceController;
end;

procedure TZeusUpdateSevice.ServiceAfterInstall(Sender: TService);
var
  regEdit : TRegistry;
begin
  regEdit := TRegistry.Create(KEY_READ or KEY_WRITE);
  try
    regEdit.RootKey := HKEY_LOCAL_MACHINE;

    if regEdit.OpenKey('\SYSTEM\CurrentControlSet\Services\' + Name,False) then
    begin
      regEdit.WriteString('Description','Mantém …
Run Code Online (Sandbox Code Playgroud)

delphi windows-services delphi-xe3

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

Delphi服务侦听TCP或UDP

读了这个问题: 德尔福Windows服务的设计,我看到大部分的设计师在使用下面这段代码OnExecuteTServiceTThread方法,以保持服务活着.

while not Terminated do
begin
  // do something
end;
Run Code Online (Sandbox Code Playgroud)

但是,如果我需要(和我一样)来创建一个服务(使用印),以便发回一些认证数据由主应用程序发送的消息,我该怎么用这个代码做回应,忽略它或把一些Sleep()在它?

delphi udp windows-services delphi-xe3

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

如何从DNS获取主机名的IP地址?

我有这个功能,如果我使用GetIP('server-name')GetIP('google.com')在我的Delphi 2006 中检索IP地址.

但现在我正在尝试它,Delphi-XE3它不起作用.有任何想法吗?

function GetIP(const HostName: string): string;
var
  WSAData: TWSAData;
  R: PHostEnt;
  A: TInAddr;
begin
  Result := IPNULL; // '0.0.0.0'
  WSAStartup($101, WSAData);
  R := Winsock.GetHostByName(PAnsiChar(HostName));
  if Assigned(R) then
  begin
    A := PInAddr(r^.h_Addr_List^)^;
    Result := string(WinSock.inet_ntoa(A));
  end;
end;
Run Code Online (Sandbox Code Playgroud)

似乎R没有被分配,因为结果总是如此'0.0.0.0'

delphi ip dns delphi-xe3

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

如何从Oracle中的存储过程获取参数属性?

我正在开发一个管理面板,我们可以确定stored proceduresviews可被称为甲骨文12c的模式,从我们的微服务平台服务.

服务必须知道过程需要哪些参数以及视图可用的列,以便调用它们.

我是管理面板,程序或视图的创建者可以通过输入这些信息来注册它,如对象的名称,每个参数的名称,长度和数据类型.

但是如果用户只输入对象的名称然后SQL SELECT将在表中检索过程的参数属性,并且视图的列的属性相同,那么它将更加优雅,因此面板将自动注册这些配置.

任何人都可以发布关于如何实现这一目标的查询吗?我是Oracle的新手,我不知道如何查询对象元数据.

oracle stored-procedures views oracle12c

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