奇怪的问题,程序很简单,大家应该都看得懂,为什么出问题就莫名其妙了。
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
ItemIDs : array of PWideChar;
public
{ Public declarations }
end;
var
Form1: TForm1;
const ItemsNum : Longint = 8;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
I : Integer;
begin
SetLength(ItemIDs, ItemsNum);
For I := 0 To 7 do
begin
ItemIDs[I] := PWideChar(WideString('Tag'+IntToStr(I+1)));
//showmessage(ItemIDs[I]);
end;
{ItemIDs[0] := PWideChar(WideString('Tag1'));
ItemIDs[1] := PWideChar(WideString('Tag2'));
ItemIDs[2] := PWideChar(WideString('Tag3'));
ItemIDs[3] := PWideChar(WideString('Tag4'));
ItemIDs[4] := PWideChar(WideString('Tag5'));
ItemIDs[5] := PWideChar(WideString('Tag6'));
ItemIDs[6] := PWideChar(WideString('Tag7'));
ItemIDs[7] := PWideChar(WideString('Tag8'));}
For I:=0 To ItemsNum-1 do showmessage(ItemIDs[I]);
end;
end.
用循环赋值,数组里面的值莫名其妙,直接赋值的话就正常。
希望懂得人指教!