Я пытаюсь следующий код для графического интерфейса, чтобы показать 2 одинаковых окна.Я использую show, а не showmodal:
program RnTFormclass;
{$mode delphi}
uses
//cthreads, // for linux only.
Interfaces, Forms, StdCtrls;
type
RnTForm = class(TForm)
private
wnd: TForm;
btn: TButton;
public
constructor create;
procedure showit;
end;
constructor RnTForm.create;
begin
//Application.Initialize; //removed.
wnd := TForm.Create(Application);
with wnd do begin
Height := 300;
Width := 400;
Position:= poDesktopCenter;
Caption := 'LAZARUS WND';
end;
btn := TButton.Create(wnd);
with btn do begin
SetBounds(0, 0, 100, 50);
Caption := 'Click Me';
Parent := wnd;
end;
end;
procedure RnTForm.showit;
begin
wnd.Show;
end;
var
myform1, myform2: RnTForm;
begin
// create windows:
myform1 := RnTForm.Create;
myform2 := RnTForm.Create;
// show windows:
myform1.showit;
myform2.showit;
end.
Я хочу, чтобы два идентичных окна отображались / открывались.Хотя программа работает без каких-либо ошибок или предупреждений, ни одно окно не отображается.Программа просто заканчивается.
Где проблема и как ее можно решить?Спасибо за вашу помощь.
Редактировать: Как указано в комментариях, Application.initialize вызывается дважды и не запускается.Я закомментировал Application.initialize, и код по-прежнему не открывает окна.(Он открывает окна одно за другим, если show
заменяется на showModal
).
Главный вопрос - как сохранить окно открытым после show
?