ToDoForm.pas
资源名称:delphi.rar [点击查看]
上传用户:fh681027
上传日期:2022-07-23
资源大小:1959k
文件大小:2k
源码类别:
Delphi控件源码
开发平台:
Delphi
- unit ToDoForm;
- interface
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- Grids, DBGrids, Db, DBTables, StdCtrls, DBCtrls, ExtCtrls;
- type
- TToDoFileForm = class(TForm)
- Splitter1: TSplitter;
- Panel1: TPanel;
- DBNavigator1: TDBNavigator;
- DBMemo1: TDBMemo;
- Table1: TTable;
- DataSource1: TDataSource;
- DBGrid1: TDBGrid;
- procedure FormCreate(Sender: TObject);
- private
- { Private declarations }
- public
- procedure DropFiles (var Msg: TWmDropFiles);
- message wm_DropFiles;
- procedure CopyData (var Msg: TWmCopyData);
- message wm_CopyData;
- end;
- var
- ToDoFileForm: TToDoFileForm;
- implementation
- {$R *.DFM}
- uses
- ShellApi;
- procedure TToDoFileForm.FormCreate(Sender: TObject);
- begin
- // eventually create the table
- if not Table1.Exists then
- Table1.CreateTable;
- // activate the table
- Table1.Open;
- // accept dragging to the form
- DragAcceptFiles (Handle, True);
- end;
- procedure TToDoFileForm.DropFiles(var Msg: TWmDropFiles);
- var
- nFiles, I: Integer;
- Filename: string;
- begin
- // get the number of dropped files
- nFiles := DragQueryFile (Msg.Drop, $FFFFFFFF, nil, 0);
- // for each file
- try
- for I := 0 to nFiles - 1 do
- begin
- // allocate memory
- SetLength (Filename, 80);
- // read the file name
- DragQueryFile (Msg.Drop, I, PChar (Filename), 80);
- // normalize file
- Filename := PChar (Filename);
- // add a new record
- Table1.InsertRecord ([Filename, '']);
- end;
- finally
- DragFinish (Msg.Drop);
- end;
- // open the (last) record in edit mode
- Table1.Edit;
- // move the input focus to the memo
- DBMemo1.SetFocus;
- end;
- procedure TToDoFileForm.CopyData(var Msg: TWmCopyData);
- var
- Filename: string;
- begin
- // restore the window if minimized
- if IsIconic (Application.Handle) then
- Application.Restore;
- // extract the filename from the data
- Filename := PChar (Msg.CopyDataStruct.lpData);
- // insert a new record
- Table1.Insert;
- // set up the file name
- Table1.FieldByName ('Filename').AsString := Filename;
- // move the input focus to the memo
- DBMemo1.SetFocus;
- end;
- end.