标签: delphi-7

请帮助"ORA-00907:错过右括号"错误

我得到一个ORA-00907:从下面的代码中缺少右括号

 dbQuery:= TQuery.Create(nil);
 dbQuery.DatabaseName:= dbMain.DatabaseName;
 with dbQuery do
 begin
   SQL.Add('select payee_address_zip, EXTRACT(WEEKDAY FROM check_date) as DOW, ');
   SQL.Add('(cmcl_bank_cleared - check_date) as DateDiff from AP_Master ');
   SQL.Add('where (cmcl_bank_cleared is not null) AND ((cmcl_bank_cleared - check_date) >=:DaysParam)');
   SQL.Add('order by payee_address_zip, DOW, DateDiff');
  try
   ParamByName('DaysParam').AsInteger:= days_param_int;
   Open;
   //do something else here      
  except on E:EDatabaseError do
   begin
    raise ECustomException.create('Error opening query for step 1 of computing Float Factors!');
   end;//except
  end; //try
 end; //with
 dbQuery.Free;
Run Code Online (Sandbox Code Playgroud)

有人能告诉我发生了什么事吗?我似乎无法看到我遗漏了一个括号,这个SQL对Interbase测试数据库工作得很好.但是,当它移动到客户端oracle数据库时,它崩溃,上面的错误.

sql delphi oracle delphi-7

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

使用TIdUDPServer读取数据

我想从通过UDP向我的PC发送数据的电子设备读取数据.我在Delphi中编写了一个UDP服务器.类EIdSocketError(失败#10049)中发生异常.这是我的代码:

procedure TForm1.Button1Click(Sender: TObject);
begin
   IdUDPServer1.Bindings.add.IP := '192.168.1.1';  //Electronic device ip
   IdUDPServer1.Bindings.add.Port:= 49152;         //Electronic device port   
   IdUDPServer1.OnUDPRead:= UDPRead;
   IdUDPServer1.Active:=True;

end;

procedure TForm1.UDPRead (Sender: TObject; AData: TStream; ABinding: TIdSocketHandle);
var
   bytes_received: integer;
begin
   bytes_received:=AData.size;
end;
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

提前致谢

delphi udp indy delphi-7

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

在Delphi 7中使用2个目录输出?

我想知道是否有办法在delphi 7中使用2个目录输出,在2个不同的文件夹中创建编译项目如: c:\ test ; C:\ testx

我已经尝试过分号但没有用.

谢谢!

delphi delphi-7

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

如何对任意大小的整数执行算术运算?

我原来的代码在这里..

function AddNumStrings(Str1, Str2: string): string;
var
  i: integer;
  carryStr: string;
  worker: integer;
  workerStr: string;
begin
  Result:= inttostr(length(Str1));
  Result:= '';
  carryStr:= '0';

  // make numbers the same length
  while length(Str1) < length(Str2) do Str1:= '0' + Str1;
  while length(Str1) > length(Str2) do Str2:= '0' + Str2;

  i:= 0;
  while i < length(Str1) do begin
    worker:= strtoint(copy(Str1, length(Str1) - i, 1)) + strtoint(copy(Str2, length(Str2) - i, 1)) + strtoint(carryStr);
    if worker > 9 then begin
      workerStr:= inttostr(worker);
      carryStr:= copy(workerStr, 1, 1); …
Run Code Online (Sandbox Code Playgroud)

delphi delphi-7

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

Delphi 7中项目的奇怪行为

我正在将项目从Delphi 7迁移到Delphi XE2.

我仍然在努力,但当我在Delphi XE2中运行项目时,它停止在一个函数中,该函数从第三方组件调用一个单元.此单元未初始化,因此我预计会出现此错误.

但是,当我在Delphi 7中编译项目时,我得到了它应该像XE2一样破坏的部分,它正常工作.因此,当我尝试编译时,我继续在项目中检查此单元,并在IDE中打开该单元.它显示了这条消息.

Field FormPropiedadesElemento.SpinVector没有相应的组件.删除声明?

单击"否"后,项目运行但现在停止在与Delphi XE2项目相同的部分.

当我看到这个单元的代码时,这个问题只发生在Delphi 7中.

知道它可能是什么或如何解决它?

delphi delphi-7 delphi-xe2

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

单击按钮时显示框架

我正在尝试做一个简单的程序,当点击其他框架/表单上的按钮时,该程序将显示一个框架.为了更清楚,我想要像MessageDialogBox,但我想要显示一个框架而不是MessageDialogBox.

到目前为止我尝试过的是OnClickEvent上的代码.

procedure TFrame3.SpeedButton1Click(Sender: TObject);
var 
    frm : TfrmVizorFunctii; // This is the frame I want to be appear;  
begin
    frm := TfrmVizorFunctii.Create(nil);
    frm.Parent := nil;
    frm.ABDBGrid1.ActiveColumn:=2;
    frm.Left:=(Screen.Width-Width)  div 2;
    frm.Top:=(Screen.Height-Height) div 2;
    frm.Show;


end;
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

delphi events delphi-7 frame

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

字符串操作很慢

我使用Delphi 7制作了一个接口软件,用于从arduino中获取数据.Arduino有3个传感器.Arduino将发送16个字符作为传感器值.例子是:

 m  0  0  .  0  1  0  0  .  0   2   0   0   .   0   3
[1][2][3][4][5][6][7][8][9][10][11][12][13][14][15][16]

[1] Flag for Start value
[2],[7],[12] are sensors status (0=disconnected, 1=connected)
[3][4][5][6] first sensor value
[8][9][10][11] second sensor value
[13][14][15][16] third sensor value
Run Code Online (Sandbox Code Playgroud)

我将arduino中的字符串值分配给名为Edit1的editText.之后我使用字符串"Copy"逐个获取传感器值.然后,传感器值将在标签中逐个显示.但标签需要很长时间才能改变价值.第一次,我认为它是由标签导致的更新缓慢.然后我用editText更改标签,但工作方式相同(仍然需要很长时间来更新值).那么有没有办法让这件事变得更快?或者字符串操作有问题?

这是我的代码:

procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var
  Str,Buffer,Rstatus,Sstatus,Tstatus: String;
  arus : real;
  i : integer;
begin
  DecimalSeparator:='.';   
  ComPort1.ReadStr(Str, 1);
  begin
    Buffer:=Buffer + Str;
    Edit1.Text:=Edit1.Text+Str;
    if Str='m' then
    edit1.Text:='';
      if Length(Edit1.Text) >=15 then
      begin
        Rstatus:=copy(Edit1.Text,1,1);
        Sstatus:=copy(Edit1.Text,6,1);
        Tstatus:=copy(Edit1.Text,11,1);
        if …
Run Code Online (Sandbox Code Playgroud)

delphi serial-port arduino delphi-7

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

这个'else`语句在哪里结束?

试图将这段Delphi代码转换为,C#并且我elseif/else语句的以下部分实际结束的地方感到困惑.以下是代码的确切格式:

 try
   Root:=ExtractFileRoot(FileName);
   ErrorStr:=ExtractFileRoot(FileName)+' invalid name';
   if not GetNextNumericSegment(Root,Segment) then exit;  
   if length(Segment) = 4 then
   begin
      Year:=StrToInt(Segment);
      GetnextNumericSegment(Root,Segment)
   end
   else // Where does this else statement end?
       Year:=Defaultyear;
    ErrorStr:=ExtractFileRoot(FileName)+' invalid';
   if Length(Segment) <> 3 then exit;
   Jday:=StrToInt(Segment);
    ErrorStr:=ExtractFileRoot(FileName)+' Bad File';
   if not GetNextNumericSegment(Root,Segment) then exit;  // bad Time of day
   GetTimeFromFileName:=EncodeDate(Year,1,1)+Jday-1+
                        EncodeTime(StrToInt(Copy(Segment,1,2)),StrToInt(Copy(Segment,3,2)),StrToInt(Copy(Segment,5,2)),0);
 except
       GetTimeFromFileName:=0;
 end;
Run Code Online (Sandbox Code Playgroud)

我知道你不必使用开头/结尾,但到目前为止我在这段代码中看到的所有内容都使用了它.我也看了,你不需要;if语句的一部分,并且第一;else是底了else.

我的猜测是,根据一切else和达except是金 …

delphi if-statement delphi-7

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

致电表格并更正发布方式?内存使用情况

我正在使用Delphi 7.

我有两个包含Form1和的单位Form2.在某些过程中会多次调用辅助表单,我非常担心内存使用情况.

当我启动该程序时,内存使用量约为2.1 MB.当Form2被调用时,内存增大到2.9 MB.在此过程之后,我关闭Form2并再次调用它来模拟常规使用,内存增长到3.1 MB,再次调用,内存增长到3.4 MB,3.6 MB,3.8 MB等.

内存使用是主要问题.

Form1这样叫Form2:

uses
  Unit2;

...

private
  { Private declarations }
  FChild : TForm2;
...      

FChild := TForm2.Create(nil);
try
  FChild.ShowModal;
finally
  FChild.Free;
end;
Run Code Online (Sandbox Code Playgroud)

内部Unit2:

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?有更好的解决方案吗?

请问,这不是一个简单的问题,因为这个程序将运行24小时,第二个表单将被多次调用.这意味着有时这个程序会冻结计算机.

我在项目中包含了FASTMM4:

program Project1;

uses
  FastMM4,
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2};

{$R *.res}

begin
  FullDebugModeScanMemoryPoolBeforeEveryOperation := True;
  SuppressMessageBoxes:=False; …
Run Code Online (Sandbox Code Playgroud)

delphi delphi-7

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

Delphi 7彩色编码

我的Delphi 7副本有这些非常有用的颜色编码部分,用于显示if语句和循环的开始和结束等等...

图片

这些被称为什么,如何在其他没有显示它们的Delphi 7副本中打开它们?或者,我需要安装一些东西吗?

delphi delphi-7

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

标签 统计

delphi ×10

delphi-7 ×10

arduino ×1

delphi-xe2 ×1

events ×1

frame ×1

if-statement ×1

indy ×1

oracle ×1

serial-port ×1

sql ×1

udp ×1