Примите мои извинения, если мой вопрос и описание кажутся слишком простыми или уже были заданы другими.
Возможно, я задавал подобный вопрос раньше. Тем не менее, я все еще немного запутался насчет winform. Допустим, у вас есть программа .net Delphi prism с Mainform, Form1, Form2, Form3 . Кроме того, вы хотите иметь возможность отображать одно мгновение формы Form1 из Mainform, Form2 и Form3. Как ты это делаешь? Мне нужно иметь winform, которая должна отображаться по мере необходимости во всей программе, чтобы показать ошибки приложения в RichTextBox. Это означает, что SysErrorDlg winform может быть вызван в любое время из любой точки моей программы для отображения ошибок программы. Для меня это возможно, если во всей моей программе доступен только один экземпляр winform SysErrorDlg.
следуйте очень простому коду ниже. Это в значительной степени то, что я пытаюсь сделать.
=========================================
Mainform
using
Form1;
Form2;
Form3;
Mainform1 = class(System.Windows.Form)
private
method ShowBtn_Click(sender: System.Object; e: System.EventArgs)
public
constructor;
F1:Form1;
end;
constructor MainForm1;
begin
F1 := new Form1;
end;
method Mainform1.ShowBtn_Click(sender: System.Object; e: System.EventArgs);
begin
F1.Show; // or ShowDialog;
end;
=====================================================
Form1
Form1 = class(System.Windows.Form)
private
public
constructor;
end;
constructor Form1;
begin
end;
=====================================================
Form2
using
Mainform;
Form2 = class(System.Windows.Form)
private
method ShowBtn_Click(sender: System.Object; e: System.EventArgs)
public
constructor;
end;
constructor Form2;
begin
end;
method Form2.ShowBtn_Click(sender: System.Object; e: System.EventArgs);
begin
MainForm1.F1.Show; // or ShowDialog;
end;
====================================================
Form3
Using
MainForm;
Form3 = class(System.Windows.Form)
private
method ShowBtn_Click(sender: System.Object; e: System.EventArgs)
public
constructor;
end;
constructor Form3;
begin
end;
method Form3.ShowBtn_Click(sender: System.Object; e: System.EventArgs);
begin
MainForm1.F1.Show; // or ShowDialog;
end;
============================================
Возможно ли это сделать? Мой компилятор не позволяет мне объявлять глобальную переменную winform, но жалуется, что она должна быть идентифицирована как общедоступная. Даже если есть возможность включить эту функцию, я не хочу, чтобы мне нравилась идея держать переменные закрытыми или локальными для классов.
Как передать экземпляр form1 в form2 или form3, если экземпляр form1 уже объявлен и создан в Mainform? Я понимаю, как работают шоу и шоудиалог. Какую строку кода вы бы использовали для доступа к экземпляру Form1 из Form2, если экземпляр Form1 находится в MainForm?
Вы можете предоставить небольшой код вместе с объяснением.