如何改变 edit的类型为memo(30分)

  • 主题发起人 主题发起人 一条明
  • 开始时间 开始时间

一条明

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样把 一个 edit 改变为 memo , 就是控件类型发生改变。
 
类似于变性手术~~~
 
把edit控件删除,再增加一个memo控件
 
这种要求一辈子没见过,如果真有这需求,说明你的业务模式设计有问题!
 
这中要求是 有 不合理的 地方, 但是从技术 角度 应该 可以实现,。。。。。
 
把原有的edit 隐藏, 再动态生成一个memo.
但是原有的事件, 对memo 能支持吗?
 
不用事件, 只要类型改变就 可以
 
----------------------------------------------
不用事件, 只要类型改变就 可以
----------------------------------------------
那就是整容了~~~ (不用变性)
 
运行时改变还是设计时改变?
 
运行时改变
 
主要是考虑界面空间吧?设计时叠放一个edit一个memo设计时show edit运行时动态hide edit再show memo
 
将edit变成 memo 这个要重新该写空件的代码~
但是你可以考虑把用 edit1.Visible:=false; 隐藏掉edit 在动态生成1个memo 或者在edit1 的下面放置1个 memo ,当edit1.Visible:=false;的时候 memo.Visible:=true;
 
想法不错,但要变性,要改的属性代码一堆,还不如楼上说的整容。
 
他们之间没有继承关系. 所以你要改变好像是很难哦.
 
做一个这样的控件出来
 
看我的,在单元加代码:
TEdit=class(TMemo)
private
function GetEditText: string;
procedure SetEditText(const Value: string);
published//属性类型要和TEdit一样
property Text:string read GetEditText write SetEditText;
end;
function TEdit.GetEditText: string;
begin
Result:=Lines.Text;
end;

procedure TEdit.SetEditText(const Value: string);
begin
Lines.Text :=Value;
end;

真正的整容,哈哈
记得不要修改Edit中Memo没有的属性,Width,Length之类的可以
---如果一定要就像增加Text属性一样加代码.....
 
用接口或者, 委托接口的方式可以实现。
 
----------------------------------------------
用接口或者, 委托接口的方式可以实现。
----------------------------------------------

那费用可老高了。。。
 
费用??

不太明白。 为什么说费用高?
 
后退
顶部