0

メインフォームといくつかのページを含むタブシートがあります。

最初のページには、たとえば、edit1 というラベルの付いた編集があります。2 ページには、新しいウィンドウ (フォーム) を開くボタンがあります。このフォームには、edit2 というラベルの付いた別の編集があります。

質問: edit1 の値と edit2 の値を比較するにはどうすればよいですか?

4

2 に答える 2

1

次のものが必要です。

  1. メイン フォームへの参照、たとえばMainForm: TMainForm、および
  2. 他のフォームへの参照、たとえばOtherForm: TOtherForm.

次に、次のように記述できます。

if MainForm.Edit1.Text = OtherForm.Edit2.Text then
  ....

それはうまくいきます。ただし、2 つのフォームがパブリック プロパティを介してテキストを公開した方がよいでしょう。そうすれば、内部をいじる必要がなくなります。

于 2013-11-05T11:38:21.547 に答える
0

フォームが show() によって表示される場合、考えられる解決策は次のとおりです。

procedure TForm1.Button1Click(Sender: TObject);
begin
  form2.Show();
  if self.edit1.text= form2.edit2.text
    then ShowMessage('Equals!');
end;

ただし、フォームが DMI の子である場合、値が変更される保証がないため、このソリューションはあまり意味がありません。これは、ShowModal() を使用する場合に機能します。

于 2013-11-05T11:42:36.400 に答える