ΠΠΈΡΡΠΈΠ½Π³ 4.34.
ΠΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈ Π·Π°ΠΊΡΡΡΠΈΠΈ ΡΠΎΡΠΌΡ
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose:
Boolean);
begin
//ΠΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ
bCancelCopy := True;
end;
ΠΠ°ΠΊ Π²Π°ΡΠΈΠ°Π½Ρ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ Π·Π°ΠΊΡΡΡΠΈΠ΅ ΡΠΎΡΠΌΡ (ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ CanClose Π² False), Π½Π΅ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Ρ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΏΠΈΡΡΠ΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ Π²Π²Π΅ΡΡΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Progress ΠΠ°Π³, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΠΈΠΉ Ρ ΠΎΠ΄ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π’ΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΎΠ±ΡΠΈΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ².
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠΊΠΎΠ², Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π½Π°ΡΠΎΠΊ ΡΠ°ΠΉΠ»Π°, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΡΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ΅ Windows. ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅4.35 ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΏΡΡΡ ΡΠ°ΠΉΠ»Π° ΠΈ ΡΠ»Π°Π³, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ, ΠΊΠ°ΠΊΠΎΠΉ Π½ΡΠΆΠ΅Π½ Π·Π½Π°ΡΠΎΠΊ β ΠΌΠ°Π»ΡΠΉ ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠΎΠΉ. ΠΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Π·Π½Π°ΡΠΊΠ°, Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ ShellFunctions, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌ Π½Π° Π΄ΠΈΡΠΊΠ΅, ΠΏΡΠΈΠ»Π°Π³Π°Π΅ΠΌΠΎΠΌ ΠΊ ΠΊΠ½ΠΈΠ³Π΅, Π² ΠΏΠ°ΠΏΠΊΠ΅ Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π°.
...ΠΠΈΡΡΠΈΠ½Π³ 4.35.
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠΊΠ° ΡΠ°ΠΉΠ»Π°
function GetFileIcon(filename: String; small: Boolean = False ): HICON;
var
info: SHFILEINFO;
flags: Cardinal;
begin
flags := SHGFI_ICON;
if small then
//ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ°Π»ΠΎΠ³ΠΎ Π·Π½Π°ΡΠΊΠ°
flags := flags or SHGFI_SMALLICON
else
//ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ Π·Π½Π°ΡΠΊΠ°
flags := flags or SHGFI_LARGEICON;
ZeroMemory(Addr(info), SizeOf(info));
//ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠΊΠ°
SHGetFileInfo(PAnsiChar(filename), 0, info, SizeOf(info), flags);
GetFileIcon := info.hIcon;
end;
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 4.35 API-ΡΡΠ½ΠΊΡΠΈΡ SHGetFilelnfo ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π° Π² ΠΌΠΎΠ΄ΡΠ»Π΅ ShellApi. Π’Π°ΠΌ ΠΆΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π° ΡΡΡΡΠΊΡΡΡΠ° SHFILEINFO.
Π Π»ΠΈΡΡΠΈΠ½Π³Π΅ 4.36 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ GetFilelcon: Π·Π΄Π΅ΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π·Π½Π°ΡΠΊΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Image (ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΈ ΠΌΠ°Π»ΠΎΠ³ΠΎ Π·Π½Π°ΡΠΊΠΎΠ²).
...ΠΠΈΡΡΠΈΠ½Π³ 4.36.
ΠΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠΊΠ° Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° (ΠΈΠ»ΠΈ ΠΏΠ°ΠΏΠΊΠΈ)
procedure TForm1.cmbLoadIconClick(Sender: TObject);
begin
//ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΈ ΠΌΠ°Π»ΠΎΠ³ΠΎ Π·Π½Π°ΡΠΊΠΎΠ² ΡΠ°ΠΉΠ»Π°
imgLarge.Picture.Icon.Handle := GetFileIcon(txtFile.Text);
imgSmall.Picture.Icon.Handle := GetFileIcon(txtFile.Text, True);
end;
ΠΡΠΈΠΌΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π·Π½Π°ΡΠΊΠ° ΡΠ°ΠΉΠ»Π° ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΡΠΈΡ. 4.10.
Π ΠΈΡ. 4.10. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠΊΠ°, Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ· Π»ΠΈΡΡΠΈΠ½Π³Π° 4.35 ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π·Π½Π°ΡΠΊΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ², Π½ΠΎ ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ², Π΄ΠΈΡΠΊΠΎΠ² ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΏΠ°ΠΏΠΎΠΊ ( ΠΠΎΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ, Π Π°Π±ΠΎΡΠΈΠΉ ΡΡΠΎΠ», ΠΠ°Π½Π΅Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ Ρ. Π΄.). ΠΡΠ°Π²Π΄Π°, Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ API-ΡΡΠ½ΠΊΡΠΈΡ SHGetFilelnfo ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° (Π½Π΅ ΡΡΡΠΎΠΊΠ°). Π§Π°ΡΡΠΈΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠ°ΠΊΠΈΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π° Π² ΠΏΠΎΠ΄ΡΠ°Π·Π΄. Β«ΠΠΊΠ½ΠΎ Π²ΡΠ±ΠΎΡΠ° ΠΏΠ°ΠΏΠΊΠΈΒ» ΡΠ°Π·Π΄. 2.4.
Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠ°ΠΆΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»ΠΎΠ² ΠΎ ΠΏΡΠΎΡΠΈΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ API-ΡΡΠ½ΠΊΡΠΈΠΈ SHGetFileInf ΠΎ. ΠΠ΅Π΄Π°ΡΠΎΠΌ ΠΎΠ½Π° Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π½Π΅ SHGetFilelcon ΠΈΠ»ΠΈ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅: ΠΎΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Π½Π΅ΠΆΠ΅Π»ΠΈ ΠΏΡΠΎΡΡΠΎ Π·Π½Π°ΡΠΎΠΊ ΡΠ°ΠΉΠ»Π°. ΠΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π½Π°Π±ΠΎΡΠ° ΡΠ»Π°Π³ΠΎΠ², ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ Π² ΡΡΠ½ΠΊΡΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°. ΠΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΈΠ· ΠΊΠ°ΠΊΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ ΡΠΎΡΡΠΎΠΈΡ ΡΡΡΡΠΊΡΡΡΠ° SHFILEINFO, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ (Π·Π° ΡΠ΅Π΄ΠΊΠΈΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ) ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Π΅Π΅ ΠΏΠΎΠ»Ρ:
β’ hIcon (ΡΠΈΠΏΠ° HICON) β Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ Π·Π½Π°ΡΠΊΠ° Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ° (ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ SHGetFilelnfo);
β’ iIcon (ΡΠΈΠΏΠ° Integer) β Π½ΠΎΠΌΠ΅Ρ Π·Π½Π°ΡΠΊΠ° Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ ImageList;
β’ dwAttributes (ΡΠΈΠΏΠ° DWORD) β Π°ΡΡΠΈΠ±ΡΡΡ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°;
β’ szDisplayName (ΡΠΈΠΏΠ° array [0. ΠΠΠ₯_Π ΠΠ’Π-1] of AnsiChar) β Π±ΡΡΠ΅Ρ Π΄Π»Ρ ΠΈΠΌΠ΅Π½ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ ΠΌΠ΅ΡΠΊΠΈ Π΄ΠΈΡΠΊΠ°, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠ΅ Π² ΠΡΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ΅ Windows);
β’ szTypeName (ΡΠΈΠΏΠ° array [0..79] of AnsiChar) β Π±ΡΡΠ΅Ρ Π΄Π»Ρ Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΠΈΠΏΠ° ΡΠ°ΠΉΠ»Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΠΎΠΊΡΠΌΠ΅Π½Ρ Microsoft Word).
ΠΠ° ΠΏΠΎΠ»ΡΡ dwAttributes ΠΈ ilcon ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ, Π·Π°ΡΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ SHGetFilelnfo Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ ΡΡΡΡΠΊΡΡΡΡ (ΠΈΡ ΠΏΡΠΎΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Delphi). ΠΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ»Π°Π³ΠΈ (ΠΈΠΌΠ΅Π½Π° ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ):
β’ SHGFIICON β ΠΏΠΎΠ»Π΅ hlcon Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠΌ Π·Π½Π°ΡΠΊΠ°, Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ; Π΅ΡΠ»ΠΈ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ Π½Π΅ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π² ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΄Π°Π»ΡΡΡΠ΅ΠΌ Π½Π΅Π½ΡΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠΊΠΈ (ΠΊΠ°ΠΊ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 4.36), ΡΠΎ ΠΏΠΎΡΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π·Π½Π°ΡΠΎΠΊ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ Π²ΡΡΡΠ½ΡΡ (API-ΡΡΠ½ΠΊΡΠΈΡ Destroylcon);
β’ SHGFI_LARGEICON, SHGFI_SMALLICON β ΠΠΠ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ Ρ SHGFIICON Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΌΠ°Π»ΠΎΠ³ΠΎ Π·Π½Π°ΡΠΊΠΎΠ² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ; ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»Π°Π³ΠΎΠ² Π²ΠΌΠ΅ΡΡΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ»Π° (Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ ΠΌΠ°Π»ΡΠΉ Π·Π½Π°ΡΠΎΠΊ);
β’ SHGFI_DISPLAYNAMEβΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΡΠ»Π°Π³Π° ΠΏΠΎΠ»Π΅ szDisplayName Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΄ΡΡΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, System (Π‘:));
β’ SHGFI_EXETYPE β ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ Π°ΡΡΠΈΠ±ΡΡΠ° ΠΏΠΎΠ»Π΅Π· zTypeName Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΡΠΈΠΏΠ° ΡΠ°ΠΉΠ»Π°.
ΠΠ½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎ ΠΈΠ½ΠΎΠ΅, ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ ΠΠΠ (or).
ΠΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠΊΠΎΠ² ΠΈΠ· ΠΠ₯Πβ ΠΈ DLL-ΡΠ°ΠΉΠ»ΠΎΠ²
ΠΠ°Π²Π΅ΡΠ½ΡΠΊΠ° Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ», ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΊΠΎΠ΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΡΠΎΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΡΡΡΡΡ. Π’Π°ΠΊ, ΠΈΠ· ΡΠ΅ΠΊΡΠΈΠΈ ΡΠ΅ΡΡΡΡΠΎΠ² Π±Π΅ΡΡΡΡΡ Π·Π½Π°ΡΠΊΠΈ Π΄Π»Ρ ΠΠ₯Π-ΡΠ°ΠΉΠ»ΠΎΠ². Π’Π°ΠΊΠΆΠ΅ Π² ΠΠ₯Πβ ΠΈΠ»ΠΈ DLL-ΡΠ°ΠΉΠ»Π°Ρ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ Π·Π½Π°ΡΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ². ΠΡΠ°ΠΊ, Π² Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ Π³Π»Π°Π²Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ: ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΏΠΎΡΠΎΠ±Π½ΡΡ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠ΅ Π·Π½Π°ΡΠΊΠΈ ΠΈΠ· DLLβ ΠΈΠ»ΠΈ ΠΠ₯Π-ΡΠ°ΠΉΠ»ΠΎΠ² (ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΈ Π΄Π»Ρ ICO-ΡΠ°ΠΉΠ»ΠΎΠ²).
ΠΡΡΡΡ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ ΠΏΡΡΡ ΡΠ°ΠΉΠ»Π°, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π²Π° ΡΠΏΠΈΡΠΊΠ° (TImageList) Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΡ ΠΈ ΠΌΠ°Π»ΡΡ Π·Π½Π°ΡΠΊΠΎΠ² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. Π’ΠΎΠ³Π΄Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°, Π·Π°ΠΏΠΎΠ»Π½ΡΡΡΠ°Ρ ΡΠΏΠΈΡΠΊΠΈ Π·Π½Π°ΡΠΊΠ°ΠΌΠΈ, ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½Π½ΡΠΌΠΈ ΠΈΠ· ΡΠ°ΠΉΠ»Π°, ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ (Π»ΠΈΡΡΠΈΠ½Π³ 4.37)....ΠΠΈΡΡΠΈΠ½Π³ 4.37.
Π‘ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΎΠ² Π·Π½Π°ΡΠΊΠΎΠ²
procedure LoadIcons(filename: String; lgImages,
smImages: TImageList);
var
icon: TIcon;
smIconHandle, lgIconHandle: HICON;
i: Integer;
begin
//ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π½Π°ΡΠΊΠ° (Π½Π΅ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ, Π½ΠΎ ΠΏΡΠΎΡΡΠΎ)
i := 0;
while Integer(
ExtractIconEx(PAnsiChar(filename), i, lgIconHandle,
smIconHandle, 1)
) > 0 do
begin
Inc(i);
//ΠΠΎΠ»ΡΡΠΎΠΉ Π·Π½Π°ΡΠΎΠΊ
icon := TIcon.Create;
icon.Handle := lgIconHandle;
lgImages.AddIcon(icon);
//ΠΠ°Π»ΡΠΉ Π·Π½Π°ΡΠΎΠΊ
icon := TIcon.Create;
icon.Handle := smIconHandle;
smImages.AddIcon(icon);
end;
end;
Π Π»ΠΈΡΡΠΈΠ½Π³Π΅ 4.37 Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠΊΠΎΠ² ΠΈΠ· ΡΠ°ΠΉΠ»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Π½Π°Ρ ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ ShellApi β Extract IconEx. ΠΡΠΎΡΠΎΡΠΈΠΏ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΠΊΠΎΠ²:
...function ExtractIconEx(lpszFile: PChar; nIconIndex: Integer;
var phiconLarge, phiconSmall: HICON;
nIcons: UINT): UINT;
Π€ΡΠ½ΠΊΡΠΈΡ ExtractlconEx ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
β’ lpszFile β ΠΏΡΡΡ ΡΠ°ΠΉΠ»Π°, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡΡΡ Π·Π½Π°ΡΠΊΠΈ;
β’ nIconlndex β Π½ΠΎΠΌΠ΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠΊΠ°; Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π½ΡΠ»Ρ (Π΅ΡΠ»ΠΈ Π½ΠΎΠΌΠ΅Ρ ΡΠ°Π²Π΅Π½ -1 ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ piconLarge ΠΈ piconSmall Π½ΡΠ»Π΅Π²ΡΠ΅, ΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π½Π°ΡΠΊΠΎΠ² Π² ΡΠ°ΠΉΠ»Π΅);
β’ piconLarge, piconSmall β ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΏΠ° HI CON (Π»ΠΈΠ±ΠΎ Π½Π° ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° array. of HICON) Π΄Π»Ρ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π² Π½ΠΈΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ² Π±ΠΎΠ»ΡΡΠΈΡ ΠΈ ΠΌΠ°Π»ΡΡ Π·Π½Π°ΡΠΊΠΎΠ² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ;
β’ nIcons β ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌΡΡ Π·Π½Π°ΡΠΊΠΎΠ² (ΠΏΠΎ ΡΡΡΠΈ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ Π² ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π°Ρ : Π»ΠΈΡΠ½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π½Π΅ Π±ΡΠ΄ΡΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ).
Π€ΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π½Π°ΡΠΊΠΎΠ², ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½Π½ΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π°, ΠΈΠ»ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π½Π°ΡΠΊΠΎΠ² Π² ΡΠ°ΠΉΠ»Π΅ ΠΏΡΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° nlconlndex.
Π Π»ΠΈΡΡΠΈΠ½Π³Π΅ 4.36 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠΊΠΎΠ² ΠΈΠ· ΡΠ°ΠΉΠ»Π° β ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΠ»ΡΡΠ°Π΅Π². ΠΡΡΠ³ΠΎΠΉ (Π½ΠΎ Π½Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ) Π²Π°ΡΠΈΠ°Π½Ρ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π°. Π’ΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΠΈΠΡ ^Π°ΡΠΡΠΎΠΏΠΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π΄Π»Ρ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ² Π·Π½Π°ΡΠΊΠΎΠ² (ΡΡΠ½ΠΊΡΠΈΠΈ Π½ΡΠΆΠ΅Π½ Π°Π΄ΡΠ΅Ρ Π½Π°ΡΠ°Π»Π° ΠΌΠ°ΡΡΠΈΠ²Π°), Π° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° β ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΌΠ°ΡΡΠΈΠ²Π΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΅ΡΠ»ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π½Π°ΡΠΊΠΎΠ² Π² ΡΠ°ΠΉΠ»Π΅ ΠΏΡΠ΅Π²Π·ΠΎΠΉΠ΄Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΌΠ°ΡΡΠΈΠ²Π΅, ΡΠΎ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ ExtractlconEx ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π² Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° nlconlndex Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ExtractlconEx, ΡΠΌΠ½ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ Π½Π° Π½ΠΎΠΌΠ΅Ρ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ (Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π½ΡΠ»Ρ).
ΠΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ², ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ² Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ, Π²ΡΠ·Π²Π°Π² ΡΡΠ½ΠΊΡΠΈΡ ExtractlconEx Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ nlconlndex, ΡΠ°Π²Π½ΡΠΌ -1. Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² piconLarge, piconSmall Π² Π½ΠΎΠ»Ρ (Π½Π΅ ΠΌΠ΅Π½ΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ) ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠ±ΡΡΠ²ΠΈΠ² ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° HICON (AHICON), ΠΏΡΠΈΡΠ²ΠΎΠΈΠ² Π΅ΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ nil ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π² Π΅Π³ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΏΠΎΠΌΡΠ½ΡΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² ΡΡΠ½ΠΊΡΠΈΡ.
ΠΠ° ΡΠΈΡ. 4.11 ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΡΠΎΡΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠΊΠΎΠ² ΠΈΠ· ΡΠ°ΠΉΠ»Π° Explorer. Π΅Ρ Π΅.
ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΠ°Π³ΡΡΠ·ΠΈΡΡ Π·Π½Π°ΡΠΊΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π½ Π° ΡΠΈΡ. 4.11 ΡΠΎΡΠΌΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 4.38.
Π ΠΈΡ. 4.11. ΠΡΠΈΠΌΠ΅Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½Π½ΡΡ ΠΈΠ· ΠΠ₯Π-ΡΠ°ΠΉΠ»Π° Π·Π½Π°ΡΠΊΠΎΠ²
...ΠΠΈΡΡΠΈΠ½Π³ 4.38. Π‘ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΎΠ² Π·Π½Π°ΡΠΊΠΎΠ² ΠΈ ΠΈΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
procedure TForm1.cmbLoadIconClick(Sender: TObject);
var
i: Integer;
item: TListItem;
begin
lvwIconsLg.Clear;
lvwIconsSm.Clear;
//ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π·Π½Π°ΡΠΊΠΎΠ² Π² ImageList
ImageListLg.Clear;
ImageListSm.Clear;
LoadIcons(txtFile.Text, ImageListLg, ImageListSm);
//Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ListView Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΈ ΠΌΠ°Π»ΡΠΌΠΈ Π·Π½Π°ΡΠΊΠ°ΠΌΠΈ
for i := 0 to ImageListLg.Count β 1 do
begin
item := lvwIconsLg.Items.Add();
item.Caption := \'Icon\' + IntToStr(i+1);
item.ImageIndex := i;
item := lvwIconsSm.Items.Add();
item.Caption := \'Icon\' + IntToStr(i+1);
item.ImageIndex := i;
end;
end;
ΠΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ListView: Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠΈΡ Π·Π½Π°ΡΠΊΠΎΠ² β lvwIconLg ΠΈ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΠ°Π»ΡΡ lvwIconSm. ΠΠ° ΡΠΎΡΠΌΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π΄Π²Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ImageList: ImageListLg Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠΈΡ ΠΈ ImageListSm Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΌΠ°Π»ΡΡ Π·Π½Π°ΡΠΊΠΎΠ².