方
方竹
Unregistered / Unconfirmed
GUEST, unregistred user!
本人写一个SQL分析器,其中有一属性:
type
TSqlAnalyzer = class(TComponent)
private
FStringsSQL:TStrings;
Procedure SetStringsSQL(Value:TStrings);
published
property SQLs:TStrings read FStringsSQL write SetStringsSQL;
.......
Procedure TSqlAnalyzer.SetStringsSQL(Value: TStrings);
begin
FStringsSQL.Assign(Value);
FSQL:=Trim(StringsToString(Chr($20),Value));
AnalyzeSQL;
end;
当我安装组件,并在Form1中用如下代码测试:
procedure TForm1.Button1Click(Sender: TObject);
begin
SqlAnalyzer1.SQLs.Assign(ADOQuery1.SQL);//????????
end;
发现并没有执行TSqlAnalyzer.SetStringsSQL中的代码;
当我改成:
SqlAnalyzer1.SQLs:=ADOQuery1.SQL;//!!!!!!!!!
就会执行TSqlAnalyzer.SetStringsSQL中的代码;
请问各位大虾,这是为什么,怎样才能让它无论如都执行SetStringsSQL这一写方法(因为用户有可能用Assign,也可能用:=)?
type
TSqlAnalyzer = class(TComponent)
private
FStringsSQL:TStrings;
Procedure SetStringsSQL(Value:TStrings);
published
property SQLs:TStrings read FStringsSQL write SetStringsSQL;
.......
Procedure TSqlAnalyzer.SetStringsSQL(Value: TStrings);
begin
FStringsSQL.Assign(Value);
FSQL:=Trim(StringsToString(Chr($20),Value));
AnalyzeSQL;
end;
当我安装组件,并在Form1中用如下代码测试:
procedure TForm1.Button1Click(Sender: TObject);
begin
SqlAnalyzer1.SQLs.Assign(ADOQuery1.SQL);//????????
end;
发现并没有执行TSqlAnalyzer.SetStringsSQL中的代码;
当我改成:
SqlAnalyzer1.SQLs:=ADOQuery1.SQL;//!!!!!!!!!
就会执行TSqlAnalyzer.SetStringsSQL中的代码;
请问各位大虾,这是为什么,怎样才能让它无论如都执行SetStringsSQL这一写方法(因为用户有可能用Assign,也可能用:=)?