以下示例在delphi中是不允许的,但有没有实现类似功能的用法
Val1 := 'abc' ;
Val2 := Ary[Val1] ;
//则 Val2 = 'abc' ;
Val1 := 'abc' ;
Val2 := Ary[Val1] ;
//则 Val2 = 'abc' ;
解决方案 »
- 求救:Delphi连接oracle
- 我想请教:怎样在delphi把数据库的多张图片插入word文档中
- 急急!!!游戏按钮!!
- 各位大蝦,我用DELPHI 7,在Form上添加了一個TSQLConnection組件,雙擊它,發現Driver Name
- 急救:谁解决了flash控件全屏(或动态改变大小)时,控件不变的问题?
- 如何编码实现在Win2000下的重启关机等操作?(送100分以上)
- 怎样在Delphi中取系统时间?
- (急急急.....)1.请教关于EOutofResource的问题 2.请问有没有节省内存的办法
- 我的按钮不见了!好奇怪!
- 我是一个初学者,望高手指教!
- SQL复制问题,广告之后回来结贴(帮顶都谢)
- 想提取字符 ’ 怎么办
var
ary:array ['abc'..'def'] of string ;
ary['abc'] := '12345' ;
ary['def'] :='23456' ;
Val1 := 'abc' ;
Val2 := Ary[Val1] ; //则 Val2 = '12345' ;
我知道有Delphi这样的数组下标是非法的,但有没有实现类似于这样的变量引用的方法呢?
var
S: TStrings;
Val1: String;
begin
S := TStringList.Create;
try
S.Values['abc'] := '12345';
S.Values['def'] := '23456';
Val1 := 'abc';
ShowMessage(S.Values[Val1]);
finally
S.Free;
end;end;
type
TAlphaBeta = (abc, bcd, cde, def);
var
ary: array[0..3] of string;
var1: TAlphaBeta;
begin
ary[integer(abc)] := '1234';
ary[integer(bcd)] := '2345'; var1 := abc;
Showmessage(ary[integer(abc)]);
end;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
AIndex, AValue : TStrings;
procedure AddValue(sIndex, sValue: String);
function GetValue(sIndex: String): String;
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
AIndex := TStringList.Create;
AValue := TStringList.Create;
AddValue('abc', '12345');
AddValue('def', '67890');
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
FreeAndNil(AIndex);
FreeAndNil(AValue);
end;procedure TForm1.AddValue(sIndex, sValue: String);
var
iIndex : Integer;
begin
iIndex := AIndex.IndexOf(sIndex);
if iIndex >=0 then
AValue.Strings[iIndex] := sValue
else begin
AIndex.Add(sIndex);
AValue.Add(sValue);
end;
end;function TForm1.GetValue(sIndex: String): String;
var
iIndex : Integer;
begin
iIndex := AIndex.IndexOf(sIndex);
if iIndex >=0 then
Result := AValue.Strings[iIndex]
else
Result := '';
end;procedure TForm1.Button1Click(Sender: TObject);
var
Val1, Val2: String;
begin
Val1 := 'abc';
Val2 := GetValue(Val1);
ShowMessage (Val2);
end;end.