小编Iss*_*sam的帖子

Delphi 中的线程化 Excel 文件处理

我创建了一个 TThread 来处理 Excel 文件中的一些关键问题,但是,我目前遇到了一些挑战,因为该线程似乎没有与我的应用程序并行工作。尽管我尽了最大努力来找出问题的根本原因,但到目前为止我还没有成功。为了解决这个问题,我尝试使用重写的 Execute 方法定义 TThread 类型,并尝试从 Synchronize 方法切换到 Queue 方法,但到目前为止,这两种方法都没有产生积极的结果。

procedure TForm2.Button1Click(Sender: TObject);
begin

 TThread.CreateAnonymousThread(proc).Start;

end;

procedure TForm2.Proc;
var
refSheet: Integer;
  RowCount,varGridRow:Integer;
  i, j,k: Integer;
  desc, refDesc, refRate: string;
  delta: Integer;
  OldValue:String;
  ws: Variant;
  ExcelApp: Variant;
begin
Tthread.Synchronize(nil,procedure ()begin
if OpenDialog1.Execute then
 begin
 ExcelApp := CreateOleObject('Excel.Application');
 ExcelApp.Workbooks.Open(OpenDialog1.FileName);
 end;
 end);

 Tthread.Synchronize(nil,procedure ()  begin
  refSheet :=StrToInt(InputBox('','','3'));
  if (refSheet <= 0) or (refSheet > ExcelApp.Worksheets.Count) then
  begin
    ShowMessage('Invalid sheet number');
    Exit;
  end;
 end);

 Tthread.Queue(nil,procedure ()var i,j,k:Integer; begin
 IssamProgressBar1.Max:= ExcelApp.Worksheets[refSheet].UsedRange.Rows.Count;
  RowCount:=1; …
Run Code Online (Sandbox Code Playgroud)

delphi multithreading tthread

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

位串 转十六进制值

我有一个像“10011011001”这样的字符串,我希望将该字符串转换为十六进制字符串,最好的方法是什么。

delphi binary hex pascal

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

Delphi中使用outlook2000单元的问题

我正在尝试使用单位“outlook2000”,但我的Try 语句出现问题 ,我收到Error: E2021 Class type required。如果我在没有这个单元或没有except 的情况下执行我的应用程序,那么一切都很好。

Uses ...,outlook2000;

procedure TForm1.Button1Click(Sender: TObject);
var
S:string;
begin
try
s:='Hello';
Except On E:Exception do
ShowMessage(E.Message);

end;
end;
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释一下出了什么问题吗?我使用 Delphi 10.1 Berlin,Win 10。

在此输入图像描述

delphi outlook try-except

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

标签 统计

delphi ×3

binary ×1

hex ×1

multithreading ×1

outlook ×1

pascal ×1

try-except ×1

tthread ×1