Π ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠΎΡΠΌΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΠ΅ ΠΏΠΎΠ»Π΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ. Π£Π΄Π°Π»ΠΈΡΠ΅ Π²ΡΠ΅ ΡΠΎΡΠΌΡ, ΠΊΡΠΎΠΌΠ΅ Π³Π»Π°Π²Π½ΠΎΠΉ, ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° AutoCreate. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄ Π² unit1, ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΡΠΌΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΡΠΈΠΏΠ° ΠΊΠ»Π°ΡΡΠ°, Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡ Π² ΠΏΠΎΠ»Π΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
unit Unit1;
interface
uses Unit2, Unit3, Unit4, Unit5, Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
RegisterClass(Tform2);
RegisterClass(Tform3);
RegisterClass(Tform4);
RegisterClass(Tform5);
end;
procedure TForm1.Button1Click(Sender: TObject);
var f : Tformclass;
begin
f := tformclass(findClass(edit1.text));
with f.create(self) do show;
end;
ΠΠΎΠΊΠ°Π· Π»ΠΎΠ³ΠΎΡΠΈΠΏΠ° ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ III
Π‘Π²ΠΎΠΈΠΌ ΠΎΠΏΡΡΠΎΠΌ Π΄Π΅Π»ΠΈΡΡΡ Nomadic :
A: Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ Π² X:\DELPHI\DEMOS\DB\MASTAPP\mastapp.dpr.
Π£Π΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ShowSplashWindow ΠΈΠ· rxLib.
ΠΠΎΠΊΠ°Π· Π»ΠΎΠ³ΠΎΡΠΈΠΏΠ° ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ IV
ΠΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π»ΠΎΠ³ΠΎΡΠΈΠΏ ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠΎΠ³ΠΎΡΠΈΠΏ (Π·Π°ΡΡΠ°Π²ΠΊΠ°) ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π°ΠΆΠ½ΠΎΠΉ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°Π½ΡΡΡ Π²ΡΠ΅ΠΌΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΡΠΎΠΎΠ±ΡΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅. ΠΠΎΠ³ΠΎΡΠΈΠΏ ΡΠ΄Π΅Π»Π°Π΅Ρ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π·Π°ΡΡΠ°Π²ΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ»ΠΈΡΠΈΡΡ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ Π΄ΡΡΠ³ΠΎΠ³ΠΎ, Π½ΠΎ ΠΈ ΠΎΡΠ»ΠΈΡΠΈΡΡ ΠΎΠ΄Π½Ρ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΡ Π΄ΡΡΠ³ΠΎΠΉ.
ΠΠΌΠ΅Π΅ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΈΠΏΠΎΠ² Π·Π°ΡΡΠ°Π²ΠΎΠΊ (Splash Screen). Π‘Π°ΠΌΡΠΉ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π½ΡΠΉ ΡΠΈΠΏ - ΠΏΠΎΠΊΠ°Π· Π»ΠΎΠ³ΠΎΡΠΈΠΏΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ±ΡΡΠ½ΠΎ ΡΠ°ΠΊΠΈΠ΅ ΡΠΊΡΠ°Π½Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΠΈΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π°Π²ΡΠΎΡΠ°, Π²Π΅ΡΡΠΈΡ, Π°Π²ΡΠΎΡΡΠΊΠΈΠ΅ ΠΏΡΠ°Π²Π° ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΈΠΊΠΎΠ½ΠΊΡ, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
Π’Π°ΠΊΠΆΠ΅, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡΠΎΡ ΡΠΊΡΠ°Π½ Π΄Π»Ρ ΠΏΠΎΠΊΠ°Π·Π° Π»ΠΈΠ½Π΅ΠΉΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠ° ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΡΠΈΠΌΠ΅ΡΠΎΠΌ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΡΠΊΡΠ°Π½Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ Ρ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ ΡΠΈΡΠ»Π° ΠΏΡΠΎΡΠ΅Π½ΡΠΎΠ² Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ , ΡΠ°ΠΉΠ»ΠΎΠ²Π°Ρ Π·Π°Π΄Π°ΡΠ°, ΠΈΠ»ΠΈ Π·Π°Π΄Π°ΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΈΡΠ΅Π». ΠΡΠΈ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠ°ΠΊΠΎΠ³ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³Π° ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π²Π΅ΠΆΠ»ΠΈΠ²ΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠ°Π΄Π΅ΡΡΡ, Π²Ρ ΠΎΡΠ΅Π½ΠΈΠ»ΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π·Π°ΡΡΠ°Π²ΠΎΠΊ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΡΡΡΡ Π·Π°ΡΡΠ°Π²ΠΊΡ ΡΠ²ΠΎΠΈΠΌΠΈ ΡΡΠΊΠ°ΠΌΠΈ.
1. ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠΎΡΠΌΡ Π² Π²Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ --> File | New Form.. ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ: ΠΠ°ΡΡΠ°Π²ΠΊΠ° (Splash Screen) ΠΏΠΎΡ ΠΎΠΆΠ° Π½Π° Π»ΡΠ±ΡΡ Π΄ΡΡΠ³ΡΡ ΡΠΎΡΠΌΡ.
2. ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΠΎΡΠΌΡ Name Π½Π° SplashScreen
3. ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΠΎΡΠΌΡ BorderStyle Π½Π° bsNone
4. ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΠΎΡΠΌΡ Position Π½Π° poScreenCenter
5. Π‘Π΄Π΅Π»Π°ΠΉΡΠ΅ Π·Π°ΡΡΠ°Π²ΠΊΡ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ ΠΏΡΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½Π° Π½Π΅Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. (ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Label, Panel, Image, Shape ΠΈ Bevel)
6. ΠΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠΉΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²
7. ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π² ΠΌΠ΅Π½Ρ Delphi IDE Options | Project
8. Π£Π±Π΅ΡΠΈΡΠ΅ SplashScreen-ΡΠΎΡΠΌΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° Auto-create-ΡΠΏΠΈΡΠΊΠ° (ΡΠΏΠΈΡΠΊΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΡ ΡΠΎΡΠΌ)
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ: ΠΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π·Π°ΡΡΠ°Π²ΠΊΠΈ
9. ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ TSplashScreen, Π² ΡΠΏΠΈΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π³Π»Π°Π²Π½ΠΎΠΉ ΡΠΎΡΠΌΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΈΠΌΠ΅Ρ:
unit Unit1;
interface
uses SysUtils, WinTypes, WinProcs, Messages, Classes,Graphics, Controls, Forms, Dialogs, StdCtrls, unit2; <β ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ ΡΡΠ΄Π°
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ: Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ TSplashScreen ΠΎΠ±ΡΡΠ²Π»Π΅Π½ Π² Unit2
10. ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π² ΠΌΠ΅Π½Ρ Delphi IDE View | Project Source
11. ΠΡΡΠ°Π²ΡΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ begin ΠΈ ΠΏΠ΅ΡΠ΅Π΄ Π»ΡΠ±ΡΠΌ Application.Create() ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
SplashScreen := TSplashScreen.Create(Application);
SplashScreen.Show;
SplashScreen.Refresh;
12. ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π³Π»Π°Π²Π½ΠΎΠΉ ΡΠΎΡΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΈ Π½Π°ΡΡΡΠΏΠ»Π΅Π½ΠΈΠΈ ΡΠΎΠ±ΡΡΠΈΡ OnShow. ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
SplashScreen.Free;
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ: Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π·Π°ΡΡΠ°Π²ΠΊΠΈ Ρ Π»ΠΈΠ½Π΅ΠΉΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠ° Π½ΠΈΡΡΡΡ Π½Π΅ ΡΠ»ΠΎΠΆΠ½Π΅Π΅, ΡΠ΅ΠΌ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π²ΠΎΠ²ΡΠ΅ΠΌΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ Π΅Π΅ Π½Π° ΡΠΊΡΠ°Π½: ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π°ΡΠ½Π΅ΡΡΡ, ΠΈ ΡΠ±ΠΈΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡΡ. Π Π°Π·Π»ΠΈΡΠΈΠ΅ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΎΡΡΡΠ΅ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΡΠ²ΡΠ·ΠΈ (ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°) ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ ΠΈ Π·Π°ΡΡΠ°Π²ΠΊΠΎΠΉ Π΄Π»Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π»ΠΈΠ½Π΅ΠΉΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠ°.
13. ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, Π΅ΡΠ»ΠΈ ΡΠΊΠΎΡΠΎΡΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½Π°, ΡΠΎ Π·Π°ΡΡΠ°Π²ΠΊΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈ Π½Π΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ ΡΠ΅Ρ Π½ΠΈΠΊΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π·Π°ΡΡΠ°Π²ΠΊΠΈ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ β ΡΠΎΠ»ΡΠΊΠΎ Π±ΡΠ΄ΡΡΠ΅ ΠΎΡΠΌΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅ΠΉ ΠΏΡΠΈ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ.
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π½Π° ΡΡΠ°ΠΏΠ΅ #11:
for x:= 1 to 10000000 do begin
x:=x;
end;
{PROJECT1.DPR}
program Project1;
uses Forms, Unit1 in 'UNIT1.PAS' {Form1}, Unit2 in 'UNIT2.PAS' {SplashScreen};
{$R *.RES}
var x: longint;
begin
SplashScreen:= TSplashScreen.Create(Application);
SplashScreen.Show;SplashScreen.Refresh;
for x:= 1 to 10000000 do begin
x:=x;
x:=x;
end;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
{UNIT1.PAS}
unit Unit1;
interface
uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, unit2;
type TForm1 = class(TForm)
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormShow(Sender: TObject);
begin
splashscreen.free;
end;
end.
{UNIT2.PAS}
unit Unit2;
interface
uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
type TSplashScreen = class(TForm)
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Shape1: TShape;
Shape2: TShape;
Shape3: TShape;
private
{ Private declarations }
public
{ Public declarations }
end;
var SplashScreen: TSplashScreen;
implementation
{$R *.DFM}
end.
ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π·Π°ΠΊΡΡΡΡ ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠΎΡΠΌΡ? ΠΠΎΡΠ΅ΠΌΡ ΠΌΠΎΡ MDI Child ΡΠΎΡΠΌΠ° ΠΏΡΠΈ Π·Π°ΠΊΡΡΠ²Π°Π½ΠΈΠΈ ΠΏΡΠΎΡΡΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ?
Π‘Π²ΠΎΠΈΠΌ ΠΎΠΏΡΡΠΎΠΌ Π΄Π΅Π»ΠΈΡΡΡ Nomadic:
A: ΠΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΠΉΡΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅ OnClose Π΄Π»Ρ ΡΠΎΡΠΌΡ ΠΈ Π²ΡΡΡΠ°Π²Π»ΡΠΉΡΠ΅ Π² Π½Π΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Action Π² caFree. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ MDI Child ΡΠΎΡΠΌ caMinimize. ΠΡΡΠ°ΡΠΈ, Π΅ΡΠ»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Action := caNone, ΡΠΎ ΡΠΎΡΠΌΡ Π½Π΅Π»ΡΠ·Ρ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΊΡΡΡΡ.
ΠΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΎΡΠΌΡ
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π²Π°ΡΠ΅ΠΉ ΡΠΎΡΠΌΡ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΡ MinMax. (ΠΡΠ»ΠΈ Π΄Π»Ρ ΡΡΠΈΡ ΡΠ΅Π»Π΅ΠΉ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ resize, ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π½ΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π½Π΅ ΡΠ°ΠΊ Ρ ΠΎΡΠΎΡΠΎ.)
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π§ΡΠΎΠ±Ρ ΡΠΎΠ²ΡΠ΅ΠΌ Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΠΎΡΠΌΡ, Π·Π°Π΄Π°ΠΉΡΠ΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π΅Π΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ wm_GetMinMaxInfo:
unit MinMax;
interface
uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs;
type TForm1 = class(TForm)
private
{ Private declarations }
procedure WMGetMinMaxInfo(var MSG: Tmessage); message WM_GetMinMaxInfo;
public
{ Public declarations }
end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.WMGetMinMaxInfo(var MSG: Tmessage);
Begin
inherited;
with PMinMaxInfo(MSG.lparam)^ do begin
with ptMinTrackSize do begin
X := 300;
Y := 150;
end;
with ptMaxTrackSize do begin
X := 350;
Y := 250;
end;
end;