如何在Delphi 2009中按升序键的整数键对TDictionary进行排序?
我正在尝试在 RichEdit 中保存然后恢复垂直滚动位置。
用于存储滚动位置的全局变量:
SI: TScrollInfo;
Run Code Online (Sandbox Code Playgroud)
此代码保存滚动位置:
FillChar( SI, SizeOf(SI), #0 );
SI.cbSize := SizeOf(SI);
SI.fMask := SIF_POS;
GetScrollInfo( RichEdit1.Handle, SB_VERT, SI );
Run Code Online (Sandbox Code Playgroud)
此代码尝试恢复它:
RichEdit1.Perform( WM_VSCROLL, MakeLong(SB_THUMBTRACK, SI.nPos), 0 );
Run Code Online (Sandbox Code Playgroud)
RichEdit 中的文本恢复其旧位置 OK。问题是垂直滚动条不会跳转到旧位置。
我的系统:Win 7 64,Delphi 2009
我究竟做错了什么?
我经常使用从TList扩展:TList<SomeClass1>
,TList<SomeClass2>
等等.
几乎每次都需要清空它们,删除它们存储的所有对象.
我是通过为每个特定的TList编写特定的过程来完成的.例如:
while Dirs.Count > 0 do
begin
Dirs.Items[0].Free;
Dirs.Delete(0);
end;
Run Code Online (Sandbox Code Playgroud)
有没有办法编写通用程序?像这样的东西:
procedure EmptyAList(_List : TClass; _Object : TClass);
begin
_Object(_List.Items[0]).Free;
_List.Delete(0);
end;
Run Code Online (Sandbox Code Playgroud)
或任何类似的东西.
不幸的是,TList in Generics.Collections of Delphi 2009缺少Move方法.我迫切需要它.有人可以在以后的版本中为我发帖吗?
我打算在后代课堂上使用它.