小编RBA*_*RBA的帖子

Visual Studio中的缩进快捷方式

我是Visual Studio 2010和C#的新手.如何使用快捷方式将所选文本向左/向右缩进?

在此输入图像描述

在Delphi IDE中,等价物是Ctrl+ Shift+ ICtrl+ Shift+U

c# delphi indentation visual-studio-2010

150
推荐指数
7
解决办法
25万
查看次数

Delphi - 防止SQL注入

我需要保护应用程序免受SQL注入.应用程序使用ADO连接到Oracle,并搜索用户名和密码以进行身份​​验证.

从我读到现在开始,最好的方法是使用参数,而不是将整个SQL分配为字符串.像这样的东西:

query.SQL.Text := 'select * from table_name where name=:Name and id=:ID'; 
query.Prepare; 
query.ParamByName( 'Name' ).AsString := name; 
query.ParamByName( 'ID' ).AsInteger := id; 
query.Open;
Run Code Online (Sandbox Code Playgroud)

另外,我正在考虑验证来自用户的输入,并删除删除,插入,选择等SQL关键字......任何不同于普通ASCII字母和数字的输入字符都将被删除.

这样可以保证我的安全级别最低?

我不想使用除Delphi 7标准和Jedi之外的任何其他组件.

sql delphi oracle sql-injection

27
推荐指数
3
解决办法
4610
查看次数

创建和/或写入文件

我觉得这应该很容易,但谷歌目前完全失败了.我想打开一个文件,或者如果它不存在就创建它,并写入它.

下列

AssignFile(logFile, 'Test.txt');
Append(logFile);
Run Code Online (Sandbox Code Playgroud)

当文件不存在时,在第二行引发错误,我认为这是预期的.但我真的没有找到如何a)测试文件是否存在和b)在需要时创建它.

仅供参考,在Delphi XE工作.

delphi delphi-xe

21
推荐指数
5
解决办法
6万
查看次数

Delphi - 如何获取目录的所有文件的列表

我正在使用delphi,当我执行openpicturedialog时,我想要一个目录的所有文件的列表.

即,当执行打开对话框并从中选择一个文件时,我想要所选文件目录中的所有文件列表.

您甚至可以建议我从 Thank You的FileName属性获取目录名称TOpenDialog
.

delphi opendialog

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

使用Delphi数据感知组件 - 优点和缺点

我想知道您对在项目中使用数据感知组件的看法.通过使用Delphi和数据感知组件(来自Delphi的标准套件或第三方),开发应用程序(win32和web)的"优势"和"弱点"是什么?

使用FireBird我已经使用了IBObjects,它是一个成熟的组件套件并且运行良好.

但是还有很多其他RDBMS(MySQL,MSSQL,DB2,Oracle,SQLite,Nexus,Paradox,Interbase,FireBird等).如果您已经开发了大型项目,您已经使用了大量数据感知组件,请回答数据库类型和数据感知组件套件名称.

我也对DB2(AS400)感兴趣.您成功使用了哪些组件,或哪些组件真的很难用?

delphi oracle firebird data-aware ibm-midrange

17
推荐指数
4
解决办法
2989
查看次数

Delphi线程异常机制

关于线程如何在delphi中工作我有一个两难的问题,以及为什么在线程应该引发异常的时候,没有显示异常.bellow是带注释的代码,也许有人会向我解释该线程或delphi如何管理访问冲突

//线程代码

unit Unit2;

interface

uses
  Classes,
  Dialogs,
  SysUtils,
  StdCtrls;

type
  TTest = class(TThread)
  private
  protected
    j: Integer;
    procedure Execute; override;
    procedure setNr;
  public
    aBtn: tbutton;
  end;

implementation


{ TTest }

procedure TTest.Execute;
var
  i                 : Integer;
  a                 : TStringList;
begin
 // make severals operations only for having something to do
  j := 0;
  for i := 0 to 100000000 do
    j := j + 1;
  for i := 0 to 100000000 do
    j := j + 1;
  for i …
Run Code Online (Sandbox Code Playgroud)

delphi multithreading exception-handling

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

当组件放在表单上时,FastReport FMX 2.0会出现错误"clCantRen"

每当我在我的FMX表格(RAD Studio 10.2)上放置FastReport 2.0 FMX - > TfrxReport组件时,我会收到弹出的错误消息"clCantRen"

运行时没有调试我得到以下错误"[dcc32错误] E2161错误:RLINK32:打开文件时出错"C:\ FireMonkey\MainFrm.fmx"

我的库路径如下

Win32: - C:\ Program Files(x86)\ FastReport FMX\LibD25 Win64: - C:\ Program Files(x86)\ FastReport FMX\LibD25x64

即使我试图保存项目或关闭项目,也不允许我通过弹出错误信息"clCantRen"来这样做.

只有在我从fmx表单中删除组件TfrxReport后,才允许我保存并关闭.请有人告诉我为什么我在FMX表格上收到TfrxReport组件的错误.

任何帮助将不胜感激.

delphi fastreport firemonkey

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

Delphi TQuery保存到csv文件

我想在不使用3d零件组件的情况下将TQuery的内容导出到CSV文件(Delphi 7).据我所知,使用Delphi标准组件无法实现这一点.

我的解决方案是将内容保存在CSV格式的StringList中,并将其保存到文件中.

有没有舒服的解决方案?

PS:我不想使用JvCsvDataSet或任何组件.问题是:这可以仅使用Delphi 7或更高标准组件来完成吗?

先感谢您!

csv delphi tquery

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

Delphi - 计时器内部线程生成AV

我有以下线程代码,第一次执行正确.之后,我不时在线程的Execute方法上获得AV,例如

调试输出:TProcesses.Execute在模块'ListenOutputDebugString.exe'中的地址00409C8C处的访问冲突.读取地址08070610处理ListenOutputDebugString.exe(740)

我不知道是什么产生这个AV ...

unit Unit3;

interface

uses
  Classes,
  StdCtrls,
  Windows,
  ExtCtrls,
  SysUtils,
  Variants,
  JvExGrids,
  JvStringGrid;

type
  TProcesses = class(TThread)
  private
    { Private declarations }
    FTimer :  TTimer;
    FGrid  :  TJvStringGrid;
    FJobFinished : Boolean;
    procedure OverrideOnTerminate(Sender: TObject);
    procedure DoShowData;
    procedure DoShowErrors;
    procedure OverrideOnTimer(Sender: TObject);
  protected
    procedure Execute; override;
  public
    constructor Create(aGrid : TJvStringGrid);overload;
  end;

implementation

{TProcesses }

var SharedMessage : String;
    ErrsMess      : String;
    lp            : Integer;

constructor TProcesses.Create(aGrid : TJvStringGrid);
begin
 FreeOnTerminate := True;
 FTimer := TTimer.Create(nil);
 FTimer.OnTimer := …
Run Code Online (Sandbox Code Playgroud)

delphi multithreading delphi-xe

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

当我在未初始化的函数结果上调用方法时,为什么不能获得访问冲突?

我的一位同事向我展示了用Delphi-XE XE版本15.0.3953.35171编写的代码,我认为它应该引发访问冲突.代码如下:

unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm3 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
   function test:TstringList;
    { Public declarations }
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.FormCreate(Sender: TObject);
var aStrList : TStringList;
begin
 aStrList := TStringList.Create;
 test;
 FreeAndNil(aStrList);
end;

function TForm3.test: TstringList;
var i:Integer;
begin
 for i:=0 to 1000 do
  Result.Add('aaa');//AV?
end;

end.
Run Code Online (Sandbox Code Playgroud)

检查aStrList和Result具有以下结果:

aStrList: TStringList $12FEDC : $42138A


Result: TStringList $12FEC4 : $B01B90 …
Run Code Online (Sandbox Code Playgroud)

delphi delphi-xe

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