表單里面有個 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進行操作
uj5u.com熱心網友回復:
復制出來的memo的名字也不叫memo1,你的處理代碼是Memo1.Lines.Add('1111111');當然不會顯示在其他memo中了uj5u.com熱心網友回復:
給你一個思路:先建一個共用的按鈕處理程序,這個程序里就完成你Memo1.Lines.Add('1111111');的作業,但不是Memo1.Lines.Add('1111111');。(請注意這個程序很重要)程序里第一步是以查找自己的父級控制元件TTabSheet,然后查找TTabSheet下的TMemo,然后針對這個TMemo完成操作。
然后是,當完成復制時,去把按鈕的事件指向到剛剛建的那個共用處理程序。
uj5u.com熱心網友回復:
在容器中復制粘貼控制元件要注意粘貼到了什么位置,粘貼到哪里記得把那里變為焦點,否則亂七八糟的,我就這樣用過且很受傷。uj5u.com熱心網友回復:
單獨定義一個指標程序,動態的給每個產生出來的button的單擊事件賦值。uj5u.com熱心網友回復:
有代碼示例嗎?最好delphi的
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/9581.html
標籤:語言基礎/算法/系統設計
