рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдбреНрд░реИрдЧ-рдПрдВрдб-рдбреНрд░реЙрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реВрдЪреА рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

рдпрд╣ рд▓реЗрдЦ рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ:


рдХрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЦреАрдВрдЪрдХрд░ рдлрд╛рдЗрд▓реЗрдВ рдЦреЛрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдорд╛рдирдХ рдЙрджреНрдШрд╛рдЯрди рдореЙрдбрд▓ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдореЗрдиреВ "рдлрд╝рд╛рдЗрд▓ -> рдУрдкрди" рдХрд╛ рдЪрдпрди рдХрд░рдХреЗ рдпрд╛ рдЯреВрд▓рдмрд╛рд░ рдкрд░ рд╕рдВрдмрдВрдзрд┐рдд рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдЪрд░рдг рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред
рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдпрд╣ рдФрд░ рдЕрдзрд┐рдХ "рдкреЗрд╢реЗрд╡рд░" рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:


рд╡рд┐рдВрдбреЛрдЬ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рджреЛ рдореБрдЦреНрдп рддрд░реАрдХреЗ рд╣реИрдВред
рдкрд╣рд▓рд╛ рддрд░реАрдХрд╛ рдорд╛рдирдХ рд╡рд┐рдВрдбреЛрдЬ рдбреНрд░реИрдЧ-рдПрдВрдб-рдбреНрд░реЙрдк рдПрдкреАрдЖрдИ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рд╕рд╛рде рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рдВрдбреЛ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реИред
рджреВрд╕рд░реА рд╡рд┐рдзрд┐ OLE (COM) рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реИ, рдЬреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрдирдд рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдкрд╣рд▓рд╛ рдФрд░ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ред

рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рдореАрдХреНрд╖рд╛:


рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, Windows рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЦреАрдВрдЪреЗрдВ рдФрд░ рдбреНрд░реЙрдк рд╕рдорд░реНрдерди рдЕрдХреНрд╖рдо рд╣реИред
рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╡рд┐рдВрдбреЛрдЬ рдХреЛ рдмрддрд╛рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╣рдо рдбреНрд░реИрдЧ рдФрд░ рдбреНрд░реЙрдк рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╡рд┐рдВрдбреЛ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред
рдЗрд╕ рд╡рд┐рдВрдбреЛ рдХреЛ WM_DROPFILES рд╕рдВрджреЗрд╢ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЙрд╕ рд╕рдордп рдЖрддрд╛ рд╣реИ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреНрд░реИрдЧ рдПрдВрдб рдбреНрд░реЙрдк рдСрдкрд░реЗрд╢рди рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рд╕рдВрджреЗрд╢ рд╣рдореЗрдВ рдбреНрд░реЙрдк рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╣рдо рд╡рд┐рднрд┐рдиреНрди рдПрдкреАрдЖрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рд╡рд┐рдВрдбреЛрдЬ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЕрдм рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрдирд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред



Windows Vista (рдФрд░ рдЙрдЪреНрдЪрддрд░) рдореЗрдВ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдорд╕реНрдпрд╛рдПрдБ
рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛рд░рдгреЛрдВ рд╕реЗ, рд╡рд┐рдВрдбреЛрдЬрд╝ рд╡рд┐рд╕реНрдЯрд╛ рдЙрди рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдЦреАрдВрдЪ рдФрд░ рдбреНрд░реЙрдк рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рдирдХреА рд╕реБрд░рдХреНрд╖рд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЕрд▓рдЧ рд╣реИрдВред
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рджреНрд╡рд╛рд░рд╛ WM_DROPFILES рд╕рдВрджреЗрд╢ рдХреА рдкреНрд░рд╛рдкреНрддрд┐ рдЕрд╡рд░реБрджреНрдз рд╣реЛ рд╕рдХрддреА рд╣реИред

рдЖрдЗрдП рдХрджрдо рд╕реЗ рдХрджрдо рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рдбреНрд░реИрдЧ-рдПрдВрдб-рдбреНрд░реЙрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд╝рд╛рдЗрд▓ рд░рд┐рд╕реЗрдкреНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрд▓реНрдлреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

1. рдЖрд╡рд╢реНрдпрдХ рдПрдкреАрдЖрдИ рдХрд╛рд░реНрдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╢реЗрд▓рдПрдкреАрдЖрдИ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛:

uses ShellAPI; 

2. DragAcceptFiles рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ, рд╡рд┐рдВрдбреЛ рдХреЗ рд╣реИрдВрдбрд▓ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░рдирд╛ рдЬреЛ WM_DROPFILES рд╕рдВрджреЗрд╢ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдЧрд╛, рдФрд░ рджреВрд╕рд░рд╛ True, рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдВрдбреЛ рд╕реВрдЪрдирд╛рдПрдБ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╡рд┐рдВрдбреЛ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХрд╛ рдореБрдЦреНрдп рд░реВрдк рд╣реЛрдЧрд╛:

 DragAcceptFiles(Form1.Handle, True); 

3. WM_DROPFILES рд╕рдВрджреЗрд╢ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдВред рдбреЗрд▓реНрдлреА рдореЗрдВ, рд╣рдо рдЖрд╡реЗрджрди рдХреЗ рдореБрдЦреНрдп рд░реВрдк рдХреА рдХрдХреНрд╖рд╛ рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рд╣реИрдВрдбрд▓рд░ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 procedure WMDropFiles(var Msg: TWMDropFiles); message WM_DROPFILES; 

4. WM_DROPFILES рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╕рдордп, рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП DragQueryXXX рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ - рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рджреЗрдЦреЗрдВред

5. рд╡рд┐рдВрдбреЛрдЬ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЗрд╕ рд╕рдВрджреЗрд╢ рдиреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рд╣реИред
рдпрд╣ DragFinish рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ WM_DROPFILES рд╕рдВрджреЗрд╢ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп HDROP рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдбреНрд░реИрдЧ-рдПрдВрдб-рдбреНрд░реЙрдк рдСрдкрд░реЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрд╕рд╛рдзрди рдореБрдХреНрдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред

 DragFinish(DropH); 

6. рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдлрд┐рд░ рд╕реЗ рдбреНрд░реИрдЧрд╕реЗрдкреНрдЯрдлрд╛рдЗрд▓реНрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░ рдлрд╛рд▓реНрд╕ рдХреЛ рджреВрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░реЗрдВ, рдЬреЛ рд╡рд┐рдВрдбреЛрдЬ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рд╡рд┐рдВрдбреЛ рдЕрдм WM_DROPFILES рд╕рдВрджреЗрд╢ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

 DragAcceptFiles(Form1.Handle, False); 

рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред


рд╣рдо рдорд╛рдЗрдЧреНрд░реЗрдЯреЗрдб рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ - DragQueryFile рдФрд░ DragQueryPointред
WM_DROPFILES рд╕рдВрджреЗрд╢ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп рдЗрди рджреЛрдиреЛрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП HDROP рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рд╕рднреА рдЯреНрд░реЗрдбреЛрдВ рдореЗрдВ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ - DragQueryFileред

рд╡рд┐рдВрдбреЛрдЬ рдПрдкреАрдЖрдИ рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рд░реНрдпреЛрдВ рдХреА рддрд░рд╣, рдбреНрд░реИрдЧрд╡рд┐рдХрдлрд╛рдЗрд▓ рдХрдИ рд╡реНрдпрд╡рд╣рд╛рд░реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЧрдП рдорд╛рдкрджрдВрдбреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред
рдРрд╕рд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрднреА-рдХрднреА рдЗрд╕ рддрдереНрдп рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЛ рдпрд╛рдж рд░рдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред
рдЖрдЗрдП рдЗрд╕рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ (рдбреЗрд▓реНрдлреА рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП):

  1. рдбреНрд░реЙрдкрд╣реИрдВрдбрд▓: рдПрдЪрдбреАрдЖрд░рдкреА - рдСрдкрд░реЗрд╢рди рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ WM_DROPFILES рд╕рдВрджреЗрд╢ рджреНрд╡рд╛рд░рд╛ рднреЗрдЬрд╛ рдЧрдпрд╛ред
  2. рд╕реВрдЪрдХрд╛рдВрдХ: рдкреВрд░реНрдгрд╛рдВрдХ - рдлрд╝рд╛рдЗрд▓ рд╕реВрдЪрдХрд╛рдВрдХ рдЬрдм рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рдХреНрд╡реЗрд░реА рдХрд░рддрд╛ рд╣реИред
  3. FileName: PChar - рд╕реВрдЪрдХ рдХреЛ рдЙрд╕ рдмрдлрд░ рдореЗрдВ рдЬрд┐рд╕рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
  4. BufSize: рдкреВрд░реНрдгрд╛рдВрдХ - FileName рдмрдлрд░ рдХрд╛ рдЖрдХрд╛рд░ред

рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рд╣рдореЗрдВ рдирд┐рдореНрди рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдорд┐рд▓рддрд╛ рд╣реИ:


рдЕрдм рддрдХ, рдпрд╣ рд╕рдм рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╣рдо рдЗрди рд╕рднреА рдЪрд░рдгреЛрдВ рдХреЛ рдПрдХ рд╡рд░реНрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рд╕реНрд╡рддрдВрддреНрд░ рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред

DragQueryPoint

рдпрд╣ рдлрд╝рдВрдХреНрд╢рди, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдбреНрд░реИрдЧрд╡рд┐рдХрдлрд╝рд╛рдЗрд▓ рд╣реИ, рдЗрд╕реЗ рдХреЙрд▓ рдХрд░рдХреЗ, рд╣рдо рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕ рдкрд░ рдбреНрд░реИрдЧ рдПрдВрдб рдбреНрд░реЙрдк рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

рдЖрдЗрдП рдЗрд╕рдХреА рд╕рдВрдкреВрд░реНрдгрддрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред


рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВред
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ "рдордЫрд▓реА" рдбреЗрд▓реНрдлреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ рдФрд░ рд╣рдореЗрдВ рдЗрд╕реЗ рдбреНрд░реИрдЧ-рдПрдВрдб-рдбреНрд░реЙрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╣рдорд╛рд░реЗ рдлрд╛рд░реНрдо рдореЗрдВ, рд╣рдо рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмреНрдпрд╛рдЬ рдХреА рдШрдЯрдирд╛ рдХреЗ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВрдЧреЗ:

 procedure TForm1.FormCreate(Sender: TObject); begin // ...    DragAcceptFiles(Self.Handle, True); // ...    end; 

рдЗрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде, рд╣рдордиреЗ WM_DROPFILES рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрди рдЕрдк рдХрд┐рдпрд╛ред
рдпрд╣ рд╕рдВрджреЗрд╢ рд╣реИрдВрдбрд▓рд░ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

 procedure TForm1.WMDropFiles(var Msg: TWMDropFiles); var DropH: HDROP; //    DroppedFileCount: Integer; //    FileNameLength: Integer; //    FileName: string; // ,    I: Integer; //      DropPoint: TPoint; //     Drop begin inherited; //   DropH := Msg.Drop; try //     DroppedFileCount := DragQueryFile(DropH, $FFFFFFFF, nil, 0); //        for I := 0 to Pred(DroppedFileCount) do begin //    FileNameLength := DragQueryFile(DropH, I, nil, 0); //  ,          // (Delphi       ) SetLength(FileName, FileNameLength); //    DragQueryFile(DropH, I, PChar(FileName), FileNameLength + 1); // -     (    ) // ...     end; // :  ,     Drop DragQueryPoint(DropH, DropPoint); // ... -      finally //  -   //   DropH    ... DragFinish(DropH); end; //   ,    Msg.Result := 0; end; 

рдмрд╣реБрдд рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд╣рдо рдПрдХ рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдореЗрдВ рдбреНрд░реЙрдк рдСрдкрд░реЗрд╢рди рдХреЗ рд╣реИрдВрдбрд▓ рдХреЛ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВред
рдпрд╣ рдХреЗрд╡рд▓ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╣рдо рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдбреНрд░реИрдЧрд╡рд┐рдХрдлрд╛рдЗрд▓ рдлрд╝рдВрдХреНрд╢рди (рд╕рд╛рде рд╣реА рдбреНрд░реИрдЧрдПрдХреНрд╕рдПрдХреНрд╕рдПрдХреНрд╕рдПрдХреНрд╕рдПрдХреНрд╕ рдХреЗ рдмрд╛рдХреА рд╣рд┐рд╕реНрд╕реЛрдВ) рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВрдЧреЗ, рдкрд╣рд▓рд╛ рдХреЙрд▓ рдЬрд┐рд╕рдореЗрдВ рд╣рдореЗрдВ рд╕реВрдЪреА рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдорд┐рд▓рддреА рд╣реИред
рд╣рдорд╛рд░рд╛ рдЕрдЧрд▓рд╛ рдХрджрдо рд╣реИ рдХрд┐ рд▓реВрдк рдХреА рдкреНрд░рддреНрдпреЗрдХ рдлрд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдЙрд╕рдХреЗ рдЗрдВрдбреЗрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдП (рд╕реВрдЪреА рдореЗрдВ рдореМрдЬреВрдж рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╢реВрдиреНрдп рд╕реЗ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЗрд╕реЗ рди рднреВрд▓реЗрдВ)ред
рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рдмрдлрд░ рдХреЗ рдЖрдХрд╛рд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬрд┐рд╕реЗ рдбреНрд░реИрдЧрд╡рд┐рдХрд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рджреВрд╕рд░реА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдлрд┐рд░ рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░реЗрдВ рдЬреЛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрде рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдЧреАред
рдЕрдВрдд рдореЗрдВ, рдЖрдкрдХреЛ рддреАрд╕рд░реЗ рд░рд╛рд╕реНрддреЗ рдореЗрдВ DragQueryFile рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдЖрд╡рдВрдЯрд┐рдд рдмрдлрд░ рдХреЛ рдлрд╝рд╛рдЗрд▓ рдкрде рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЙрд╕ рдмрд┐рдВрджреБ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЦреАрдВрдЪрддрд╛ рд╣реИред
рдЬрдм рд╣рдордиреЗ рд╕рднреА рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ, рд╣рдо рд╣реИрдВрдбрд▓ рдХреЛ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреНрд░реИрдЧрдлрд┐рдирд┐рд╢ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗред
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЕрдкрд╡рд╛рдж рдХреЛ рдмрдврд╝рд╛рддреЗ рд╣реБрдП рднреА рд╣рдореЗрдВ рдпрд╣ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред
рдареАрдХ рд╣реИ, рдмрд╣реБрдд рдЕрдВрдд рдореЗрдВ, рд╣рдо рд╕рдВрджреЗрд╢ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВрдЧреЗ 0 рдорд╛рдиред Msg.Result рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ, рдЗрд╕ рддрд░рд╣ рд╕реЗ, рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ, рдХрд┐ рд╣рдордиреЗ рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рд╣реИред

рдЖрд╡реЗрджрди рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░, рд╣рдо WM_DROPFILES рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╕реЗ рдореБрдЦреНрдп рд╡рд┐рдВрдбреЛ рдХреЛ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░ рджреЗрдВрдЧреЗред

 procedure TForm1.FormDestroy(Sender: TObject); begin // ...    DragAcceptFiles(Self.Handle, False); // ...    end; 

рд╣рдо рдЗрд╕реЗ рдПрдХ рд╡рд░реНрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ (рдж рдбреЗрд▓реНрдлреА рд╡реЗ)


рдпрджрд┐ рдЖрдк рд╕рд╣рдордд рд╣реИрдВ рдХрд┐ рд╕реАрдзреЗ рдЖрдзрд╛рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХреЛрдб рдореЗрдВ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдХреБрдЫ рднреНрд░рдо рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рд╣рдордд рд╣реЛрдВрдЧреЗ рдХрд┐ рдХреБрдЫ рд╕рд╣рд╛рдпрдХ рд╡рд░реНрдЧ рдХреЗ рд░реВрдк рдореЗрдВ, рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдмрд╛рд╣рд░ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣рд╛рдВ рдПрдХ рдЫреЛрдЯрд╛ рд╡рд░реНрдЧ рд╣реИ рдЬреЛ WM_DROPFILES рд╕рдВрджреЗрд╢ рдХреЛ рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЛрдб рдЫреБрдкрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рдмрд┐рдирд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред
рд╕рдЪ рд╣реИ, рдПрдХ рдЕрддрд┐ рд╕реВрдХреНрд╖реНрдо рдЕрдВрддрд░ рд╣реИ - рд╣рдореЗрдВ рдЕрднреА рднреА рдПрдХ рд╡рд┐рдВрдбреЛ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рдВрдбреЛрдЬ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ WM_DROPFILI рд╕рдВрджреЗрд╢ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИред

рдЗрд╕ рд╡рд░реНрдЧ рдХреА рдШреЛрд╖рдгрд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

 type TFileCatcher = class(TObject) private fDropHandle: HDROP; function GetFile(Idx: Integer): string; function GetFileCount: Integer; function GetPoint: TPoint; public constructor Create(DropHandle: HDROP); destructor Destroy; override; property FileCount: Integer read GetFileCount; property Files[Idx: Integer]: string read GetFile; property DropPoint: TPoint read GetPoint; end; 

... рдареАрдХ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди:

 constructor TFileCatcher.Create(DropHandle: HDROP); begin inherited Create; fDropHandle := DropHandle; end; destructor TFileCatcher.Destroy; begin DragFinish(fDropHandle); inherited; end; function TFileCatcher.GetFile(Idx: Integer): string; var FileNameLength: Integer; begin FileNameLength := DragQueryFile(fDropHandle, Idx, nil, 0); SetLength(Result, FileNameLength); DragQueryFile(fDropHandle, Idx, PChar(Result), FileNameLength + 1); end; function TFileCatcher.GetFileCount: Integer; begin Result := DragQueryFile(fDropHandle, $FFFFFFFF, nil, 0); end; function TFileCatcher.GetPoint: TPoint; begin DragQueryPoint(fDropHandle, Result); end; 

рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдРрд╕рд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рдирд╣реАрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИред рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рд╕рднреА рдХреЛрдб рджреЗрдЦ рд▓рд┐рдП рд╣реИрдВред
рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ HDROP рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рд╡рд┐рдзреНрд╡рдВрд╕рдХ рдЗрд╕реЗ DragFinish рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрддрд╛ рд╣реИред
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реВрдЪреА рдФрд░ рдЙрдирдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╡рд░реНрдЧ рдЧреБрдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╕рднреА рд╡рд░реНрдЧ рд╡рд┐рдзрд┐рдпрд╛рдВ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдбреНрд░реИрдЧрд╡рд┐рдХрдПрдлрд╛рдЗрд▓ рдФрд░ рдбреНрд░реИрдЧрд╡рд┐рдХреЙрдкреНрдЯрд░ рдПрдкреАрдЖрдИ рдкрд░ рдПрдХ рдЖрд╡рд░рдг рд╣реИред

рдЪрд▓реЛ TFileCatcher рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, WM_DROPFILES рд╕рдВрджреЗрд╢ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗрдВред

 procedure TForm1.WMDropFiles(var Msg: TWMDropFiles); var I: Integer; //      DropPoint: TPoint; //     Drop Catcher: TFileCatcher; //   TFileCatcher begin inherited; Catcher := TFileCatcher.Create(Msg.Drop); try for I := 0 to Pred(Catcher.FileCount) do begin // ...     end; DropPoint := Catcher.DropPoint; // ... -      finally Catcher.Free; end; Msg.Result := 0; end; 

рднрд╡рд┐рд╖реНрдп рдХреА рдпреЛрдЬрдирд╛


TFileCatcher рд╡рд░реНрдЧ рдХреЛ рдбреНрд░реИрдЧ-рдПрдВрдб-рдбреНрд░реЙрдк рдСрдкрд░реЗрд╢рди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдПрдкреАрдЖрдИ рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рдЪ рд╣реИ, рдпрд╣ WM_DROPFILES рд╕рдВрджреЗрд╢ рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлреЙрд░реНрдо рд╡рд┐рдВрдбреЛ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк рдлреЙрд░реНрдо рд╡рд┐рдВрдбреЛ рдХреЛ рдЙрдк-рд╡рд░реНрдЧ рдХрд░рдирд╛ рд╣реИред рд╕рдЪ рд╣реИ, рдпрд╣ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдЖрдк рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдбреНрд░реЙрдк рдлрд╝рд╛рдЗрд▓ рдШрдЯрдХреЛрдВ рдХреЗ рдореЗрд░реЗ рд╕реЗрдЯ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред

рдбреЗрдореЛ рдРрдк


рдбреЗрдореЛ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреЛрдб рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдХреЛрдб рдХреЛ рдбреЗрд▓реНрдлреА рдХреЗ рд╕рд╛рдд рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд╛рд░ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдпрд╣ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗрд╡рд▓ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдкреНрд░рдорд╛рдг рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХреЗрд╡рд▓ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдЪрд┐рддреНрд░рд┐рдд рдХрд░рдирд╛ рд╣реИред рдпрд╣ рддреИрдпрд╛рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреЛрдб "AS IS" рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╛рд░рдВрдЯреА рдХреЗ рдмрд┐рдирд╛, рдпрд╛ рддреЛ рд╡реНрдпрдХреНрдд рдпрд╛ рдирд┐рд╣рд┐рдд рд╣реИред рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмрд╢рд░реНрддреЗ рдХрд┐ рд╡рд╣ рдмреЗрдЪрд╛ рди рдЬрд╛рдП рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдХрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рди рд╣реЛред рдпрджрд┐ рдЖрдк рдЗрд╕ рд╕рдм рд╕реЗ рд╕рд╣рдордд рд╣реИрдВ рддреЛ рдХреГрдкрдпрд╛ рдирд┐рдореНрди рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред


рдбреЗрдореЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ

Source: https://habr.com/ru/post/In179131/


All Articles