delphi CopyComponent动态复制控件组TabSheet,如何对对应的TabSheet组里的Memo进行操作?

lxdu120 2020-06-21 10:04:33
窗体里面有个 PageControl1.TabSheet1,里面有Memo,和Button
Button1的代码是:Memo1.Lines.Add('1111111');

我用 CopyComponent动态复制控件组PageControl1.TabSheet1
新复制出来的TabSheet(2)...TabSheet(N),里面也有Memo,和Button
现在的问题是,点新复制出来的Button,不会对对应的TabSheet里的Memo进行操作,还是对原来的TabSheet1里的Memo1.Lines.Add操作,Button的代码要怎么写才会对对应的TabSheet里的Memo进行操作?
求高手指点!!

var
a: TTabSheet;
i: integer;
begin
for i:= PageControl1.PageCount - 1 downto 1 do
PageControl1.Pages[i].Destroy;
for i:= 1 to SpinEdit2.Value - 1 do //复制数量
begin
RegisterClasses([TTabSheet, TMemo, tbutton, tpagecontrol, tmap]);
a := CopyComponent(TabSheet1, PageControl1, Self) as TTabSheet;
//a.Caption := inttostr( gettickcount );
a.Caption := Format('窗口%d', [i+1]);
UnRegisterClasses([TTabSheet, TMemo, tbutton, tpagecontrol, tmap]);
end;

以上代码复制出来TabSheet(2)...TabSheet(N),求对对应的TabSheet里的Memo进行操作
...全文
295 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxdu120 2020-06-24
  • 打赏
  • 举报
回复
引用 2 楼 tanqth 的回复:
给你一个思路:
先建一个共用的按钮处理过程,这个过程里就完成你Memo1.Lines.Add('1111111');的工作,但不是Memo1.Lines.Add('1111111');。(请注意这个过程很重要)过程里第一步是以查找自己的父级控件TTabSheet,然后查找TTabSheet下的TMemo,然后针对这个TMemo完成操作。

然后是,当完成复制时,去把按钮的事件指向到刚刚建的那个共用处理过程。



有代码示例吗?最好delphi的
zjg_1108 2020-06-24
  • 打赏
  • 举报
回复
单独定义一个指针过程,动态的给每个产生出来的button的单击事件赋值。
秋天之落叶 2020-06-24
  • 打赏
  • 举报
回复
在容器中复制粘贴控件要注意粘贴到了什么位置,粘贴到哪里记得把那里变为焦点,否则乱七八糟的,我就这样用过且很受伤。
tanqth 2020-06-22
  • 打赏
  • 举报
回复
给你一个思路: 先建一个共用的按钮处理过程,这个过程里就完成你Memo1.Lines.Add('1111111');的工作,但不是Memo1.Lines.Add('1111111');。(请注意这个过程很重要)过程里第一步是以查找自己的父级控件TTabSheet,然后查找TTabSheet下的TMemo,然后针对这个TMemo完成操作。 然后是,当完成复制时,去把按钮的事件指向到刚刚建的那个共用处理过程。
  • 打赏
  • 举报
回复
复制出来的memo的名字也不叫memo1,你的处理代码是Memo1.Lines.Add('1111111');当然不会显示在其他memo中了
代码下载链接: https://pan.quark.cn/s/a4b39357ea24 第 一 章 概述 1-1 简述计算机程序设计语言的发展阶段。 解: 自从计算机诞生以来,程序设计语言经历了从机器语言、汇编语言到高级语言的演变过程,C++语言作为一种面向对象的编程语言,也属于高级语言范畴。 1-2 面向对象的编程语言具备哪些特性? 解: 面向对象的编程语言与传统的编程语言有着本质的区别,其设计初衷是为了更直观地模拟现实世界中存在的事物及其相互关系。这类编程语言将客观事物视为具有属性和行为的对象,通过抽象方法提取出同一类对象的共同属性(静态特征)和行为(动态特征),从而构建类。借助类的继承与多态机制,能够便捷地实现代码复用,显著缩短软件开发周期,并确保软件风格的一致性。因此,面向对象的编程语言使得程序能够较为准确地反映问题域的本质,软件开发人员可以运用人类惯用的思维模式进行开发工作。C++语言是目前应用最为广泛的面向对象编程语言。 1-3 结构化程序设计方法是什么?这种方法有哪些优势和不足? 解: 结构化程序设计的核心思想是自顶向下、逐步求精;其程序结构按照功能划分为多个基本模块;各模块之间的关联尽可能简化,在功能上保持相对独立性;每个模块内部均由顺序、选择和循环三种基本结构构成;模块化实现的具体途径是利用子程序。结构化程序设计由于采用模块分解与功能抽象,自顶向下、分而治之的策略,从而有效地将一个较为复杂的程序系统设计任务分解成许多易于管理和处理的子任务,便于开发与维护。 尽管结构化程序设计方法具备诸多优点,但它本质上仍是一种面向过程的程序设计方法,将数据与处理数据的操作分离为相互独立的实体。当数据结构发生变化时,所有相关的处理过程都需要进行相应的调整,每一种...

16,741

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧