在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. 如何在用戶控件中訪問主頁面控件值
- 2. 訪問WPF嵌入式頁面中的控件
- 3. 如何從aspx頁面訪問userControl中的web控件頁面
- 4. ASP.NET - 訪問子頁面中的控件
- 5. 訪問aspx頁面中的控件
- 6. 如何在嵌入在WinForm中的WebBrowser控件中啓用JavaScript,該控件又嵌入在XBAP頁面中?
- 7. 從網頁用戶控件訪問頁面內的html控件
- 8. 如何從自定義控件中訪問表單控件
- 9. 在子級用戶控件中訪問父頁面控件
- 10. 訪問嵌入WPF控件在XAML
- 11. XNA - 在表單中嵌入DirectX控件?
- 12. 如何從我的自定義服務器控件中訪問頁面控件?
- 13. 如何在單個控件頁面上顯示單個控件?
- 14. 如何在母版頁的代碼中訪問Telerik RadEditor控件(嵌入在內容頁面中)?
- 15. 如何在博客頁面中嵌入Silverlight控件?
- 16. 在後面的代碼中訪問頁面佈局的控件
- 17. 在Web用戶控件上訪問主頁面控件
- 18. asp.net訪問類中的表單控件在代碼後面
- 19. ASP.NET如何在父頁面上訪問深度嵌套的用戶控件
- 20. 如何訪問UIScrollView中不同頁面的控件?
- 21. 如何訪問UserControl中其他頁面的控件?
- 22. 如何從ASP.NET中的UserControl訪問父頁面控件?
- 23. 如何從UserControl訪問頁面中的控件?
- 24. 如何訪問Site.Master頁面中的控件?
- 25. 在IIS上訪問控件並在頁面上訪問控件的單元測試Web窗體Visual Studio 2012
- 26. 如何從WPF的子頁面訪問父窗口的控件?
- 27. 如何在用戶控件中訪問子控件的HtmlControl.Style?
- 28. 如何使用jQuery訪問嵌入式ActiveX控件的方法?
- 29. C#從父頁面訪問asp控件
- 30. 從WebMethod訪問主頁面控件
超級!幾乎沒有修改,我設法做我想做的事:) 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