delphi中关于动态生成memo和button问题,怎么将对应记录加到数据库里???

varfrm_cs:Tfrm_cs;memo:TMemo;butt:Tbutton;label1:Tlabel;implementation{$R*.dfm}vari:I... var
frm_cs: Tfrm_cs;
memo:TMemo;
butt:Tbutton;
label1:Tlabel;
implementation

{$R *.dfm}
var
i:Integer;
procedure Tfrm_cs.Butt_scClick(Sender: TObject);
begin
label1:=TLabel.Create(Self);
label1.Parent:=Self;
label1.Left:=20;
label1.Top:=30+i*150;
label1.Caption:=IntToStr(i);
label1.Show;
memo:=Tmemo.Create(Self);
memo.Parent:=Self;
memo.Left:=150;
memo.Top:=30+i*150;
memo.Show;
butt:=TButton.Create(Self);
butt.Parent:=Self;
butt.Left:=280;
butt.Top:=120+i*150;
butt.Height:=25;
butt.Width:=60;
butt.Caption:='添加';
butt.OnClick:=myclick;
butt.Show;
inc(i);
end;
procedure Tfrm_cs.myclick(Sender: TObject);
begin
query_tj.Close;
query_tj.Connection:=conn;
query_tj.SQL.Clear;
query_tj.SQL.Add('select * from cs_table');
query_tj.Open;
query_tj.Append;
query_tj.FieldByName('memotext').Text:=memo.Text;
query_tj.Next;
end;
procedure Tfrm_cs.FormCreate(Sender: TObject);
begin
i:=1;
end;
展开
 我来答
神说早安
2011-06-17 · 超过33用户采纳过TA的回答
知道答主
回答量:111
采纳率:0%
帮助的人:96.8万
展开全部
我晕 你Append后没有Post?那数据还是在缓存的吧?然后又用了Next,那数据能保存成功吗?
你说的那个保存 可以通过这个方式 :
1 动态创建Memo的时候可以这样设置:
Memo1.Name := 'Memo1';
Button1.Name := 'Button1';
2 在MyClick中可以这样设置:
var AName, AText : string;
begin
AName := (Sender as TButton).Name; //获取当前按钮控件名称
AName := Copy(AName,Pos('Button',AName)+6,Length(AName)); //获取后缀的数字
AName := 'Memo'+AName; //这个就是memo的名称啦
if Assigned(FindComponent(AName)) then //搜索控件 如果存在就取其文字
AText := TMemo(FindComponent(AName)).Lines.Text
else ShowMessage('没有搜索到相应的Memo控件!无法保存!');
with query_Tj do
begin
Connection := conn;
Close;
SQL.Text := 'select * from cs_table where 1=2'; //加where 1=2 ,避免搜索整个表 按你原先的代码,如果以后你数据变多时,搜索就会很慢
Open;
Append;
FieldByName('memotext').Value := AText;
Post;
end;
end;

以上代码为手打,没有用delphi调试过,意思差不多是这样,自己看着办啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liu55721
2011-06-07 · TA获得超过922个赞
知道大有可为答主
回答量:1861
采纳率:100%
帮助的人:878万
展开全部
query_tj.Append;
query_tj.FieldByName('memotext').Text:=memo.Text;
赋值了又不保存,
还移动了指针:query_tj.Next;
不知道你要干什么?
memo.Parent:=Self;
memo肯定是要放在那一个容器里的,怎么它的父组件是自己呢?
看不懂
追问
query_tj.Append;
query_tj.FieldByName('memotext').Text:=memo.Text;
query_tj.Next;
这是一次插入完成,当然把指针移到下一个,准备插入了!

这个提的意思是这样的就是点击添加按钮可以弹出一个memo和按钮,然后在点击添加按钮,又生成一个memo和button,如这样反复可以,点击释放按钮呢,旧可以把所有的组件清空。点击memo对应的button,就可以把memo的内容存在数据库中!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式