TStringSparseList = class(TStrings)
private
FList: TSparseList; { of StrItems }
FOnChange: TNotifyEvent;
protected
function Get(Index: Integer): String; override;
function GetCount: Integer; override;
function GetObject(Index: Integer): TObject; override;
procedure Put(Index: Integer; const S: String); override;
procedure PutObject(Index: Integer; AObject: TObject); override;
procedure Changed;
public
constructor Create(Quantum: TSPAQuantum);
destructor Destroy; override;
procedure ReadData(Reader: TReader);
procedure WriteData(Writer: TWriter);
procedure DefineProperties(Filer: TFiler); override;
procedure Delete(Index: Integer); override;
procedure Exchange(Index1, Index2: Integer); override;
procedure Insert(Index: Integer; const S: String); override;
procedure Clear; override;
property List: TSparseList read FList;
property OnChange: TNotifyEvent read FOnChange write FOnChange;
end;
上面是delphi中的一个类function TStringGrid.GetCells(ACol, ARow: Integer): string;
var
ssl: TStringSparseList;
begin
ssl := TStringSparseList(TSparseList(FData)[ARow]);
if ssl = nil then Result := '' else Result := ssl[ACol];
end;
ssl := TStringSparseList(TSparseList(FData)[ARow]);
ssl[ACol];
以上两句话都是直接对TStringSpareList直接取下标操作,对于数组取下标好理解。
对于类TStringSpareList是怎么实现下标操作的呢,也没有重载,是否是某个属性或怎样?
解决方案 »
- 读取一个二进制文件中的record内容的问题,高手顺便看下啊,麻烦了!
- 在dbgrid表里显示某一列是另一个表中的ID值,想替换成另一表中的对应文本字段怎么弄?
- 来个小题目啊,大家来练习一下,送分了
- 在DELPHI上,用存储过程(临时表)把BOM结构打印出来
- 编程时,输入原点后,为什么有时候有属性列表可选,有时候却没有?
- 请问如何和mysql连接?
- 请问下delphi有关文本读取的问题
- 寻求企业内部办公系统建设方案
- select max(xh) as maxxh from test 如何將查詢結果賦給外部變量使用?
- 在类似combobox控件中显示DBGrid并可模糊查询
- delphi实现浏览局域网服务器上的图片
- DBgrid只能一个单元一个单元进行处理,能否进行多个单元一起复制之类的操作!
property Strings[Index: Integer]: string read Get write Put; default;
按索引取
begin
S:=StringSparseList[i];
for j:=1 to length(S) do
begin
对 S[i] 的操作
....
end;
end;