Igor Nikolaev aKa The Sprite ΡΠΎΠ²Π΅ΡΡΠ΅Ρ:
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅ΠΊΡΡ ΡΠ±ΠΈΡΠ°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π·Π°ΠΊΡΡΡΡ ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Ρ ΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΠ΅ΡΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΡ Π·Π°ΠΊΡΡΡΡ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΡΠΎΡΠΌΡ:
procedure TForm1.FormCreate(Sender: TObject);
var hMenuHandle:HMENU;
begin
hMenuHandle := GetSystemMenu(Handle, FALSE);
IF (hMenuHandle <> 0) THEN DeleteMenu(hMenuHandle, SC_CLOSE, MF_BYCOMMAND);
end;
ΠΠ΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΉ TrayIcon ΠΏΠΎΡΠ»Π΅ ΡΡΠ°ΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΡΠΆΠ½ΠΎ ΡΡΠΎΠ±Ρ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠ°Π·Ρ ΠΈΡΡΠ΅Π·Π°Π»Π° Ρ ΡΠΊΡΠ°Π½Π° Π³Π»Π°Π²Π½Π°Ρ ΡΠΎΡΠΌΠ° ΠΈ ΠΏΠΎΡΠ²Π»ΡΠ»Π°ΡΡ TrayIcon. Π ΠΠ°ΡΠΈΡ Β«Π‘ΠΎΠ²Π΅ΡΡ ΠΏΠΎ ΠΠ΅Π»ΡΡΠΈΒ» Π½Π° Π΄Π°Π½Π½ΡΠΉ Π²ΠΎΠΏΡΠΎΡ Ρ Π½Π°ΡΠ΅Π» Π΄Π²Π° ΡΠ΅ΡΠ΅Π½ΠΈΡ (ΡΠ°Π·Π΄Π΅Π» ΠΠ»Π°ΡΡΡ/TForm) ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ Π½ΠΈ ΠΎΠ΄Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΠΌΠΎΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ :-(. Π ΡΠ²ΡΠ·ΠΈ Ρ ΡΡΠΈΠΌ Π±ΡΠ»ΠΎ ΡΠ΅ΡΠ΅Π½ΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΠΏΠΎΠΈΡΠΊ, ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ:
ΠΠ° ΠΠ»Π°Π²Π½ΡΡ ΡΠΎΡΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ (TEdit ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ Π»ΡΠ±ΠΎΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠΊΡΡ), Π·Π°ΡΠ΅ΠΌ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Π°:
Visible:=True;
TabOrder:=0;
Π ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ OnEnter Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ (ΡΡΠΎΡ ΠΊΠΎΠ΄ Π²Π·ΡΠ» ΠΈΠ· Β«Π‘ΠΎΠ²Π΅ΡΠΎΠ² ΠΏΠΎ ΠΠ΅Π»ΡΡΠΈΒ»):
Application.Minimize;
ShowWindow(Application.Handle, SW_HIDE);
Button1.SetFocus; //Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠΎΠΊΡΡ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΠΎΡΠΌΡ (Ρ ΠΌΠ΅Π½Ρ Π±ΡΠ» Button1 )
Edit1.Visible:=False; //ΠΠ΅Π»Π°Π΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΎΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠΌ β Ρ.ΠΊ. ΠΎΠ½ Π±ΠΎΠ»ΡΡΠ΅ Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ΅Π½
ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠ°Π±ΠΎΡΡ:
ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠΎΡΠΌΠ° ΠΈ ΡΠΎΠΊΡΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ TabOrder:=0, ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΠΎΠΊΡΡΠ° Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° OnEnter Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΊΡΡΡΠΈΠ΅ ΡΠΎΡΠΌΡ.
ΠΠ»Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΡΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠ΄:
ShowWindow(Application.Handle, SW_RESTORE);
Application.Restore;
ΠΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ TrayIcon Π±ΡΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ TRxTrayIcon ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ RxLib ver.2.75 ΠΠ°Π½Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ΄ΠΈΠ½ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ β Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠ°Π½ΠΈΠ΅ ΡΠΎΡΠΌΡ ΠΏΡΠΈ Π΅Π΅ ΡΠ²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΠΈ.
-----------------------------------------------------------------
Π‘ ΡΠ²Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΠ°ΡΠ΅Π½ΠΊΠΎ ΠΠ½Π΄ΡΠ΅ΠΉ ΠΠ»Π°Π΄ΠΈΠΌΠΈΡΠΎΠ²ΠΈΡ (Bibigon)
Π³.ΠΡΡ Π°Π½Π³Π΅Π»ΡΡΠΊ, 2000.
ΠΠ°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΎΡΠΌΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ
ΠΠΎΡΠΈΡΠ°Π» Ρ ΡΡΡ Π²Π°ΡΠΈ 'Π‘ΠΎΠ²Π΅ΡΡ β¦β¦' ΠΈ ΡΠ΅ΡΠΈΠ» Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΡΠ²Π΅Ρ ΠΏΠΎ ΡΠ΅ΠΌΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΎΠ½Π° Π½Π° ΡΠΎΡΠΌΠ΅ ΡΠ°Π·Π΄Π΅Π»Π° ΠΊΠ»Π°ΡΡΡ\tform
Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ Π²Π°ΡΡ ΡΠΎΡΠΌΡ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΠΌΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½ΡΠΆΠ½ΠΎ
1. Π Π°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π½Π° ΡΠΎΡΠΌΠ΅ image
2. ΠΡΠΈΡΠ²ΠΎΠΈΡΡ Π΅Π³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Ρ visible Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ false
3. Π ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ ΡΠΎΠ±ΡΡΠΈΡ ΡΠΎΡΠΌΡ OnCreate ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ :
form1.brush.bitmap:=image1.picture.bitmap;
Π₯ΠΎΡΡ Π·Π°ΠΌΠ΅ΡΠΈΡΡ , ΡΡΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΡΠ²-Π²Π° ΡΠ²-Π²Π° color & style Π½Π΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½Ρ! Π ΡΠ°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΡΠΎΡΠΌΡ Π²Π°ΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠ΅Π΅ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠΎΠ²ΡΠ²Π°ΡΡΡΡ ΠΈ Π²Π°ΠΌ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠΈΠ΅ paint & resize.
Π‘ ΡΠ²Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Dmitry Morsin
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. (ΠΠ± ΡΡΠΎΠΌ Π² ΡΠΎΠ²Π΅ΡΠ°Ρ Π½Π΅ΠΌΠ½ΠΎΠΆΠΊΠΎ Π΅ΡΡΡ, Π½ΠΎ ΠΎΡΠ΅Π½Ρ Π½Π΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ)
ΠΠ°ΠΊ ΡΠΆΠ΅ ΠΎΡΠΌΠ΅ΡΠ°Π»ΠΎΡΡ Π² ΡΠΎΠ²Π΅ΡΠ΅ [000092] (Π΄Π° ΠΈ Π² Π₯Π΅Π»ΠΏΠ΅) Π² ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Π² Delphi ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ Π²Π΅ΡΡ Π΄Π΅Π»ΡΡΠΈΠΉΡΠΊΠΈΠΉ Π°ΡΡΠ΅Π½Π°Π». ΠΡΠ°Π²Π΄Π° ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ Π»ΠΈΡΡ ΠΏΠΎΠ΄ Windows. (ΠΡΡΠ°ΡΠΈ ΡΡΠΎΡ ΡΠΏΠΎΡΠΎΠ± ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π΄Π»Ρ ΠΌΠΎΠ΄Π΅ΡΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° ΠΠ°ΡΠΊΠ°Π»Π΅ ΠΏΠΎΠ΄ Windows).
ΠΡΠΎΡ ΠΊΠΎΠ΄ Π±ΡΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ (Π½Π΅Π²Π°ΠΆΠ½ΠΎ ΡΠ΅Π³ΠΎ) ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ°ΠΉΠ» Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌΠΈ. ΠΠ»Π°Π²Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π±ΡΠ»Π° Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠΎΠ½ΡΠΎΠ»Ρ (Π΅ΡΠ»ΠΈ Π·Π°ΠΏΡΡΠΊ Π±ΡΠ» ΠΈΠ· Windows) ΠΎΡΡΠ°Π²Π°Π»Π°ΡΡ Π²ΠΈΡΠ΅ΡΡ ΠΏΠΎΠ·Π°Π΄ΠΈ ΡΠΎΡΠΌΡ Π΄ΠΎ Π΅Ρ Π·Π°ΠΊΡΡΡΠΈΡ. ΠΡΠ΅Π΄Π° ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ, Π½ΠΎ Π½Π΅ ΠΏΡΠΈΡΡΠ½ΠΎ. ΠΡΠ»ΠΈ ΠΆΠ΅ Π·Π°ΠΏΡΡΠΊ ΠΈΠ· ΠΠΎΡΡΠΎΠ½Π° ΠΈΠ»ΠΈ Ρ.ΠΏ., ΡΠΎ Π²ΡΡ ΠΈΠ΄ΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ
Program MyProgram;
{$APPTYPE CONSOLE}
uses
Windows, Forms, Dialogs, SysUtils, StdCtrls, Controls; // ΠΈ (ΠΈΠ»ΠΈ) Ρ.ΠΏ.
β¦
var
β¦
SH,SW: integer;
MainForm: TForm; // Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½Π° ΡΠΎΡΠΌΠ°
Memo: TMemo;
// ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ Π»ΡΠ±ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
β¦
// Π·Π΄Π΅ΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Ρ.Π΅ Π²ΡΡ ΠΊΠ°ΠΊ Π² ΠΎΠ±ΡΡΠ½ΠΎΠΌ ΠΠ°ΡΠΊΠ°Π»Π΅
Begin
β¦ // Π·Π΄Π΅ΡΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΊΠΎΠ΄
{ Π° Π·Π΄Π΅ΡΡ, ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ ΡΠΎΡΠΌΡ, Π΅ΡΡΡ Π΄Π²Π° ΠΏΡΡΠΈ:}
{ ΡΠ°ΠΊ}
FreeConsole; // ΠΡΡΠ΅ΠΏΠΈΡΡΡΡ ΠΎΡ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, Ρ.Π΅ ΠΎΠ½Π° ΠΏΡΠΎΡΡΠΎ ΠΈΡΡΠ΅Π·Π½Π΅Ρ (Π² ΡΠ»ΡΡΠ°Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΈΠ· Windows) ΠΈ ΠΎΡΡΠ°Π½Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΡΠΌΠ°
{ ΠΈΠ»ΠΈ ΡΠ°ΠΊ}
// Handle:= GetForegroundWindow; // ΠΠΎΠ»ΡΡΠΈΡΡ Handle ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ
// ShowWindow(Handle, SW_HIDE); // Π‘ΠΏΡΡΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠΎΠ»Ρ
// Π° Π² ΠΊΠΎΠ½ΡΠ΅, ΠΏΠ΅ΡΠ΅Π΄ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ΠΌ
// ShowWindow(Handle, SW_SHOW); // ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΊΠΎΠ½ΡΠΎΠ»Ρ
{ Π΄Π»Ρ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΎΡΠΌΡ Π² ΡΠ΅Π½ΡΡ ΡΠΊΡΠ°Π½Π°}
SH:= Screen.Height;
SW:= Screen.Width;
MainForm:= TForm.Create(nil);
with MainForm do try
BorderStyle:= bsSizeable;
Height:= 390;
Width:= 390;
Left:= (SW - Width) div 2;
Top:= (SH - Height) div 2;
Caption:= 'ΠΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°';
// Π·Π΄Π΅ΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
Memo:= TMemo.Create(MainForm);
with Memo do begin
Parent:= MainForm;
Align:= alClient;
BorderStyle:= bsNone;
Font.Name:= 'Courier New Cyr';
Font.Size:= 9;
ScrollBars:= ssVertical;
Lines.LoadFromFile('MyProgram.txt');
end;
ShowModal;
finally
Free;
end;
{ ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΠ΄Π°ΡΠΈ (ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ)}
with CreateMessageDialog('Π’Π΅ΠΊΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ', mtInformation, [mbOk]) do try
Caption := 'ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ';
ShowModal;
finally
Free;
end;
// ΡΡΠΎ Π΄Π»Ρ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΡΠΈ, ΠΈΠ½Π°ΡΠ΅ ΠΎΠ½Π° ΡΠ°ΠΊ ΠΈ ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π²ΠΈΡΠ΅ΡΡ ΡΠ²ΡΡΠ½ΡΡΠΎΠΉ
// ShowWindow(Handle, SW_SHOW); // ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΊΠΎΠ½ΡΠΎΠ»Ρ
End.
Π‘ ΡΠ²Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΠΈΡ Π°ΠΈΠ» Π§ΡΠΌΠ°ΠΊ.
Π‘ΠΎΠ±ΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Delphi 1
β¦ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Delphi ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎ, Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΎΠΊΠ½Π° Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π΄ΡΡΠ³ΠΎΠΉ. ΠΠ±ΡΠ΅ΠΊΡ Application Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°! Application.Handle ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΊΠ½ΠΎΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΡΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠΠΎΠ³Π΄Π° Π²Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅ΡΠ΅ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²ΡΠ΅ ΡΠΎΡΠΌΡ ΠΏΡΠΎΡΡΠΎ ΠΏΡΡΡΡΡΡΡ (hidden). ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΌΠ΅ΡΠΎΠ΄Ρ Application Minimize ΠΈ Restore. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Ρ TApplication Π΅ΡΡΡ Π΄Π²Π° Π½Π΅Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠΎΠ±ΡΡΠΈΡ, OnMinimize ΠΈ OnRestore. ΠΠ½ΠΈ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² TForm Π½Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠΎΠ±ΡΡΠΈΠΉ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΡ ΠΏΡΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠ°Π½Π½ΠΎ. Π― Π΄ΡΠΌΠ°Ρ ΡΠ°ΠΊ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ SDI-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΡΠΆΠ½Ρ Π»ΠΈ ΠΌΠ½Π΅ ΡΠΎΡΠΌΡ Π² ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ?
Nomadic ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ:
ΠΠ°.
ΠΠ΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ Π²ΠΈΠ΄ΠΈΠΌΡ, Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄Π½Π°. Π§ΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π³Π»Π°Π²Π½ΡΡ ΡΠΎΡΠΌΡ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅
Application.ShowMainForm := False
Π² ΡΠ°ΠΉΠ»Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΡΠΈΠΌΠ΅Ρ:
begin
Application.ShowMainForm := False;
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΎΡΠΌΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΡΠΎΠΊΠΈ
Π Π΄Π°Π½Π½ΠΎΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π² DelΡhi ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΠΎΡΠΌΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΡΠΎΠΊΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉ ΠΈΠΌΡ ΡΠΈΠΏΠ°. ΠΠΎΠ΄ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΏΡΠΈΠ»Π°Π³Π°Π΅ΡΡΡ.
ΠΠ° ΠΊΠΎΠ³ΠΎ ΡΠ°ΡΡΠΈΡΠ°Π½ Π΄Π°Π½Π½ΡΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ?ΠΠ° Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°, ΠΈΠΌΠ΅ΡΡΠ΅Π³ΠΎ Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Delphi. ΠΠΌΠ΅Π΅Ρ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊ Π»ΡΠ±ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Delphi.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΎΡΠΌΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΡΠΎΠΊΠΈΠ§ΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΠΎΡΠΌΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΡΠΎΠΊΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉ ΠΈΠΌΡ ΡΠΈΠΏΠ°, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠΉ ΡΠΈΠΏ Π² Delphi. ΠΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ "RegisterClass". RegisterClass ΠΎΠΏΠΈΡΠ°Π½ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
procedure RegisterClass(AClass: TPersistentClass);
AClass β ΠΊΠ»Π°ΡΡ TPersistent. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ, Π² ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠΎΡΠΊΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡΡΡ ΠΎΡ TPersistent. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Delphi, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠΎΡΠΌΡ, ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ ΡΡΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅, ΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π±ΡΡΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ. ΠΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π½Π΅ ΠΏΡΠΎΠΉΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΊΠ»Π°ΡΡΡ Π½Π°ΡΠ»Π΅Π΄ΡΡΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΡ TObject.
ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠΈΠΏ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ ΡΡΡΠΎΠΊΡ Π² FindClass. Π€ΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΡΠΌΡ. ΠΠ΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΠΎΡΡΠ½ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
procedure TForm1.Button2Click(Sender: TObject);
var
b : TForm;
f : TFormClass;
begin
f := TFormClass(findClass('Tform2'));
b := f.create(self);
b.show;
end;
ΠΠ°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΈΠΏ TForm2, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ RegisterClass.
ΠΠ΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡΠ‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, Π·Π°ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ 4 ΡΠΎΡΠΌΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π² ΠΎΠ±ΡΠ΅ΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ 5. Π ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΡΠΎ Π½Π΅ Π²Π°ΠΆΠ½ΠΎ.