ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² Builder C++
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ Π²ΠΊΠ»Π°Π΄ΠΊΡ Component ΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ New Component. Π ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ (Ancestor type) TCustomControl, Π²Π²ΠΎΠ΄ΠΈΠΌ ΠΈΠΌΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ° (Class Name) TOsnova, Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Π²ΠΊΠ»Π°Π΄ΠΊΡ ΠΏΠ°Π»ΠΈΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° (Palette page) Samples, ΠΈ ΠΏΡΡΡ, Π³Π΄Π΅ Π±ΡΠ΄ΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡ ΡΠ°ΠΉΠ»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. ΠΠΎΡΠ»Π΅ ΡΠ΅Π»ΡΠΊΠ° Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΠΠ C… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² Builder C++ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
- Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
- ΠΠ°Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΊΡΡΡΠΎΠ²ΡΡ ΡΠ°Π±ΠΎΡΡ
- ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
- 1 Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
- 2 ΠΠ°Π΄Π°Π½ΠΈΠ΅ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ
- 3 ΠΠ°Π΄Π°Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²
- 4 ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°
- 5 ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° CreateWnd ()
- 6 ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° Paint()
- 7 ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° WndProc (TMessage& Message)
- 8 ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° CanResize (int &NewWidth, int &NewHeight)
- 9 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΎΠ±ΡΡΠΈΠΉ
- 10 Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
- 11 Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
- 12 ΠΠ½ΡΡΠ°Π»Π»ΡΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
- 13 ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π³ΠΎΡΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
- Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ
- ΠΠ°Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΊΡΡΡΠΎΠ²ΡΡ ΡΠ°Π±ΠΎΡΡ
- Π Π°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΡΠΎΡΡΠΎΡΡΡΡ ΠΈΠ· Π΄Π²ΡΡ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΠ΅ΠΉ, ΠΎΠ΄Π½Π° ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π΄Π²ΠΈΠΆΠ΅ΡΡΡ ΠΏΠΎ ΠΏΠ΅ΡΠΈΠΌΠ΅ΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ. Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ ΠΈ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°.
- ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
C++ Builder ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΠΏΠ°Π½Π΅Π»Ρ ΠΈ ΠΏΠ°Π»ΠΈΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠΎΠ³ΠΎ, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ C++ Builder ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΠΎΠΊΠ½ΠΎ ΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΎΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΡΠΎΡΠΌΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠ΄ ΠΎΠΊΠ½ΠΎΠΌ ΡΠΎΡΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΎΠΊΠ½ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΠΊΠΎΠ΄Π°.
Π€ΠΎΡΠΌΡ ΡΠ²Π»ΡΡΡΡΡ ΠΎΡΠ½ΠΎΠ²ΠΎΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ C++ Builder. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π² ΠΎΠΊΠ½ΠΎ ΡΠΎΡΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² C++ Builder, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ C++ Builder ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π° ΠΏΠ°Π»ΠΈΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ½ΠΎΡΠ°. ΠΠ°ΠΆΠ½Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ C++ Builder ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΏΠ°Π»ΠΈΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΏΠ°Π»ΠΈΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠ°Π·Π΄Π΅Π»ΡΡΡΡΡ Π½Π° Π²ΠΈΠ΄ΠΈΠΌΡΠ΅ (Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠ΅) ΠΈ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠ΅ (Π½Π΅Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠ΅). ΠΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΏΠΎΠ»Ρ. ΠΠ΅Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ°ΠΊ ΠΏΠΈΠΊΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΡΠΎΡΠΌΠ΅. ΠΠ½ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²ΠΈΠ΄Π½Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π½ΠΎ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ, Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΈ Windows ΠΈ Π΄Ρ.)
ΠΠ»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π² ΡΠΎΡΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΌΡΡΡΡ Π½ΡΠΆΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π² ΠΏΠ°Π»ΠΈΡΡΠ΅ ΠΈ ΡΠ΅Π»ΠΊΠ½ΡΡΡ Π»Π΅Π²ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠ΅ΠΉ ΠΌΡΡΠΈ Π² Π½ΡΠΆΠ½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠΎΡΠΌΡ. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΠΎΡΠ²ΠΈΡΡΡ Π½Π° ΡΠΎΡΠΌΠ΅, ΠΈ Π΄Π°Π»Π΅Π΅ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ, ΠΌΠ΅Π½ΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ.
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ C++ Builder ΠΈΠΌΠ΅Π΅Ρ ΡΡΠΈ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ: ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΡΠΎΠ±ΡΡΠΈΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ.
ΠΡΠ»ΠΈ Π²ΡΠ±ΡΠ°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈΠ· ΠΏΠ°Π»ΠΈΡΡΡ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅Π³ΠΎ ΠΊ ΡΠΎΡΠΌΠ΅, ΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈ ΡΠΎΠ±ΡΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Ρ ΡΡΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ. Π Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΎΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈΠΌΠ΅Π΅ΡΡΡ Π²ΡΠΏΠ°Π΄Π°ΡΡΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ Π²ΡΠ±ΠΈΡΠ°ΡΡ Π½ΡΠΆΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ· ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ Π½Π° ΡΠΎΡΠΌΠ΅.
1 Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
ΠΡΠΎΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ TOsnova ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΡΠ΅ΡΠ΅Π· Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΡΠ°ΠΏΠΎΠ²:
1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ.
2. ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΎΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
3. ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΡΠΆΠ½ΡΡ ΡΠ²ΠΎΠΉΡΡΠ², ΡΠΎΠ±ΡΡΠΈΠΉ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².
4. Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² C++Builder.
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΠ°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ. ΠΠΎ ΡΠ½Π°ΡΠ°Π»Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅ΡΠΈΡΡ, ΠΎΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠΎΠΆΠ΄ΡΠ½ Π½Π°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ.
ΠΠ½Π΅ Π²ΠΈΠ΄ΠΈΡΡΡ, ΡΡΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΠΎΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡ TCustomControl. TCustomControl Π±ΡΠ» Π²ΡΠ±ΡΠ°Π½ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π½Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° Handle (Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΎΠΊΠ½Π° Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΡΠ°ΠΉΠΌΠ΅ΡΠ°) ΠΈ Canvas (Ρ ΠΎΠ»ΡΡ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠ°). TCustomControl ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ±Π° ΡΠ²ΠΎΠΉΡΡΠ²Π°, Π·Π° ΡΡΠ΅Ρ ΡΠ΅Π³ΠΎ ΠΎΠ½, ΠΏΠΎ ΡΡΡΠΈ, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
Π’Π°ΠΊΠΆΠ΅ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ»Π°ΡΡ TMarshrut Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ°ΡΡΡΡΡΠ° Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΡΠ°ΡΠΈΠΊΠ° ΠΈ ΠΊΠ»Π°ΡΡ Π’Shar, ΡΠΈΡΡΡΡΠΈΠΉ ΡΠ°ΠΌ ΡΠ°ΡΠΈΠΊ. ΠΠ±Π° ΡΡΠΈΡ ΠΊΠ»Π°ΡΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ Π»ΠΈΡΡ ΡΠΌΠ΅ΡΡ ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π±Ρ, ΠΏΠΎΡΡΠΎΠΌΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ TCustomGraphic.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ Π²ΠΊΠ»Π°Π΄ΠΊΡ Component ΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ New Component. Π ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ (Ancestor type) TCustomControl, Π²Π²ΠΎΠ΄ΠΈΠΌ ΠΈΠΌΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ° (Class Name) TOsnova, Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Π²ΠΊΠ»Π°Π΄ΠΊΡ ΠΏΠ°Π»ΠΈΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° (Palette page) Samples, ΠΈ ΠΏΡΡΡ, Π³Π΄Π΅ Π±ΡΠ΄ΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡ ΡΠ°ΠΉΠ»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. ΠΠΎΡΠ»Π΅ ΡΠ΅Π»ΡΠΊΠ° Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΠΠ C++ Builder ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π»Ρ Π½Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡ Π΅Π³ΠΎ Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅.
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠΎΠ·Π΄Π°ΡΠΌ Π΄Π²Π° ΠΊΠ»Π°ΡΡΠ° TMarshrut ΠΈ Π’Shar. ΠΠ»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ hΡΠ°ΠΉΠ»Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ #include.
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π½Π°ΠΌΠΈ ΠΊΠ»Π°ΡΡΡ. TMarshrut ΠΈ Π’Shar Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΌΠ΅ΡΡ ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π±Ρ, ΠΏΠΎΡΡΠΎΠΌΡ Π² Π½ΠΈΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Paint ():
virtual void __fastcall Paint ();
ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Paint () ΡΡΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ ΠΊΠΎΠ΄ ΠΈΡ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΌΠ΅ΡΠΎΠ΄Π° Paint () ΠΊΠ»Π°ΡΡΠ° Π’Shar:
void __fastcall TShar: Paint ()
{
Canvas->Brush->Color=clGreen;
Shar->Width=(D-d)/2;
Shar->Height=(D-d)/2;
Canvas->Ellipse (0,0,Shar->Width, Shar->Height);
}
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΌΠ΅ΡΠΎΠ΄Π° Paint () ΠΊΠ»Π°ΡΡΠ° TMarshrut
//—————————————————————————————————————;
// ΡΠΈΡΡΠ΅ΠΌ Π΄Π²Π΅ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ°
void __fastcall TMarshrut: Paint ()
{
Canvas->Brush->Color=clRed;
Marshrut->Ris_Marshrut (D/2);
Canvas->Brush->Color=clBtnFace;
Marshrut->Ris_Marshrut (d/2);
}
//—————————————————————————————————————;
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ Ris_Marshrut (int R) (ΠΏΡΠΎΡΠΎΡΠΈΠΏ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ΅ΠΊΡΠΈΠΈ protected ΠΊΠ»Π°ΡΡΠ° Π’Marshrut):
//—————————————————————————————————————;
//ΡΠΈΡΡΠ΅ΠΌ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΡ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π΄ΠΈΡΡΠ°
void __fastcall TMarshrut: Ris_Marshrut (int R)
{
Marshrut->Canvas->Ellipse (Marshrut->Width/2-R, Marshrut->Height/2-R,
Marshrut->Width/2+R, Marshrut->Height/2+R);
}
//—————————————————————————————————————;
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ (ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΈ Ρ. Π΄.) Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΡΡ, ΠΌΠ°ΡΡΡΡΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Paint () ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Ris_Marshrut (int R). Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π»ΡΡΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π²Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠ»Π°ΡΡΠ° Π’Marshrut.
2 ΠΠ°Π΄Π°Π½ΠΈΠ΅ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ
ΠΠ°ΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΡΡΡ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΠΊΠ»Π°ΡΡΠ° TOsnova.
__fastcall TOsnova: TOsnova (TComponent* Owner)
: TCustomControl (Owner)
{
Width=200;//Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΡΠΈΡΠΈΠ½Π°
Height=200;//Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ Π²ΡΡΠΎΡΠ°
D=this->Width/5*4;//Π΄ΠΈΠ°ΠΌΠ΅ΡΡ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΠΈ
d=this->Width/5*3; //Π΄ΠΈΠ°ΠΌΠ΅ΡΡ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΎΠΉ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΠΈ
a=0;//ΡΠ³ΠΎΠ» ΠΏΠΎΠ²ΠΎΡΠΎΡΠ°
N=true;//Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π°Ρ ΠΎΠ΄Π° Π² ΡΠΈΠΊΠ»
FSkorosty=20;//ΡΠΊΠΎΡΠΎΡΡΡ Π²ΡΠ°ΡΠ΅Π½ΠΈΡ
}
ΠΠ°ΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΊΠ»Π°ΡΡΠΎΠ² TMarshrut ΠΈ Π’Shar Π·Π°Π΄Π°ΡΡΡΡ ΠΏΡΠΈ ΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π² ΡΡΠ½ΠΊΡΠΈΠΈ void __fastcall CreateWnd ().
3 ΠΠ°Π΄Π°Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠΊΠΎΡΠΎΡΡΡ Π²ΡΠ°ΡΠ΅Π½ΠΈΡ ΡΠ°ΡΠΈΠΊΠ°, ΠΏΠΎΡΡΠΎΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ FSkorosty. Π’ΠΈΠΏ ΡΡΠΎΠ³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° int. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°ΡΠΈΠΊΠ° Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΠΏΠΎ ΡΠΈΠ³Π½Π°Π»Ρ ΡΠ°ΠΉΠΌΠ΅ΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ, ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Ρ ΠΈΠ»ΠΈ ΡΠΌΠ΅Π½ΡΡΠ°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π°, ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΡ ΡΠΊΠΎΡΠΎΡΡΡ. Π§Π»Π΅Π½ Π΄Π°Π½Π½ΡΡ FSkorosty ΡΠ°Π·ΠΌΠ΅ΡΡΠ½ Π² ΡΠ΅ΠΊΡΠΈΠΈ private. Π’Π΅ΠΏΠ΅ΡΡ Π½Π°Π΄ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΌΠ΅ΡΠΎΠ΄ ΡΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ (Π² ΡΠ΅ΠΊΡΠΈΠΈ __published)
__property int Skorosty = { read=FSkorosty, write=SetSkorosty },
ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡΡ Π² ΠΎΠΊΠ½Π΅ ΠΠ½ΡΠΏΠ΅ΠΊΡΠΎΡΠ° ΠΠ±ΡΠ΅ΠΊΡΠΎΠ².
Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ Skorosty ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΡΠΌΠΎΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠΎΠ»Ρ ΡΡΠ΅Π½ΠΈΡ, Π° Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ SetSkorosty
//—————————————————————————————————————;
void __fastcall TOsnova: SetSkorosty (int Skorosty)
{
FSkorosty=Skorosty;
if (FSkorosty<5) FSkorosty=5; // Π΅ΡΠ»ΠΈ FSkorosty=0, ΡΠ°ΡΠΈΠΊ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ
SetTimer (Handle, 1, FSkorosty, 0);
}
//—————————————————————————————————————;
4 ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°
ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ Π² ΡΠ΅ΠΊΡΠΈΠΈ protected.
5 ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° CreateWnd ().
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² TMarshrut ΠΈ Π’Shar. Π₯ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΠΊΠ»Π°ΡΡΠ° TOsnova, Π½ΠΎ ΠΏΠΎΠΏΡΡΠΊΠ° Π·Π°ΠΏΡΡΠΊΠ° ΠΎΠΊΠΎΠ½ΡΠΈΡΡΡ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ:
Control has no parent window (Π£ΠΏΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°). Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ Π² ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° CreateWnd ().
//—————————————————————————————————————;
void __fastcall TOsnova: CreateWnd ()
{
if (ComponentState.Contains (csDestroying))
return; //Π΅ΡΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΡΠ°Π·ΡΡΡΠ°Π΅ΡΡΡ — Π²ΡΡ ΠΎΠ΄
TCustomControl:CreateWnd (); //Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄
Marshrut=new TMarshrut (this); //ΡΠΎΠ·Π΄Π°ΡΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ°
Marshrut->Parent=this;
Marshrut->Width=this->Width;
Marshrut->Height=this->Height;
Shar=new TShar (this); //ΡΠΎΠ·Π΄Π°ΡΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ°
Shar->Parent=this;
Shar->Width=(D-d)/2;
Shar->Height=(D-d)/2;
Shar->Left=(this->Width-D)/2+D-Shar->Width;
Shar->Top=this->Height/2-Shar->Height/2;
if (ComponentState.Contains (csDesigning))
return; //Π΅ΡΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ — Π²ΡΡ ΠΎΠ΄
else; //ΠΈΠ½Π°ΡΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΡΠ°ΠΉΠΌΠ΅Ρ
SetTimer (Handle, 1, FSkorosty, 0);
}
//—————————————————————————————————————;
Π‘Π½Π°ΡΠ°Π»Π° Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ CreateWnd () Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π²Π΅ΡΠ½ΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΎΠΊΠ½Π°. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ Π½Π°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ SetTimer () ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠΌΠ΅Ρ.
6 ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° Paint ()
//—————————————————————————————————————;
void __fastcall TOsnova: Paint ()
{
this->Canvas->Brush->Color=clSkyBlue;
this->Canvas->Font->Size=this->Height/20;
this->Canvas->TextOutA (this->Width/4,3," ΠΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°");
}
//—————————————————————————————————————;
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° Paint () Π²ΡΠ²Π΅Π΄Π΅ΠΌ ΡΠ΅ΠΊΡΡ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ.
7 ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° WndProc (TMessage& Message)
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΈΠΌΠ΅ΡΡΠΈΠΉ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΎΠΊΠ½Π°, ΠΈΠΌΠ΅Π΅Ρ ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ WndProc (). ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Windows ΠΈΠ»ΠΈ VCL ΠΏΠΎΡΡΠ»Π°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΊΠ½Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°.
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π½Π°ΡΠ°ΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° WndProc (), ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠΌΡΡ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅. Π’Π°ΠΉΠΌΠ΅Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ CreateWnd ():
SetTimer (Handle, 1, FSkorosty, 0). Π ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΎΠΊΠ½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, 1 ΠΊΠ°ΠΊ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ°, FSkorosty ΠΊΠ°ΠΊ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΡΠ°ΠΉΠΌΠ΅ΡΠ°) ΠΈ 0 Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΡΠ°ΠΉΠΌΠ΅ΡΠ°. Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ°Π΅ΡΡΡ, ΡΡΠΎ Windows ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΡΡΠ»Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_TIMER ΠΌΠΎΠ΅ΠΉ ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ ΠΎΠΊΠ½Π°.
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΠ° ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π² Π΄Π΅ΡΡΡΡΠΊΡΠΎΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ:
KillTimer (Handle, 1) ;
ΠΠ½ΡΡΡΠΈ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
WM_TIMER:
//—————————————————————————————————————;
void __fastcall TOsnova: WndProc (TMessage& Message)
{
TCustomControl:WndProc (Message); //Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄
if (Message.Msg == WM_TIMER)
{
//ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈΡΡ Π»ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡ
if ((N==true)&&(this->Width≠NewWidth)&&(this->Height≠NewHeight))
{
this->Width=NewWidth;
this->Height=NewHeight;
D=this->Width/5*4;
d=this->Width/5*3;
Marshrut->Width=this->Width;
Marshrut->Height=this->Height
Shar->Width=(D-d)/2;
Shar->Height=(D-d)/2;
Shar->Left=(this->Width-D)/2+D-Shar->Width;
Shar->Top=this->Height/2-Shar->Height/2;
this->Canvas->Font->Size=this->Height/20;
this->Canvas->TextOutA (this->Width/4,3," ΠΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°");
this->Invalidate ();//ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
N=false;//Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠ΄Π° Π½Π΅ Π·Π°Ρ ΠΎΠ΄ΠΈΠΌ
}
a+=0.2;//ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ³Π»Π° ΠΏΠΎΠ²ΠΎΡΠΎΡΠ° (ΠΏΡΠΎΡΠ΅ΡΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ)
Shar->Left=(Marshrut->Width-(D-(D-d)/2))/2+(D-(D-d)/2)/2+(D-(D-d)/2)/2*cos (a);
Shar->Width/2;
Shar->Top=(Marshrut->Height-(D-(D-d)/2))/2+(D-(D-d)/2)/2-(D-(D-d)/2)/2*sin (a);
Shar->Height/2;
}
}
//—————————————————————————————————————;
Π‘Π½Π°ΡΠ°Π»Π° Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° TCustomControl: WndProc (Message), Π·Π°ΡΠ΅ΠΌ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΡ (Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ), Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Invalidate () Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠ°ΡΠΈΠΊΡ.
8 ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° CanResize (int &NewWidth, int &NewHeight).
ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡ Π²ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΡΡΠΎΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°.
//—————————————————————————————————————;
bool __fastcall TOsnova: CanResize (int &NewWidth, int &NewHeight)
{ //ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌ
if (ComponentState.Contains (csDesigning))
{
D=this->Width/5*4; // Π΄ΠΈΠ°ΠΌΠ΅ΡΡΡ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΠ΅ΠΉ
d=this->Width/5*3;
Marshrut->Width=this->Width; //ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΠΊΠ·. ΠΊΠ»Π°ΡΡΠ° Π’Marshrut
Marshrut->Height=this->Height;
Shar->Width=(D-d)/2; //ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΠΊΠ·. ΠΊΠ»Π°ΡΡΠ° Π’Shar
Shar->Height=(D-d)/2;
Shar->Left=(this->Width-D)/2+D-Shar->Width;
Shar->Top=this->Height/2-Shar->Height/2;
this->Canvas->Font->Size=this->Height/20; //ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΠΈΡΡΠ°
this->Canvas->TextOutA (this->Width/4,3," ΠΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°"); //ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ
this->Invalidate (); //ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
}
if (NewWidth≠NewHeight) NewWidth=NewHeight;
return (NewWidth, NewHeight);
}
//—————————————————————————————————————;
ΠΠ΅ΡΠΎΠ΄ CanResize () Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΈΡΠΈΠ½Ρ (NewWidth) ΠΈ Π²ΡΡΠΎΡΡ (NewHeight), ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΡΠ΅ΠΌ Π±ΡΠ΄ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ WndProc (TMessage& Message), Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΡΠΈΡΠΎΠ²Π°Π»Π°ΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Ρ Π½ΠΎΠ²ΡΠΌΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌΠΈ.
9 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΎΠ±ΡΡΠΈΠΉ
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠ°Ρ ΡΠΎΡΠΌΠ° ΡΠΎΠ±ΡΡΠΈΡ — ΡΡΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅, ΠΏΡΠΎΡΡΠΎ ΡΠ²Π΅Π΄ΠΎΠΌΠ»ΡΡΡΠ΅Π΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠ±ΡΡΠΈΠ΅ OnClick, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ — Sender:
void fastcall TForml: FormClick (TObject *Sender).
ΠΡΠΎΡ ΡΠΈΠΏ ΡΠΎΠ±ΡΡΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π² VCL ΠΊΠ°ΠΊ TNotifyEvent.
ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠΎΠ±ΡΡΠΈΡ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΡΠΎΠ΅ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΈΠΏΠΎΠΌ ΡΠΎΠ±ΡΡΠΈΡ TNotifyEvent. OnMyClick, ΡΠΎΠ±ΡΡΠΈΠ΅ TOsnova — ΠΏΡΠΎΡΡΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ. ΠΠ½ΠΎ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
__property TNotifyEvent OnMyClick = {read=FOnMyClick, write=FOnMyClick};
ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΡΡΠΎΠ±Ρ ΡΠΎΠΎΠ±ΡΠΈΡΡ Π΅ΠΉ ΠΎ ΡΠ²ΠΎΠ΅ΠΌ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ. Π’Π°ΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠ±ΡΡΠ²Π»ΡΡΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ (ΡΡΠΎΠ±Ρ ΠΊΠ»Π°ΡΡΡ-Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠΈ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊ Π½ΠΈΠΌ Π΄ΠΎΡΡΡΠΏ) ΠΈ Π² Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅.
ΠΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄, ΡΠΎΠΎΠ±ΡΠ°ΡΡΠΈΠΉ ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΡΠΎΠ±ΡΡΠΈΡ OnMyClick, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ DoOnMyClick ():
//—————————————————————————————————————;
void __fastcall TOsnova: DoOnMyClick ()
{
if (FOnMyClick)
FOnMyClick (this);
}
//—————————————————————————————————————;
Π‘Π½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ, Π±ΡΠ» Π»ΠΈ ΡΠΎΠ±ΡΡΠΈΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ. ΠΡΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ Π±ΡΠ» Π½Π°Π·Π½Π°ΡΠ΅Π½, ΡΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Π² ΠΏΠΎΠ»Π΅ FOnMyClick, ΠΊΡΠ΄Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ (this). ΠΡΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΎ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Events Π² ΠΎΠΊΠ½Π΅ ΠΠ½ΡΠΏΠ΅ΠΊΡΠΎΡΠ° ΠΠ±ΡΠ΅ΠΊΡΠΎΠ².
ΠΡΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅ Builder ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
//—————————————————————————————————————;
void __fastcall TForm1: Osnova1MyClick (TObject *Sender)
{
//ΠΊΠΎΠ΄ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΠΎΠ±ΡΡΠΈΡ
}
//—————————————————————————————————————;
10 Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
ΠΠ»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π½Π°ΡΠ½ΡΠΌ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ (FileNewApplication).
ΠΠΎΠ±Π°Π²ΠΈΠΌ ΠΊ ΠΏΡΠΎΠ΅ΠΊΡΡ (ProjectAdd to Project) ΡΠ°ΠΉΠ»Ρ Osnova. cpp, Marshrut. cpp ΠΈ Shar.cpp. Π ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΡΠΎΡΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ°
//—————————————————————————————————————;
__fastcall TForm1: TForm1(TComponent* Owner)
: TForm (Owner)
{
TOsnva *Osnova;
Osnova=new TOsnova (this);
Osnova->Parent=this;
}
//—————————————————————————————————————;
Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ ΠΌΡ ΡΡΠ°Π·Ρ ΡΠΌΠΎΠΆΠ΅ΠΌ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
11 Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Register (), ΠΊΠΎΡΠΎΡΠ°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ C++ Builder. ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ namespace ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΡΡΡ ΠΈΠΌΡΠ½ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. Π ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Register ΠΏΠ΅ΡΠ²ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ² ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² classes ΡΠΈΠΏΠ° TComponentClass ΠΈ Π·Π°Π½ΠΎΡΠΈΡ Π΅Π³ΠΎ Π² ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ RegisterComponents ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, Π·Π°Π½Π΅ΡΡΠ½Π½ΡΠ΅ Π² classes (Π²ΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ) Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ Samples (Π²ΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ).
//—————————————————————————————————————;
namespace Osnova
{
void __fastcall PACKAGE Register ()
{
TComponentClass classes[1] = {__classid (TOsnova)};
RegisterComponents («Samples», classes, 0);
}
}
//—————————————————————————————————————;
12 ΠΠ½ΡΡΠ°Π»Π»ΡΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
ΠΠ»Ρ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΌΠ΅Π½Ρ Component, Install Component.
Π ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Π²ΠΊΠ»Π°Π΄ΠΊΡ Into new package (Π² Π½ΠΎΠ²ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ), Π²Π²ΠΎΠ΄ΠΈΠΌ ΠΈΠΌΡ ΠΏΠ°ΠΊΠ΅ΡΠ° (APPKOsnova) ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΠ. ΠΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΊΠΎΡΠΊΠΎ Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΡΠ°Π»Π»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΊΠ΅Ρ.
ΠΡΠ²Π΅ΡΠ°Π΅ΠΌ No, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π°Ρ ΠΏΠ°ΠΊΠ΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π΅ΡΡ Π½Π΅ ΡΠΎΠ±ΡΠ°Π½ Π² Π½Π΅Π³ΠΎ Π½Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΊΠ»Π°ΡΡΡ TMarshrut ΠΈ Π’Shar. Π ΠΎΠΊΠ½Π΅ ΠΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ° ΠΠ°ΠΊΠ΅ΡΠΎΠ² (Package Manager) Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Add, Add Unit ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠ°ΠΉΠ»Ρ Marshrut. cpp ΠΈ Shar. cpp
ΠΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½ΡΡΠ°Π»Π»ΠΈΡΠΎΠ²Π°ΡΡ Π½Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ.
ΠΠ΅ΠΈΠ½ΡΡΠ°Π»Π»ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΌΠΎΠΆΠ½ΠΎ, Π²ΡΠ±ΡΠ°Π² Π²ΠΊΠ»Π°Π΄ΠΊΡ Project > Options >Remove.
13 ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π³ΠΎΡΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π½Π°ΡΠ½ΡΠΌ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ (FileNewApplication).
ΠΡΠ±ΠΈΡΠ°Π΅ΠΌ Π½Π° ΠΏΠ°Π»ΠΈΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π²ΠΊΠ»Π°Π΄ΠΊΡ Samples ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌ Π½Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π½Π° ΡΠΎΡΠΌΡ.
ΠΠΎΡΡΠ½ΡΠ² Π·Π° ΡΠ°ΠΌΠΊΡ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΌΠ΅Π½ΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
ΠΠΎΠ±Π°Π²ΠΈΠΌ Π½Π° ΡΠΎΡΠΌΡ Π΄Π²Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ ΡΠΎΠ±ΡΡΠΈΡ OnClick Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΊΠΎΠ΄
//—————————————————————————————————————;
void __fastcall TForm1: Scororty_plusClick (TObject *Sender)
{
Form1->Osnova1->Skorosty-=5;
}
//—————————————————————————————————————;
void __fastcall TForm1: Scororty_minusClick (TObject *Sender)
{
Form1->Osnova1->Skorosty+=5;
}
//—————————————————————————————————————;
ΠΈ Π·Π°ΠΏΡΡΡΠΈΠΌ ΠΏΡΠΎΠ΅ΠΊΡ. ΠΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ Scororty_plus ΡΠΊΠΎΡΠΎΡΡΡ Π²ΡΠ°ΡΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡΡΡ, Π° ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ Scororty_minus ΡΠΌΠ΅Π½ΡΡΠ°ΡΡΡΡ.
Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ
1. Π. Π―. ΠΡΡ Π°Π½Π³Π΅Π»ΡΡΠΊΠΈΠΉ «ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π‘++ Builder 6».
2. Π. Π Π΅ΠΉΡΠ΄ΠΎΡΡ, Π. Π₯Π΅Π½Π΄Π΅ΡΡΠΎΠ½ «Borland C++ Builder. ΠΡΠ²ΠΎΠΉ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π·Π° 21 Π΄Π΅Π½Ρ».
3. Π’Π΅Π»Π»Π΅Ρ Π. «Borland C++ Builder. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° (1998)»
4. Π§. ΠΠ°Π»Π²Π΅ΡΡ, Π. Π Π΅ΠΉΡΠ΄ΠΎΡΡ «Borland C++ Builder».