在Form1中我有PageControl。在运行时我的程序创建标签页。在每个TabSheet中,我创建Form2。在Form2中,我有一个Memo1组件。如何将文本添加到Memo1?如何访问嵌入在页面控件中的表单的控件?
2
A
回答
0
如果我得到正确的你在做什么,
procedure TForm1.Button1Click(Sender: TObject);
var
View: TForm;
Memo1, Memo2: TMemo;
Page: TTabSheet;
I: Integer;
begin
View:= TForm2.Create(Form1);
View.Parent:= PageControl1.Pages[0];
View.Visible:= True;
View:= TForm2.Create(Form1);
View.Parent:= PageControl1.Pages[1];
View.Visible:= True;
// find the first memo:
Page:= PageControl1.Pages[0];
Memo1:= nil;
for I:= 0 to Page.ControlCount - 1 do begin
if Page.Controls[I] is TForm2 then begin
Memo1:= TForm2(Page.Controls[I]).Memo1;
Break;
end;
end;
Page:= PageControl1.Pages[1];
// find the second memo:
Memo2:= nil;
for I:= 0 to Page.ControlCount - 1 do begin
if Page.Controls[I] is TForm2 then begin
Memo2:= TForm2(Page.Controls[I]).Memo1;
Break;
end;
end;
if Assigned(Memo1) then Memo1.Lines.Add('First Memo');
if Assigned(Memo2) then Memo2.Lines.Add('Second Memo');
end;
3
你可以做这样的事情:
(PageControl1.Pages[0].Controls[0] as TForm2).Memo1.Lines.Add('text');
+0
你能写工作示例? – gedO 2010-03-07 22:04:18
0
我看到一个很大的问题与此代码 - Memo2将会有完全相同与Memo1相同的值,因为在搜索循环中没有区别。此外,如果此代码已完成,那么除了页面上的表单外,没有任何搜索循环的理由。
VilleK的答案应该编译并运行,我不明白你在问什么。
+0
我想你的意思是把你的第一段作为对Serg答案的评论,而第二段作为对Ville答案的评论。这两段都不是这个问题的答案。 – 2010-03-08 09:21:27
0
所以,我在你的帮助下解决了我的问题。这是我的代码:
var
ID, I: integer;
Tekstas: string;
View: TForm2;
Memo: TMemo;
Page: TTabSheet;
begin
...
Page := PageControl.Pages[ID];
for i := 0 to Page.ControlCount - 1 do
begin
(PageControl.Pages[ID].Controls[0] as TKomp_Forma).Memo.Lines.Add('['+TimeToStr(Time)+']'+Duom[ID].Vardas+': '+Tekstas);
end;
end;
希望这有助于别人
相关问题
- 1. 如何从aspx页面访问userControl中的web控件页面
- 2. 访问aspx页面中的控件
- 3. ASP.NET - 访问子页面中的控件
- 4. 如何在嵌入在WinForm中的WebBrowser控件中启用JavaScript,该控件又嵌入在XBAP页面中?
- 5. 从网页用户控件访问页面内的html控件
- 6. XNA - 在表单中嵌入DirectX控件?
- 7. 如何从我的自定义服务器控件中访问页面控件?
- 8. 如何在母版页的代码中访问Telerik RadEditor控件(嵌入在内容页面中)?
- 9. 如何在单个控件页面上显示单个控件?
- 10. 如何在博客页面中嵌入Silverlight控件?
- 11. 在后面的代码中访问页面布局的控件
- 12. 在Web用户控件上访问主页面控件
- 13. asp.net访问类中的表单控件在代码后面
- 14. ASP.NET如何在父页面上访问深度嵌套的用户控件
- 15. 如何从UserControl访问页面中的控件?
- 16. 如何访问UIScrollView中不同页面的控件?
- 17. 如何访问UserControl中其他页面的控件?
- 18. 如何访问Site.Master页面中的控件?
- 19. 如何使用jQuery访问嵌入式ActiveX控件的方法?
- 20. C#从父页面访问asp控件
- 21. 无法从控件访问页面类
- 22. 从WebMethod访问主页面控件
- 23. 如何将Silverlight控件嵌入到Facelets页面中?
- 24. 在网页中嵌入Telnet控件
- 25. 在ListView控件中访问TextBox控件
- 26. 如何从嵌套结构的ToString方法中访问表单控件
- 27. 从一个单独的类访问页面控件
- 28. 如何访问[WebMethod]方法内的页面控件?
- 29. 如何从C#中的类访问表单方法和控件?
- 30. 如何在PowerPoint中嵌入ActiveX控件
超级!几乎没有修改,我设法做我想做的事:) Greate工作 – gedO 2010-03-07 22:40:10
伙计们帮助我。当我只使用一个TabSheet时,一切都很顺利,但是当我使用更多的时候,会给出错误“List index outbound of bounds(1)”。任何想法的方式? – gedO 2010-03-08 06:20:34
列表索引错误可能是因为您访问带有无效索引的Pages或Controls集合。像上面的Sergs例子一样循环控制。循环浏览这样的页面: for I:= 0 to PageControl1.PageCount - 1 do begin (PageControl1.Pages [I] .Controls [0] as TForm2).Memo1.Lines.Add('text'); 结束; – 2010-03-08 07:06:02