想做一个函数
传入 integer 型的 i
返回 控件实例 Editi
即 传入 6
可以得到 Edit6 的实例
传入 8
可以得到 Edit8 的实例
好象要用到 GetClass 什么的,是吗?
请指教
传入 integer 型的 i
返回 控件实例 Editi
即 传入 6
可以得到 Edit6 的实例
传入 8
可以得到 Edit8 的实例
好象要用到 GetClass 什么的,是吗?
请指教
调试欢乐多
看有用否?
回答一个鬼佬的提问写的代码。我希望根据一个字符串,来创建该类的对象,例如我给定'TButton',那么能在运行的时候,动态创建Button出来?不要告诉我用if来判断或者用case来判断等等~,那样的话,有几百个控件的话,岂不是晕倒?请参考下面的代码,下面的代码演示了三种控件的动态创建,若需要动态创建其他的,请修改那个数组常量即可:function DynCreateControlByName(AClassName: string; AOwner: TWinControl = nil): TControl;const/// You can add any class if you want!ControlClass : array[0..2] of TPersistentClass = (TButton, TEdit, TLabel);varCls : TControlClass;beginResult := nil;RegisterClasses(ControlClass);Cls := TControlClass(GetClass(AClassName));if Cls = nil then exit;Result := Cls.Create(AOwner);end;procedure TForm1.Button1Click(Sender: TObject);varControl : TControl;beginControl := DynCreateControlByName(Edit1.Text);if Control <> nil thenwith Control dobeginParent := Self;Left := Random(Self.Width) - Width;Top := Random(Self.Width) - Height;Perform(WM_SETTEXT,Length(Edit1.Text),integer(pchar(Edit1.Text)));Show;end;end;---------------------------------------procedure TForm1.Button2Click(Sender: TObject);beginTWinControlClass(FindClass('TQRDBText')).Create(Self);end;initializationRegisterClasses([TQRDBText]);finalizationUnregisterClasses([TQRDBText]);end.
但是我想要的是,比如现在已经有了
ADOQuery1,ADOQuery2,ADOQuery3
而我想 只传入 (2,'select * from Table1')
就 在 ADOQuery2 中执行了SQL语句,
但是不想用 case i of 2 : ... ...
因为可能有很多的ADOQuery,
可以解决吗? (>_<")