gpt4 book ai didi

delphi - 在 Record 中使用 TStringGrid 中的数据

转载 作者:行者123 更新时间:2023-12-03 15:58:43 24 4
gpt4 key购买 nike

我在 Pascal 中创建了一个记录类型 TTableData,用于存储 TStringGrid 中的信息以供以后使用:

TTableData = record
header: String[25]; //the header of the column (row 0)
value : String[25]; //the string value of the data
number: Integer; //the y-pos of the data in the table
end;

但是每当我尝试通过遍历 TStringGrid 并从单元格中获取值来初始化这些对象时,值就会变成 ('','',0) (除了少数单元格之外,它们以某种方式结果正常)。

这是我从 TStringGrid 读取数据的过程:

procedure TfrmImportData.butDoneClick(Sender: TObject);
begin
Halt;
end;

{ initialize records which are responsible
for storing all information in the table itself }
procedure TfrmImportData.initTableDataObjects();

var
i, j: Integer;

begin
SetLength(tableData, StringGrid1.ColCount, StringGrid1.RowCount);

for j:= 0 to StringGrid1.RowCount-1 do begin
for i:= 0 to StringGrid1.ColCount-1 do begin
with tableData[i,j] do begin
header := StringGrid1.Cells[i,0];
value := StringGrid1.Cells[i,j];
number := i;
end;
end;
end;

for i:= 0 to StringGrid1.RowCount - 1 do begin
for j:=0 to StringGrid1.ColCount - 1 do begin
ShowMessage(tableData[i,j].header+': '+tableData[i,j].value);
end;
end;
end;

我不太确定这里发生了什么。当我使用断点并缓慢遍历代码时,我可以看到数据最初被正确读取(通过将鼠标悬停在第二个 for 循环中的 tableData[i,j] 上以查看其当前值),但是当我尝试在循环本身中 ShowMessage(...) 值出现错误。

提前致谢,

最佳答案

分配时,您正在寻址单元格[Col, Row],这是正确的。在控制循环 (ShowMessage) 中,您已切换到寻址 [Row, Col],这是不正确的。

关于delphi - 在 Record 中使用 TStringGrid 中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5860726/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com