ソス@ソスソスソスソスソスgソスソスワむ包ソスソスソスソスtソスHソス[ソスソスソスフ撰ソスソスソスソスニ破ソスソス
|
ソスEC/C++
ソスEDelphi
ソスEVisual BasicソスソスソスSソスソス
ソス@(VB2-VB6ソスソス.NETソスソスソスp)
ソスEVisual Basic(VB2-VB6)
ソスEVisual Basic .NET
ソスEVisual C++
ソスEpapy's softwarelibrary
ソスン抵ソスノゑソスソスソスト包ソスソスソスソスフフソスHソス[ソスソスソスソスリゑソスヨゑソスソスソス謔、ソスネアソスvソスソスソスPソス[ソスVソスソスソスソスソスソス
ソスlソスソスソストゑソスソスソスフでゑソスソスソスソスAソスソスソスLソスフようソスネ擾ソスソスソス満ゑソスソスソスソス謔、ソスネ良ゑソスソスソスソス@ソスソス
ソスネゑソスソスネゑソスソスvソスソスソスツゑソスソスワゑソスソスソスB
ソスyソスソスソスソスz
ソスPソスDソスlソスXソスネ趣ソズのフソスHソス[ソスソスソスソスソスソスソスソスソスソスソスンゑソスソスソス
ソスQソスDソスナ擾ソスソスノどのフソスHソス[ソスソスソスソス¥ソスソスソスソスソスソスフゑソスソスソス INIソスtソス@ソスCソスソスソスソスソスソスソス閧キソスソスB
ソスRソスDソスeソスtソスHソス[ソスソスソスソスソスソスINIソスtソス@ソスCソスソスソスソスソスソスソスソスソスソスソスソスソスソスソスヘ擾ソスソスソスQソスナ鯉ソスソスワゑソスソスソスソスtソスHソス[ソスソスソスソス
ソス@ソス@ソス¥ソスソスソスソスソスソスソスB
ソスSソスDソスソスLソスフ擾ソスソスソスナ表ソスソスソスソスソスソスtソスHソス[ソスソスソスソスソスソスソスソスソスソスソスgソスナゑソスソスソスソストゑソスFormDestroyソスソス
ソス@ソス@FormCreateソスノゑソスソスソスト再構ソスzソスソスsソスソスソスB
ソスソス¥ソスソスソスtソスHソス[ソスソスソスソスソスeソスtソスHソス[ソスソスソスソスヌ暦ソスソスソスソスソスSDIソス`ソスソスソスソスlソスソスソストみゑソスソスフでゑソスソスソス
ソスソスソスソスRソスソスソスソスソスソスワで待機ソスソスソスソスソスソスソスソス@ソスソスソスかソス轤クソスAソスソスソスソスネ包ソスソス@ソスナ組ソスソスナみまゑソスソスソスソスB
ソスソスソスフ包ソスソス@ソスソスソスニ各ソスtソスHソス[ソスソスソスフ管暦ソスソスソスソスPソスJソスソスソスナ行ソスソス
ソスtソスHソス[ソスソスソスフ切替や自ソスgソスフフソスHソス[ソスソスソスフ破ソスソスソスニ撰ソスソスソスソスソスソスソスワゑソスソスソスソスソスソスフでゑソスソスソス
ソスネにゑソスApplication.Runソスソスソスソスgソスpソスソスソストゑソスソスネゑソスソスsソスソスソスネ難ソスe
ソスソスソスフ包ソスソス@ソスナ厄ソス閧ェソスNソスソスソスネゑソスソスフゑソスソスHソスワゑソスソスソスソスソスネ外ソスノゑソスソスソスニ良ゑソスソスソスソス@ソスソス
ソスソスソスソスソスフゑソスソスソスソスソスソストゑソスソスソスソスソスソスソスソスB
ソスyソス成ソスソスeソスz
Form1ソスソスForm2ソスAソスfソス[ソス^ソスソスソスWソスソスソス[ソスソスソスソス成
ソスtソスHソス[ソスソスソスフ終ソスソスソスソスハフソスHソス[ソスソスソス¥ソスソスソスフ指ソスソスソスヘデソス[ソス^ソスソスソスWソスソスソス[ソスソスソスソス
ソスvソスソスソスpソスeソスBソスソスoソスRソスソスソストゑソスソスソスiソスPソスソスソスネクソスソスソスXソスナゑソスソスソスソスソスフゑソスソスソスj
ソスeソスtソスHソス[ソスソスソスソスFormCreateソスノゑソスDataModule1.FormStatus1ソスソス2ソスソス
ソスソスソスgソスフフソスHソス[ソスソスソスソスソスソスソスンゑソスソス驍アソスニゑソス¥ソスソス Trueソスソス
FormDestroyソスノゑソス False ソスソスソスソスソスト通知
ソスeソスtソスHソス[ソスソスソスソスソスソス
DataModule1.CtrlForm := 1
Close;
ソスニゑソスソスソスホ別フソスHソス[ソスソスソスソスソス¥ソスソスソスソスソスソスAソスソスソスソスソスソスソスgソスヘ破ソスソスソスネゑソス
ソスvソスソスソスWソスFソスNソスgソス¥ソス[ソスXソスノ以会ソスソスフ擾ソスソスソスソスソスヌ会ソス
-----------------------------------------------------------------------
program FormChangeProject;
uses
Forms,
Form1Unit in 'Form1Unit.pas' {Form1},
Form2Unit in 'Form2Unit.pas' {Form2},
DataModuleUnit in 'DataModuleUnit.pas' {DataModule1: TDataModule};
{$R *.RES}
var
FForm2 : TForm2;
FForm1 : TForm1;
begin
Application.Initialize;
Application.CreateForm(TDataModule1, DataModule1);
DataModule1.CtrlForm = 1;
while True do begin
if DataModule1.CtrlForm = 2 then begin
FForm2 := TForm2.Create(Application);
FForm2.Show;
DataModule1.CtrlForm := 0;
end;
if DataModule1.CtrlForm = 1 then begin
FForm1 := TForm1.Create(Application);
FForm1.Show;
DataModule1.CtrlForm := 0;
end;
if (not DataModule1.FormStatus1) and
(not DataModule1.FormStatus2) then break;
Application.HandleMessage;
end;
//Application.Run;
end.
-----------------------------------------------------------------------
ソスソスソスソスソスソスソスgソスソスソストゑソスソスソス¥ソス[ソスXソスフ暦ソスソスpソスナゑソスソスソスソスBソスソスソスソスソスソスソスソスソスフはどゑソスソスナゑソスソス蛯、ソスH
ソスPソスDソスtソスHソス[ソスソスソスソスソスフスソスsソス[ソスhソス{ソス^ソスソスソスソスpソスモ。ソスtソスHソス[ソスソスソスフ管暦ソスソスヘスソスsソス[ソスhソス{ソス^ソスソスソスソスTAGソスvソスソスソスpソスeソスBソスナ趣ソスソスハ。
ソスQソスDソスtソスHソス[ソスソスソス成ソスソスソスノIソスmソスhソスtソス@ソスCソスソスソスソスヌみ搾ソスソスン対会ソスソスソスソスソスXソスsソス[ソスhソス{ソス^ソスソスソス動ゑソスソスソスソスB(DownソスvソスソスソスpソスeソスBソスソスClickソスCソスxソスソスソスgソスH)
ソスRソスDソストび出ソスソスソスソスソスtソスHソス[ソスソスソスフ親ソスソスソスソスCソスソスソスtソスHソス[ソスソスソスiForm1)ソスノ設置ソスソスソストゑソスソスソスPanel1ソスノ設抵ソス
uses
Unit2, Unit3, Unit4;
procedure TForm1.SpdBtnModeUSCDClick(Sender: TObject);
var
NewFormClass: TFormClass;
NewForm: TForm;
begin
//ソスtソスHソス[ソスソスソスソスwソスソス
case (Sender as TSpeedButton).Tag of
0: NewFormClass := TForm2;
1: NewFormClass := TForm3;
2: NewFormClass := TForm4;
else
NewFormClass := nil;
end;
//ソス¥ソスソスソスソスソストゑソスソスソスtソスHソス[ソスソスソスフ破ソスソス
if Panel1.ControlCount > 0 then
Panel1.Controls[0].Free;
//ソスtソスHソス[ソスソスソスフ設抵ソス
if Assigned(NewFormClass) then
begin
NewForm := NewFormClass.Create(Self);
NewForm.Hide;
NewForm.BorderStyle := bsNone;
NewForm.Parent := PnlOwner;
NewForm.Align := alClient;
NewForm.Show;
end;
end;
//-----------------------------------------------------------
procedure TForm2ソスソス.FormDestroy(Sender: TObject);
begin
//ソスKソスvソスネ廃ソスソスソスソスソスソス
end;
procedure TForm1.SpdBtnModeUSCDClick(Sender: TObject);
ソスソス
procedure TForm1.SpeedButtonClick(Sender: TObject);
NewForm.Parent := PnlOwner;
ソスソス
NewForm.Parent := Panel1;
ソスソスソスソスソスソスけソスソスソスソスワゑソスソスソスB
ソスソスソスソスソスフソソス[ソスXソスフ一部ソスソスソスcソスソスソストまゑソスソスソス
ソスTソスソスソスvソスソスソスソスソス閧ェソスニゑソスソスソスソスソスソスソスソスワゑソスソスB
ソスソスソスソスソスソスソストみまゑソスソスソスソスソスソスAソスソスソスソスソス轤ェソスlソスソスソストゑソスソスソスソスフとは擾ソスソスソスソス痰、ソス謔、ソスナゑソス
ソスTソスソスソスvソスソスソスナゑソスソスソスソスニゑソスソスソスフソスソスCソスソスソスtソスHソス[ソスソスソスソスソスソスソスソスソスソスヤゑソス
Form2ソスソスソスソスFrom2ソスニ擾ソスソスソスソスソスForm3ソスソストんだゑソスAソスソスソスフ逆ソスソスsソスソスソスCソスソスソス[ソスWソスナゑソスソスB
ソスソスソスソスソスtソスHソス[ソスソスソスソスヌ暦ソスソスソスソスソスeソスtソスHソス[ソスソスソスニ子ソスニなる複ソスソスソスフフソスHソス[ソスソスソスソス
ソス¥ソスソスソスoソスソスソスネゑソスソスソスソスlソスソスソストゑソスソスワゑソスソスソス
ソスuソスソスソスgソスソスソスソスソスソスソスソスソスソスソスtソスHソス[ソスソスソスソスソスツゑソスソスソス黷スソスソスソスヌゑソスソスソスソスフ費ソスソスソスv
ソスニゑソスソスソスソスネ単ソスネ擾ソスソスナつまづゑソスソスワゑソスソスソスソスB
FormソスソスQソスツ搾ソスソスソスソスForm1ソスソスeソスAForm2ソスソスqソスニゑソスソスソスソスLソスフようソスネのゑソス成
Form2ソスフイソスxソスソスソスgソスソスト趣ソスソスソスソスソスホゑソスソスワゑソスソスソスソスソスソスニゑソスソスソスソスソスソスソスソス
OnDestroyソスヘ費ソスソスソスソスソスソスネゑソスソスBソスiOverrideソスpソスHソスj
OnCloseソスヘ費ソスソスソスソスソスソス驍ェソスAソスソスソスフ趣ソスソス_ソスナはまゑソスForm2ソスヘ托ソスソスンゑソスソスソスフゑソス
ソスソスソスソスソスソスソスソスニ不ソス合ソスソスソスソスソスソスソスB
ソスソスソスLソスソスソス@ソスソスソスソスForm2ソスフ破ソスソスソスソスノ費ソスソスソスソスソスソスソスCソスxソスソスソスgソスソス
ソスソスソスツゑソスソスソスホ会ソスソスソスソスソスソスソスソスソスネゑソスナゑソスソスソスソスソス
---------------------------------------------------------
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private ソス骭セ }
FForm2 : TForm2; // ソスヌ会ソス
FReset: Boolean; // True:ソスネゑソスForm2ソスソスjソスソスソスソスソスト撰ソスソスソス
procedure OnSubFormClose(Sender: TObject; var Action: TCloseAction);
procedure OnSubFormDestroy(Sender: TObject);
public
{ Public ソス骭セ }
property Reset : Boolean read FReset write FReset;
end;
---------------------------------------------------------
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.ShowMainForm := False; // ソスソスソスCソスソスソスtソスHソス[ソスソスソスソスソス¥ソスソスソスノゑソスソスソス
FForm2 := TForm2.Create(Self);
FForm2.OnClose := OnSubFormClose;
FForm2.OnDestroy := OnSubFormDestroy;
FForm2.Show;
end;
---------------------------------------------------------
procedure TForm1.OnSubFormDestroy(Sender: TObject);
begin
if FReset then begin
FReset := False;
//FForm2.Free;
FForm2 := nil;
FForm2 := TForm2.Create(Self);
FForm2.OnClose := OnSubFormClose;
FForm2.OnDestroy := OnSubFormDestroy;
FForm2.Show;
end
else begin
Application.Terminate;
end;
end;
ソスソスソスuソスソスソスgソスソスソスソスソスソスソスソスソスソスソスtソスHソス[ソスソスソスソスソスツゑソスソスソス黷スソスソスソスヌゑソスソスソスソスフ費ソスソスソスv
ソスナゑソスソスソス
ソスソスForm2ソスフイソスxソスソスソスgソスソスト趣ソスソスソスソスソスホゑソスソスワゑソスソスソスソスソスソスニゑソスソスソスソスソスソスソスソス
ソスソスOnDestroyソスヘ費ソスソスソスソスソスソスネゑソスソスBソスiOverrideソスpソスHソスj
ソスソスOnCloseソスヘ費ソスソスソスソスソスソス驍ェソスAソスソスソスフ趣ソスソス_ソスナはまゑソスForm2ソスヘ托ソスソスンゑソスソスソスフゑソス
ソスソスソスソスソスソスソスソスソスソスニ不ソス合ソスソスソスソスソスソスソスB
Form2ソスソスCloseソスソスソスソスソスソスソスソスソスナはソスソスソスソスソスソスノ残ソスソスソスソスソスワまでゑソスソスB
ソスiCloseソスソスソスソスソスソスヤゑソスShowソスソスソスソスホゑソスソスフまま表ソスソスソスソスソスソスソスソスj
ソスソスソスCソスソスソスtソスHソス[ソスソスソスネ外ソスナはゑソスソスフようソスネ仕ソスlソスノなゑソスソストゑソスソスワゑソスソスB
ソスソスソスフゑソスソスソスOnDestroyソスヘ費ソスソスソスソスソスソスワゑソスソスソスB
ソスソスソスソスソスソスソスソスソスソス除ソスソスソスソスソスソスソスフでゑソスソスソスホ、Form2ソスソスOnCloseソスCソスxソスソスソスgソスソスRelease;ソスソストゑソスナゑソスソスソスソスソスソスソスソスB
ソスソスソスフ趣ソスソスuソスソスソスgソスソスソスソスソスソスソスソスソスソスソスtソスHソス[ソスソスソスソスソスツゑソスソスソス黷スソスソスソスヌゑソスソスソスソスフ費ソスソスソスvソスソス
Form2ソスソスOnDestroyソスナゑソスソスソスoソスナゑソスソスワゑソスソスソス
Form1ソスソスprotectedソスソス
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
ソスソスヌ会ソスソスソスソスソス
procedure TForm1.Notification(AComponent: TComponent;
Operation: TOperation);
begin
inherited;
if (Operation = opRemove) and (AComponent is TForm2) then
begin
Form2 := nil;
end;
end;
ソスフようソスネ包ソスソス@ソスソスソスソスソスワゑソスソスB
ソスソスソスフソスソス[ソス`ソスソスソスソスForm2ソスソスソスソスソスSソスノ破ソスソスソスソスソス黷スソスソスナ呼ばゑソスワゑソスソスB
ソスソスソスモ、ReleaseソスソスForm2ソスソスReleaseソスソストばなゑソスソスソスホゑソスソスソスソスワゑソスソスソスソスB
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Release; // = Form2.Release;
end;
ソスニ擾ソスソスソスソストて気ソステゑソスソスソス
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
ソスナゑソスソスソスソスソスソスソスソス
NotificationソスAソスソスソスソスソスソスソスソスソスホコソスソスソス|ソス[ソスlソスソスソスgソスソスソスソスニゑソス
ソスソスソスソスソスbソスノなゑソスソストゑソスソスソスソスソスソス¥ソスbソスhソスナゑソスソスソスソスヒ。
ソスTソスソスソスvソスソスソス動ゑソスソスソスソストみまゑソスソスソスソスソスソスAソスtソスHソス[ソスソスソスフ再撰ソスソスソスソスナエソスソスソス[ソスソスソスoソスワゑソスソスB
ソスソスソスソスソスソスソスソスソスニゑソスソスフサソスソスソスvソスソスソスナゑソスソスB
ResetソスvソスソスソスpソスeソスBソスソスTrueソスフとゑソスソスヘ、Form2ソスソスソスjソスソスソスソスソス黷スソスソス
ソスト度ソスソスソスソスソスソスsソスソスソスソスソスソスホ会ソスソスソスネのでゑソスソスソス
ソスヌゑソスソスソスNotificationソスCソスxソスソスソスgソスソスソスノは、ソスワゑソスForm2ソスソスソスソスソスンゑソスソストゑソスソスソス謔、ソスソス
ソスuForm2ソスヘゑソスソスナに托ソスソスンゑソスソスワゑソスソスv
ソスニ厄ソスソスOソスソスソスワゑソスソスcソスソスソストゑソスソスソスニゑソスソスソスソスGソスソスソス[ソスソスソスbソスZソス[ソスWソスソスソスoソスワゑソスソスB
ソスソスソスソスソスソスソスソスFormソスソスNameソス毎回書ゑソスソスソスソスソスソスソス謔、ソスネ仕ソスgソスンにゑソスソス驍アソスニゑソス
ソスソスソスソスヘでゑソスソスソスフでゑソスソスソス
Form2ソスソスソスjソスソスソスソスソスソストゑソスソスソスホ、ソスGソスソスソス[ソスヘ出ソスネゑソスソスヘゑソスソスネので気ソスノなゑソスワゑソスソスB
ソスソスソスソスソスソスForm2ソスソスCloseソスCソスxソスソスソスgソスソス Action := caFree;ソスソスReleaseソスソス
ソスソスソストゑソスソスワゑソスソスB
ソスソスソスソスソスソスソスソスソスソスソスソスソスソスmソスbソスソスソスソスンゑソスソスソスソスソスソスソスソスB
----------------------------------------------------------------
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.ShowMainForm := False;
FForm2 := TForm2.Create(Self);
FForm2.Show;
end;
procedure TForm1.Notification(AComponent: TComponent;
Operation: TOperation);
begin
inherited;
if (Operation = opRemove) then begin
if(AComponent is TForm2) then begin
FForm2 := nil;
if FReset then begin
FForm2 := nil;
FReset := False;
FForm2 := TForm2.Create(Self);
FForm2.Show;
end
else begin
Application.Terminate;
end;
end;
end;
end;
Notificationソスフ抵ソスソスソスForm2ソスソスト作成ソスソスソストはゑソスソスソスソスワゑソスソスソスB
ソスiソスワゑソスソスソスnソスソスソスソスソスcソスソスソストゑソスソス驍スソス゚)
ソスQソスlソスj
Form1ソスソス
inteface
ソスEソスEソスE
const
WM_DELAYEDEVENT = WM_APP+1;
type
TForm1 = class(TForm)
private
ソス@ソスEソスEソスE
procedure WmDelayedEvent(var Msg:TMessage); message WM_DELAYEDEVENT;
ソス@ソスEソスEソスE
protected
procedure Notification(AComponent: TComponent; Operation: TOperation); override; private
ソス@ソスEソスEソスE
end;
ソス@ソスEソスEソスE
implementation
ソス@ソスEソスEソスE
procedure TForm1.Notification(AComponent: TComponent;
Operation: TOperation);
begin
inherited;
if (Operation = opRemove) then
begin
if(AComponent is TForm2) then
begin
FForm2 := nil;
PostMessage(Handle, WM_DELAYEDEVENT, 1, 0);
end;
end;
end;
procedure TForm1.WmDelayedEvent(var Msg: TMessage);
begin
case Msg.WParam of
1:
if FReset then
begin
FForm2 := nil;
FReset := False;
FForm2 := TForm2.Create(Self);
FForm2.Show;
end
else
Application.Terminate;
end;
end;
ソスEソスEソスE
ソスフ様ソスノ趣ソスソスヤ搾ソスソスUソスソスソスソスdソス|ソスソスソストゑソスソスソスソスソスソスソスソスB
ソスレ難ソスソスソスソストゑソスソスト遅ソスソスソスネゑソスワゑソスソスソスソスB
ソスソスLソスソスソス@ソスナゑソスソスワゑソスソスソスソスソスソスワゑソスソスソスソスB
ソス¥ソスzソスソスソスソスRソス[ソスfソスBソスソスソスOソスハは托ソスソス゚でゑソスソスソスソスeソスtソスHソス[ソスソスソスソスソスソスソスフ趣ソスソスネのゑソス
ソスソスソスネゑソスソスナゑソスソスヒ。
ソスソスソスフ包ソスソス@ソスナゑソスソスソストみゑソスソスソスソスニ思ソスソスソスワゑソスソスB
ソスソスソス閧ェソスニゑソスソスソスソスソスソスソスソスワゑソスソスソスソスB