亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? insertfiles.pas

?? MysqlFront的源碼
?? PAS
字號:
unit insertfiles;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ComCtrls, ImgList, Buttons, ShellApi, Math;

type TCol = record
  Name   : String;   // for displaying in lists
  isBLOB : Boolean;  // to decide whether to show or not
  Value  : String;   // for other fiels
  quote  : Boolean;  // dito
end;

type
  TfrmInsertFiles = class(TForm)
    ListViewFiles: TListView;
    ButtonAddFiles: TButton;
    ComboBoxDBs: TComboBox;
    Label1: TLabel;
    Label2: TLabel;
    ComboBoxTables: TComboBox;
    Label3: TLabel;
    ComboBoxColumns: TComboBox;
    ButtonInsert: TButton;
    ButtonCancel: TButton;
    ButtonRemoveFiles: TButton;
    LabelFileCount: TLabel;
    CheckBoxShowOnlyBlobs: TCheckBox;
    OpenDialog: TOpenDialog;
    LargeImages: TImageList;
    SmallImages: TImageList;
    ButtonClearList: TButton;
    GroupBox1: TGroupBox;
    ListBoxOtherFields: TListBox;
    CheckBoxQuote: TCheckBox;
    Label4: TLabel;
    ComboBoxValue: TComboBox;
    Label5: TLabel;
    procedure FormShow(Sender: TObject);
    procedure ComboBoxDBsChange(Sender: TObject);
    procedure ComboBoxTablesChange(Sender: TObject);
    procedure ButtonCancelClick(Sender: TObject);
    procedure Modified;
    procedure ButtonAddFilesClick(Sender: TObject);
    procedure ListViewFilesClick(Sender: TObject);
    procedure ButtonRemoveFilesClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ButtonClearListClick(Sender: TObject);
    procedure DisplayColumns(Sender: TObject);
    procedure ComboBoxColumnsChange(Sender: TObject);
    procedure ListViewFilesKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ListBoxOtherFieldsClick(Sender: TObject);
    procedure FieldChange(Sender: TObject);
    procedure ButtonInsertClick(Sender: TObject);
    procedure ListViewFilesDblClick(Sender: TObject);
    procedure addfile(filename: String);
    procedure ListViewFilesChange(Sender: TObject; Item: TListItem;
      Change: TItemChange);

  private
    { Private declarations }
  public
    { Public declarations }
    cols : Array of TCol;
    procedure AcceptFiles( var msg : TMessage ); message WM_DROPFILES;
  end;


var
  frmInsertFiles: TfrmInsertFiles;

implementation

uses main, childwin, insertfiles_progress, helpers;

{$R *.DFM}


{ FormShow }
procedure TfrmInsertFiles.FormShow(Sender: TObject);
var
  tn : TTreeNode;
  i : Integer;
begin
  ComboBoxDBs.Items.Clear;
  with TMDIChild(Mainform.ActiveMDIChild) do begin
    self.Caption := ZConn.HostName + ' - Insert files into table ...';
    for i:=0 to DBTree.Items.Count-1 do begin
      tn := DBTree.Items[i];
      if tn.Level = 1 then
        ComboBoxDBs.Items.Add(tn.Text);
    end;

    for i:=0 to ComboBoxDBs.Items.Count-1 do
      if ComboBoxDBs.Items[i] = ActualDatabase then
        ComboBoxDBs.ItemIndex := i;

    if ComboBoxDBs.ItemIndex = -1 then
      ComboBoxDBs.ItemIndex := 0;

  end;
  ComboBoxDBsChange(self);
end;


{ Read tables from selected DB }
procedure TfrmInsertFiles.ComboBoxDBsChange(Sender: TObject);
var
  tn, child : TTreeNode;
  i,j : Integer;
begin
  // read tables from db
  ComboBoxTables.Items.Clear;
  with TMDIChild(Mainform.ActiveMDIChild) do begin
    for i:=0 to DBTree.Items.Count-1 do
    begin
      tn := DBTree.Items[i];
      if tn.Text = ComboBoxDBs.Text then
      begin
        child := tn.getFirstChild;
        for j:=0 to tn.Count-1 do
        begin
          ComboBoxTables.Items.Add(child.Text);
          child := tn.getNextChild(child);
        end;
      end;
    end;
  end;
  if ComboBoxTables.Items.Count > 0 then
    ComboBoxTables.ItemIndex := 0;
  ComboBoxTablesChange(self);
end;

{ Show Columns from selected table }
procedure TfrmInsertFiles.ComboBoxTablesChange(Sender: TObject);
var i : Integer;
begin
  setlength(cols, 0);
  if ComboBoxTables.ItemIndex > -1 then
    with TMDIChild(Mainform.ActiveMDIChild) do
    begin
      GetResults('SHOW FIELDS FROM '+mainform.mask(ComboBoxDBs.Text)+'.'+mainform.mask(ComboBoxTables.Text), ZQuery3);
      for i:=1 to ZQuery3.RecordCount do
      begin
        setlength(cols, length(cols)+1);
        cols[length(cols)-1].Name := ZQuery3.Fields[0].AsString;
        cols[length(cols)-1].isBLOB := (pos('blob', lowercase(ZQuery3.Fields[1].AsString)) > 0) or (pos('text', lowercase(ZQuery3.Fields[1].AsString)) > 0);
        cols[length(cols)-1].Value := 'NULL';
        cols[length(cols)-1].Quote := false;
        ZQuery3.Next;
      end;
    end;
  DisplayColumns(self);
end;

{ display columns in combobox }
procedure TfrmInsertFiles.DisplayColumns(Sender: TObject);
var i : Integer;
  sel : String;
begin
  sel := ComboBoxColumns.Text;
  ComboBoxColumns.Items.Clear;
  for i:=0 to length(cols)-1 do begin
    if (CheckBoxShowOnlyBlobs.Checked and cols[i].isBLOB) or (not CheckBoxShowOnlyBlobs.Checked) then
      ComboBoxColumns.Items.Add(cols[i].Name)
  end;
  if ComboBoxColumns.Items.Count > 0 then begin
    if sel <> '' then
      ComboBoxColumns.ItemIndex := ComboBoxColumns.Items.IndexOf(sel);
    if ComboBoxColumns.ItemIndex = -1 then
      ComboBoxColumns.ItemIndex := 0;
  end;
  ComboBoxColumnsChange(self);
  Modified;
end;


{ Cancel! }
procedure TfrmInsertFiles.ButtonCancelClick(Sender: TObject);
begin
  close;
end;

{ buttons need to be checked for being enabled }
procedure TfrmInsertFiles.Modified;
begin
  ButtonInsert.Enabled := (ComboBoxColumns.ItemIndex > -1) and (ListViewFiles.Items.Count > 0);
end;


procedure TfrmInsertFiles.addfile(filename: String);
var
  li : TListItem;
  filesize, attrs: Integer;
  Info    : TSHFileInfo;
begin
  attrs := filegetattr(filename);
  if attrs and faDirectory <> 0 then exit;
  li := ListViewFiles.Items.Add;
  li.Caption := filename;
  filesize := ceil(_getfilesize(filename) / 1024);
  li.SubItems.Add(Format('%u', [filesize]));
  SHGetFileInfo(PChar(filename),0,Info,SizeOf(TSHFileInfo),SHGFI_SYSIconIndex or SHGFI_TYPENAME);
  li.ImageIndex:=Info.IIcon;
end;

{ Add file(s) to list }
procedure TfrmInsertFiles.ButtonAddFilesClick(Sender: TObject);
var
  i : Integer;
begin
  if OpenDialog.Execute then begin
    Screen.Cursor := crHourglass;
    ListViewFiles.Items.BeginUpdate;
    try
      for i:=0 to OpenDialog.Files.Count-1 do
        addfile(OpenDialog.Files[i]);
    finally
      ListViewFiles.Items.EndUpdate;
    end;
    ListViewFilesClick(self);
    Screen.Cursor := crDefault;
  end;
end;


{ files(s) have been (un)selected }
procedure TfrmInsertFiles.ListViewFilesClick(Sender: TObject);
var
   i: Integer;
   kbytes : Real;
begin
  ButtonRemoveFiles.Enabled := ListViewFiles.SelCount > 0;
  ButtonClearList.Enabled := ListViewFiles.Items.Count > 0;
  kbytes := 0;
  with LabelFileCount do begin
    for i:=0 to ListViewFiles.Items.Count-1 do
      if ListViewFiles.Items[i].SubItems.Count > 0 then
        kbytes := kbytes + strtointdef(ListViewFiles.Items[i].Subitems[0], 0);
    Caption := format('%u files, %.0n KB, %u files selected.', [ListViewFiles.Items.count, kbytes, ListViewFiles.selcount]);
  end;
  Modified;
end;

{ Remove one or more files from list }
procedure TfrmInsertFiles.ButtonRemoveFilesClick(Sender: TObject);
var
  i, lastdel : Integer;
begin
  Screen.Cursor := crHourglass;
  ListViewFiles.Items.BeginUpdate;
  for i:=ListViewFiles.Items.Count-1 downto 0 do
    if ListViewFiles.Items[i].Selected then begin
      ListViewFiles.Items[i].Delete;
      lastdel := i;
    end;
  ListViewFiles.Items.EndUpdate;
  if ListViewFiles.Items.count > lastdel then
    ListViewFiles.Selected := ListViewFiles.Items[lastdel]
  else if ListViewFiles.Items.count > 0 then
    ListViewFiles.Selected := ListViewFiles.Items[lastdel-1];
  ListViewFiles.SetFocus;
  ListViewFilesClick(self); // count files and (de-)activate buttons
  Screen.Cursor := crDefault;
end;


{ Run only once }
procedure TfrmInsertFiles.FormCreate(Sender: TObject);
var
 SysIL : uint;
 SFI   : TSHFileInfo;

begin
  LargeImages := TImageList.Create(MainForm);
  SysIL := SHGetFileInfo('', 0, SFI, SizeOf(SFI), SHGFI_SYSICONINDEX or SHGFI_LARGEICON);
  if SysIL <> 0 then begin
    LargeImages.Handle := SysIL;
    LargeImages.ShareImages := TRUE;
  end;
  SmallImages := TImageList.Create(MainForm);
  SysIL := SHGetFileInfo('', 0, SFI, SizeOf(SFI), SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
  if SysIL <> 0 then begin
    SmallImages.Handle := SysIL;
    SmallImages.ShareImages := TRUE;
  end;
  ListViewFiles.LargeImages:=LargeImages;
  ListViewFiles.SmallImages:=SmallImages;
  DragAcceptFiles( Handle , True );
end;



{ Clear list }
procedure TfrmInsertFiles.ButtonClearListClick(Sender: TObject);
begin
  Screen.Cursor := crHourglass;
  ListViewFiles.Items.BeginUpdate;
  ListViewFiles.Items.Clear;
  ListViewFiles.Items.EndUpdate;
  ListViewFilesClick(self);
  Screen.Cursor := crDefault;
end;

{ collect all other columns }
procedure TfrmInsertFiles.ComboBoxColumnsChange(Sender: TObject);
var i : Integer;
begin
  ListBoxOtherFields.Items.BeginUpdate;
  ListBoxOtherFields.Items.Clear;
  for i:=0 to length(cols)-1 do begin
    if ComboBoxColumns.Text <> cols[i].Name then
      ListBoxOtherFields.Items.Add(cols[i].Name);
  end;
  ListBoxOtherFields.Items.EndUpdate;
  ListBoxOtherFieldsClick(self);
end;

{ remove selected by pressing Delete }
procedure TfrmInsertFiles.ListViewFilesKeyUp(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if Key = VK_DELETE then
    ButtonRemoveFilesClick(self);
end;

{ other field selected => display value and quote }
procedure TfrmInsertFiles.ListBoxOtherFieldsClick(Sender: TObject);
var
  i : Integer;
  enable : Boolean;
begin
  enable := ListBoxOtherFields.ItemIndex > -1;
  ComboBoxValue.Enabled := enable;
  CheckBoxQuote.Enabled := enable;
  if not enable then exit;
  for i:=0 to length(cols)-1 do
    if ListBoxOtherFields.Items[ListBoxOtherFields.ItemIndex] = cols[i].Name then break;
  ComboBoxValue.Text := cols[i].Value;
  CheckBoxQuote.Checked := cols[i].Quote;
end;

{ store value and quote of field }
procedure TfrmInsertFiles.FieldChange(Sender: TObject);
var i : Integer;
begin
  if ListBoxOtherFields.ItemIndex = -1 then exit;
  for i:=0 to length(cols)-1 do
    if ListBoxOtherFields.Items[ListBoxOtherFields.ItemIndex] = cols[i].Name then break;
  cols[i].Value := ComboBoxValue.Text;
  cols[i].Quote := CheckBoxQuote.Checked;
end;

{ ok, let's rock! }
procedure TfrmInsertFiles.ButtonInsertClick(Sender: TObject);
begin
  frmInsertFilesProgress.ShowModal;
end;

{ Execute selected file }
procedure TfrmInsertFiles.ListViewFilesDblClick(Sender: TObject);
begin
  if ListViewFiles.Selected <> nil then
    shellexecute(0, 'open', pchar(ListViewFiles.Selected.Caption), nil, nil, SW_SHOWNORMAL);
end;

{ for file-dropping into listview }
procedure TfrmInsertFiles.AcceptFiles( var msg : TMessage );
const
  cnMaxFileNameLen = 255;
var
  i,
  nCount     : integer;
  acFileName : array [0..cnMaxFileNameLen] of char;
begin
  // find out how many files we're accepting
  Screen.Cursor := crHourglass;
  nCount := DragQueryFile( msg.WParam,
                           $FFFFFFFF,
                           acFileName,
                           cnMaxFileNameLen );

  // query Windows one at a time for the file name
  ListViewFiles.Items.BeginUpdate;
  try
    for i := 0 to nCount-1 do
    begin
      DragQueryFile( msg.WParam, i, acFileName, cnMaxFileNameLen );
      // do your thing with the acFileName
      // MessageBox( Handle, acFileName, '', MB_OK );
      addfile(acFileName);
    end;
  finally
    ListViewFiles.Items.EndUpdate;
    Screen.Cursor := crDefault;
  end;

  // let Windows know that you're done
  DragFinish( msg.WParam );
end;


procedure TfrmInsertFiles.ListViewFilesChange(Sender: TObject;
  Item: TListItem; Change: TItemChange);
begin
  ListViewFilesClick(self);
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人avav在线| 欧美亚洲尤物久久| 一本大道久久a久久综合婷婷| 91视频免费观看| 日韩精品一区二区三区在线| ●精品国产综合乱码久久久久 | 欧美电影免费观看高清完整版在 | 亚洲男女毛片无遮挡| 久久99最新地址| 在线观看日韩av先锋影音电影院| 久久综合狠狠综合久久综合88| 一区二区三区在线视频观看| 成人午夜电影网站| 久久一留热品黄| 麻豆91免费看| 3d动漫精品啪啪一区二区竹菊 | 午夜不卡在线视频| 99久久精品国产观看| 久久一区二区三区国产精品| 奇米精品一区二区三区在线观看 | 亚洲国产精品成人综合色在线婷婷 | 亚洲日本免费电影| 粉嫩久久99精品久久久久久夜| 欧美一区二区三区视频| 亚洲自拍偷拍综合| 日本久久一区二区三区| 国产精品成人免费在线| 高清shemale亚洲人妖| 精品国产百合女同互慰| 日本在线不卡一区| 91精品欧美福利在线观看| 亚洲成人午夜电影| 欧美精品在线观看播放| 亚洲妇女屁股眼交7| 91国产免费观看| 亚洲自拍偷拍麻豆| 欧美日韩免费视频| 日本欧美加勒比视频| 欧美大尺度电影在线| 毛片基地黄久久久久久天堂| 91精品国产手机| 精品中文字幕一区二区| 亚洲精品在线观看视频| 国产精品亚洲专一区二区三区| 久久天堂av综合合色蜜桃网| 国产精品资源站在线| 国产精品国产三级国产aⅴ无密码| 成人在线视频一区二区| 综合欧美一区二区三区| 欧美日韩一区二区三区四区| 日韩高清不卡在线| 26uuu另类欧美| 成人性视频网站| 136国产福利精品导航| 欧美视频在线观看一区| 奇米精品一区二区三区在线观看一 | 久久精品夜色噜噜亚洲aⅴ| 高清不卡在线观看| 亚洲一区二区欧美激情| 欧美电视剧免费全集观看| 国产成人av一区二区| 中文字幕一区二区日韩精品绯色| 日本久久电影网| 老司机精品视频一区二区三区| 国产拍揄自揄精品视频麻豆| 欧美影院精品一区| 精品一区二区三区蜜桃| 国产精品白丝在线| 欧美巨大另类极品videosbest | 欧美一区二区三区在线观看视频| 国产一区二区三区香蕉| 一区二区三区在线免费观看| 欧美精品久久99| 成人av小说网| 九九**精品视频免费播放| 亚洲欧美在线aaa| 日韩一区二区三区高清免费看看| 国产精品中文字幕日韩精品| 亚洲国产精品视频| 中文字幕精品在线不卡| 欧美一区二区三区系列电影| 91美女蜜桃在线| 国产精品一区二区无线| 丝袜a∨在线一区二区三区不卡| 亚洲国产高清在线观看视频| 欧美日本乱大交xxxxx| 国产白丝精品91爽爽久久| 亚洲va在线va天堂| 中文字幕一区二区三区精华液| 日韩欧美卡一卡二| 欧美日韩激情一区二区| 99久久久精品| 成人激情黄色小说| 国产一区二区三区| 毛片不卡一区二区| 丝袜美腿亚洲色图| 性久久久久久久久久久久| 中文字幕一区二区三区av| 国产婷婷精品av在线| 精品国产99国产精品| 欧美精品第一页| 欧美性猛片aaaaaaa做受| 99久久免费视频.com| 成人一区二区三区视频| 国产在线精品一区二区不卡了| 天天综合网 天天综合色| 一区二区三区四区视频精品免费 | 日韩二区三区四区| 亚洲日韩欧美一区二区在线| 国产精品视频你懂的| 日本一区二区成人在线| 国产精品国模大尺度视频| 国产精品美女久久久久aⅴ| 国产欧美日韩在线视频| 日本一二三四高清不卡| 国产精品久久久久aaaa樱花| 中文字幕免费不卡| 亚洲欧美激情一区二区| 亚洲精品免费在线观看| 亚洲综合丝袜美腿| 视频一区在线播放| 久久精品99久久久| 国产精品91一区二区| 国产黄色精品视频| 91视频.com| 欧美日韩中文精品| 欧美一区二区三区免费在线看| 欧美精品一二三| 欧美成人性福生活免费看| 精品人伦一区二区色婷婷| 欧美不卡一区二区三区四区| 欧美一级艳片视频免费观看| 欧美精品日韩综合在线| 粉嫩aⅴ一区二区三区四区| 成人免费视频国产在线观看| 懂色av中文字幕一区二区三区| 国产在线视频精品一区| 国产资源精品在线观看| 成人精品电影在线观看| 国产精品91一区二区| heyzo一本久久综合| 91在线无精精品入口| 成人av动漫网站| 欧美日韩精品免费观看视频 | 一本色道亚洲精品aⅴ| 在线视频你懂得一区| 欧美视频你懂的| 欧美久久久影院| 精品久久99ma| 91精品国产91久久综合桃花| 久久精品亚洲精品国产欧美kt∨| 国产欧美日韩不卡免费| 中文字幕在线观看不卡视频| 一区二区三区加勒比av| 性久久久久久久| 成人aa视频在线观看| 欧美亚洲综合另类| 精品久久人人做人人爰| 国产日韩影视精品| 天天综合日日夜夜精品| 国内成+人亚洲+欧美+综合在线| 粉嫩aⅴ一区二区三区四区| 色狠狠一区二区| 中文字幕免费一区| 天堂一区二区在线| 国产成人鲁色资源国产91色综| 91看片淫黄大片一级在线观看| 欧美大片一区二区| 亚洲精品写真福利| 久久99精品国产麻豆婷婷| 99免费精品视频| 欧美精品一区二区三区四区| 亚洲九九爱视频| 韩国理伦片一区二区三区在线播放| 成人听书哪个软件好| 精品免费视频.| 亚洲精品成人少妇| 国产一区二区三区综合| 欧美日韩情趣电影| 国产精品三级视频| 蜜桃av一区二区三区| 91精品办公室少妇高潮对白| 日韩欧美色综合| 美女看a上一区| 欧美三级一区二区| 国产精品久久一级| 国产真实乱对白精彩久久| 日韩小视频在线观看专区| 亚洲精品国产精品乱码不99| 国产成人免费在线视频| 欧美精品国产精品| 午夜不卡在线视频| 欧美系列日韩一区| 亚洲人成在线观看一区二区| 亚洲福利国产精品| 欧美日韩精品是欧美日韩精品| 最新热久久免费视频| 丁香桃色午夜亚洲一区二区三区| 欧美精品久久天天躁| 日韩激情视频网站|