小编Lut*_*hfi的帖子

TStream.Position与TStream.Seek相比

要在TStream类中移动"当前字节"指针,我们可以使用属性Position(例如MyStream.Position:= 0)或使用Seek方法(例如MyStream.Seek(0,soFromBeginning).问题是,哪一个更有效(又快点??(我没有源,所以我自己无法检查).

到目前为止,我总是使用Seek定位指针.

delphi

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

Unicode字符串和TStringStream

Delphi 2009及更高版本使用unicode字符串作为其默认字符串类型.据我所知,unicode char实际上是16位值或2个字节(注意:我知道有可能有3或4个字节的char,但让我们考虑最常见的情况).但是我发现TStringStream对于操作这个字符串不是很可靠.例如,TStringStream.Size属性返回字符串的长度,而我认为它应该返回包含字符串的字节数.好吧,你可以自己调整它,但最让我困惑的是:TStringStream不能可靠地读取或写入缓冲区.

请检查以下代码(这是一个DUnit测试,总是失败).请告诉我问题所在(我在测试代码时使用的是D2010).

procedure TestTCPackage.TestStringStream;
const
  cCount = 10;
  cOrdMaxChar = Ord(High(Char));
var
  B: Pointer;
  SW, SR: TStringStream;
  T: string;
  i, j, k : Integer;
  vStrings: array [0..cCount-1] of string;
begin
  RandSeed := GetTickCount;
  for i := 0 to cCount - 1 do
  begin
    j := Random(100) + 1;
    SetLength(vStrings[i], j);
    for k := 1 to j do
      // fill string with random char (but no #0)
      vStrings[i][k] := Char(Random(cOrdMaxChar-1) + 1);
  end;

  for i := 0 to cCount …
Run Code Online (Sandbox Code Playgroud)

delphi delphi-2010

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

如何使Borderorm在BorderStyle = bsNone时显示滚动条?

当BorderStyle设置为bsNone时,即使AutoScroll为True且某些子控件位置超过ClientWidth/ClientHeight值,TForms通常也不会显示滚动条.

那么,是否有任何方法/黑客"迫使"TForm显示滚动条(需要时),即使它的BorderStyle设置为bsNone?

delphi scrollbar tform autoscroll

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

标签 统计

delphi ×3

autoscroll ×1

delphi-2010 ×1

scrollbar ×1

tform ×1