Dra og slipp fra explorer

Denne artikkelen viser hvordan du godta filer droppet fra utsiden av Delphi application.unit Unit1; interfaceuses Windows, Meldinger, SysUtils, Klasser, Grafikk, kontroller, skjemaer, dialogbokser, StdCtrls, skriver TForm1 = klasse (TForm) prosedyre FormCreate (Sender: TObject); Prosedyren FormDestroy (Sender: TObject); private {felleserklæringer} beskyttet prosedyre WMDropFiles (Var SMS: TWMDropFiles); meldings WM_DROPFILES; offentlige {offentlige erklæringer} end; Var Form1: TForm1; gjennomføringen {$ R * .DFM} bruker ShellAPI; prosedyre TForm1.FormCreate (Sender: TObject); begin {Dette kallet til DragAcceptFiles forteller Windows at vi ønsker å vite når filer droppet på vår form fra Explorer eller File manager. } DragAcceptFiles (håndtak, true); end; prosedyre TForm1.FormDestroy (Sender: TObject); begin {Varsle Windows at vi ikke lenger vil slippe varselmeldinger. } DragAcceptFiles (håndtak, false); end; prosedyre TForm1.WMDropFiles (Var SMS: TWMDropFiles); Var jeg: integer; S: string; begynne med mld gjør begin {Calling DragQueryFile med filnummer som -1 ($ FFFFFFFF) vil returnere antall filer som ble droppet på skjemaet. } For jeg: = 0 til DragQueryFile (Drop, -1, null, 0) - en trenger begin {Her vi kaller DragQueryFile for hver fil droppet å angi en buffer lengde på null bestemme antall tegn som trengs for filnavnet, og deretter bruke SetLength å tildele riktig mengde plass. Merk at vi må legge en til verdien returnert av DragQueryFile å forlate rommet for null-terminator. } SetLength (S, DragQueryFile (Drop, jeg, null, 0) 1); {Få den fullstendige filnavnet i S. Enhver behandling som må gjøres for hver fil kan gjøres etter denne samtalen. } DragQueryFile (Drop, jeg, PChar (S), Lengde (S)); slutt; {DragFinish fullfører drift og frigjør de tilhørende ressurser. } DragFinish (Drop); end, end,. slutten



Previous:
Next Page: