Form1にはPageControlがあります。実行時に、私のプログラムはタブシートを作成します。各タブシートでForm2を作成します。Form2には、Memo1コンポーネントがあります。Memo1にテキストを追加するにはどうすればよいですか?
2345 次
4 に答える
3
あなたはこのようなことをすることができます:
(PageControl1.Pages[0].Controls[0] as TForm2).Memo1.Lines.Add('text');
于 2010-03-07T21:51:10.110 に答える
1
私が正しければ、あなたは何をしているのですか?
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;
于 2010-03-07T22:11:12.057 に答える
0
このコードには大きな問題が1つあります。検索ループに違いがないため、Memo2はMemo1とまったく同じ値になります。また、このコードが完成していれば、ページにはフォームしかなく、検索ループの理由はまったくありません。
VilleKの答えはコンパイルして実行する必要があります。あなたが何を求めているのかわかりません。
于 2010-03-07T22:25:17.093 に答える
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;
これが他の誰かに役立つことを願っています
于 2010-03-08T13:48:29.420 に答える