小编Leo*_*Leo的帖子

如何在C#中使用Delphi Dll(带PChar类型)

这是Delphi DLL代码:

library Project2;

uses
  SysUtils,
  Classes;

{$R *.res}

function SimpleConv(const s: string): string;
var
  i: Integer;
begin
  Result := '';
  for i := 1 to Length(s) do
    if Ord(S[i]) < 91 then
      Result := Result + S[i];
end;

function MsgEncode(pIn: pchar; InLen: Integer; var pOut: pchar; var OutLen: Integer): Boolean; stdcall;
var
  sIn: string;
  sOut: string;
begin
  SetLength(sIn, InLen);
  Move(pIn^, sIn[1], InLen);

  sOut := SimpleConv(sIn);   // Do something

  OutLen := Length(sOut);
  GetMem(pOut, OutLen);
  Move(sOut[1], pOut^, OutLen);
  Result := OutLen …
Run Code Online (Sandbox Code Playgroud)

.net c# delphi pinvoke

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

如何修改TVirtualStringTree中的焦点框颜色?

我需要修改TVirtualStringTree的焦点框的边框颜色,就像这张照片:

从灰色到红色

delphi virtualtreeview tvirtualstringtree

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

使用SQL Server进行海量数据存储

我们需要管理10,000个GPS设备,每个GPS设备每30秒上传一次GPS数据,这些数据需要存储在数据库中(SQL Server 2005).

每个GPS设备的每日数据量为:24*60*2 = 2,880 10 000

10,000个GPS设备每日数据量为:10000*2880 = 28,800,000

每个GPS数据大约160Byte,每天的数据量是:28,800,000*160 = 4.29GB

我们需要在数据库中保存至少3个月的GPS数据,

我的问题是:

1,SQL Server 2005是否可以支持如此大量的数据存储?

2,如何规划数据表?(所有GPS数据存储在一个表中?每日表?每个GPS设备都有一个GPS数据表?)


GPS数据:

GPSID varchar(21),
RecvTime datetime,
GPSTime datetime,
IsValid bit,
IsNavi bit,
Lng float,
Lat float,
Alt float,
Spd smallint,
Head smallint,
PulseValue bigint,
Oil float,
TSW1 bigint,
TSW1Mask bigint,
TSW2 bigint,
TSW2Mask,
BSW bigint,
StateText varchar(200),
PosText varchar(200),
UploadType tinyint
Run Code Online (Sandbox Code Playgroud)

我倾向于使用分区表.但是,如何设置界限?

sql-server sql-server-2005

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

寻找OSD组件

我正在寻找Delphi OSD(屏幕显示)组件.我需要实现卡拉OK字幕效果,就像这张照片: OSD

delphi

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

寻找GSM 7bit编码/解码算法

我需要在pdu模式下发送短信.有谁能给我一个GSM 7bit编码/解码算法?

delphi gsm pdu

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

在TVirtualStringTree中使用UserData参数的InsertNode

我需要向TVirtualStringTree插入一些新节点.我使用带有UserData参数的InsertNode方法.但树无法显示任何数据.如何获取GetText/FreeNode事件的用户数据?

  TMyData = record
    Name: string;
    size: Integer;
  end;
  PMyData = ^TMyData;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.FormCreate(Sender: TObject);
begin
  VirtualStringTree1.NodeDataSize := SizeOf(TMyData);
  Randomize;
end;

procedure TForm2.Button1Click(Sender: TObject);
var
  Data: PMyData;
  Node: PVirtualNode;
begin
  New(Data);
  Data.Name := DateTimeToStr(now);
  Data.size := Random(100);
  Node := VirtualStringTree1.InsertNode(nil, amInsertAfter, Data);
end;

procedure TForm2.VirtualStringTree1FreeNode(Sender: TBaseVirtualTree; Node:
    PVirtualNode);
var
  Data: PMyData;
begin
  Data := Sender.GetNodeData(Node);
  Data.Name := '';
end;

procedure TForm2.VirtualStringTree1GetText(Sender: TBaseVirtualTree; Node:
    PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; var CellText:
    WideString);
var
  Data: PMyData; …
Run Code Online (Sandbox Code Playgroud)

delphi virtualtreeview

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