Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ ΠΏΠΎ Delphi. ВСрсия 1.4.3 ΠΎΡ‚ 1.1.2001Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 95

Автор Π’Π°Π»Π΅Π½Ρ‚ΠΈΠ½ ΠžΠ·Π΅Ρ€ΠΎΠ²

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. Π’ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ элСмСнтами управлСния, для Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° это Π½Π΅ Π²Π°ΠΆΠ½ΠΎ.