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

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

?? customctrls.pas

?? Clock 桌面時鐘 日歷 陰歷 看到的delphi程序 轉發
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
  SetCapture(PL.Handle);
End;

Procedure TPicturePanel.PLMouseUp(Sender: TObject; Button: TMouseButton; Shift:
  TShiftState; X, Y: Integer);
Begin
  ReleaseCapture;
  FCaptured := false;
End;

Procedure TPicturePanel.CopyBitmap(src: TBitmap);
Begin
  AssignedIcon := src <> Nil;

  If Not AssignedIcon Then
    exit;

  Icon.FreeImage;
  Icon.Canvas.StretchDraw(Rect(0, 0, 153, 111), src);

  Src.Free;
  Invalidate;
End;

Procedure TPicturePanel.MouseDown(Button: TMouseButton; Shift: TShiftState; X,
  Y: Integer);
Begin
  Inherited;
End;

Procedure TPicturePanel.MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y:
  Integer);
Begin
  Inherited;
End;

Constructor TGraphicPanel.Create(AOwner: TComponent);
Begin
  Inherited;
  Bmp := TBitmap.Create;

  BevelOuter := bvNone;
  BevelInner := bvNone;

End;

Destructor TGraphicPanel.Destroy;
Begin
  Bmp.Free;
  Inherited;
End;

Procedure TGraphicPanel.Paint;
Var
  Rt: TRect;
Begin
  Inherited;

  If HandleAllocated And Not Bmp.Empty Then
  Begin
    Rt := ClientRect;
    Brush.Style := bsClear;

    Canvas.BrushCopy(Rt, Bmp, Rt, Bmp.Canvas.Pixels[0, 0]);
  End;
End;

Procedure TIconPanel.SetBitmap(Value: TBitmap);
Begin
  If Value <> Nil Then
    Bmp.Assign(Value);
End;

Procedure TPicThread.Execute;
Var
  sr: TSearchRec;
  Ext, s: String;
  f: Boolean;
Begin
  s := IncludeTrailingPathDelimiter(Path);
  f := True;
  If DirectoryExists(s) And Assigned(picBox) Then
  Begin
    If FindFirst(s + '*.*.', faArchive Or faReadOnly, sr) = 0 Then
    Begin
      f := False;
      Repeat
        Ext := ExtractFileExt(sr.Name);
        If AnsiSameText(Ext, '.jpg') Or AnsiSameText(Ext, '.jpeg') Or
          AnsiSameText(Ext, '.bmp') Then
        Begin
          AddFileName(picBox, s + sr.Name);
          Application.ProcessMessages;
        End;
      Until Terminated Or Application.Terminated Or (FindNext(sr) <> 0);
      FindClose(sr);
    End;
  End;

  If f Then
    picBox.FindOver;

End;

Constructor TPicThread.Create(aBox: TPictureListBox; aPath: String);
Begin
  Inherited Create(False);
  Path := aPath;
  picBox := aBox;

  FreeOnTerminate := True;
End;

Procedure TPictureListBox.AddFile(FileName: String);
Var
  aData: TPicData;
Begin
  If Not IsValidFile(FileName) Then
    exit;

  aData := TPicData.Create; //
  FObjList.Add(aData);

  GetPrevIcon(FileName, aData);

  Items.AddObject(FileName, aData);
End;

Procedure TPictureListBox.OpenPath(s: String);
Begin
  PostMessage(frmMain.Handle, WM_OPENFILEBEGIN, 0, 0);

  Clear;
  Images.Clear;

  TPicThread.Create(Self, s);

End;

Constructor TPictureListBox.Create(AOwner: TComponent);
Begin
  Inherited;
  FPreviewIcon := True;
  FUpdateCount := 0;

  ControlStyle := ControlStyle + [csOpaque];
  BorderStyle := bsNone;
  BevelInner := bvSpace;
  BevelKind := bkFlat;
  BevelOuter := bvLowered;

  FObjList := TList.Create;

  Images := TImageList.Create(self);
  With Images Do
  Begin
    Height := DEFAULTSIZE;
    Width := DEFAULTSIZE;
  End;

  Bitmap := Tbitmap.Create;
  Bitmap.LoadFromResourceID(hinstance, 4000);

  BorderSize := 2;
  ItemHeight := DEFAULTSIZE + 2 * BorderSize;

  Style := lbOwnerDrawFixed;

  Height := 210;
  Width := 300;

End;

Destructor TPictureListBox.Destroy;
Var
  i: Integer;
Begin
  For i := 0 To FObjList.Count - 1 Do
    TObject(FObjList[i]).Free;

  FObjList.Free;
  Images.Free;
  Bitmap.Free;

  Inherited Destroy;
End;

Procedure TPictureListBox.Clear;
Var
  i: Integer;
Begin
  For i := 0 To FObjList.Count - 1 Do
    TObject(FObjList[i]).Free;

  FObjList.Clear;

  Inherited Clear;
End;

Procedure TPictureListBox.DrawItem(Index: Integer; Rect: TRect; State:
  TOwnerDrawState);
Var
  l: integer;
  aData: TPicData;
Begin
  If (FUpdateCount > 0) Or (index >= Items.Count) Or
    Not RectVisible(Canvas.Handle, Rect) Then
    Exit;

  l := BorderSize + Rect.Top;

  Canvas.FillRect(Rect);

  aData := Items.Objects[index] As TPicData;

  If FPreviewIcon Then
  Begin
    If (aData.ImageIndex = -1) Or (aData.ImageIndex > Images.Count - 1) Then
      canvas.BrushCopy(Bounds(BorderSize, l, DEFAULTSIZE, DEFAULTSIZE),
        Bitmap, Bounds(0, 0, DEFAULTSIZE, DEFAULTSIZE), clblack)
    Else
      Images.Draw(Canvas, BorderSize, l, aData.ImageIndex);
  End
  Else
  Begin
    Canvas.BrushCopy(Bounds(BorderSize, l, DEFAULTSIZE, DEFAULTSIZE),
      Bitmap, Bounds(0, 0, DEFAULTSIZE, DEFAULTSIZE), clblack);
  End;

  With Canvas Do
  Begin
    TextOut(DEFAULTSIZE + 2 * BorderSize, l, Items[index]);
    Inc(l, TextHeight('H'));

    TextOut(DEFAULTSIZE + 2 * BorderSize, l, 'Width  : ' +
      IntToStr(aData.Width) + ' Pixels');

    Inc(l, TextHeight('H'));

    TextOut(DEFAULTSIZE + 2 * BorderSize, l, 'Height : ' +
      IntToStr(aData.Height) + ' Pixels');
  End;

End;

Procedure TPictureListBox.SetBorderSize(Value: Integer);
Begin
  If FBorderSize <> Value Then
  Begin
    FBorderSize := Value;
    Invalidate;
  End;
End;

Procedure TPictureListBox.SetPreviewIcon(Value: Boolean);
Begin
  If FPreviewIcon <> Value Then
  Begin
    FPreviewIcon := Value;

    If Not FPreviewIcon Then
      Images.Clear;

    Invalidate;
  End;
End;

Procedure TPictureListBox.GetPrevIcon(AName: String; aData: TPicData);
Var
  bmp, tmp: TBitmap;
  h, w, h1, w1: Integer;
  hw: Extended;
  f: Boolean;
Begin
  If Not IsValidFile(AName) Then
    exit;

  tmp := GetBitmap(AName);

  f := tmp = Nil;
  If f Then
    tmp := Bitmap;

  bmp := TBitmap.Create;
  With bmp Do
  Begin
    Width := DEFAULTSIZE;
    Height := DEFAULTSIZE;
  End;

  Application.ProcessMessages;

  hw := DEFAULTSIZE / Max(tmp.Height, tmp.Width);

  w := trunc(hw * tmp.Width);
  h := trunc(hw * tmp.Height);

  h1 := (DEFAULTSIZE - h) Div 2;
  w1 := (DEFAULTSIZE - w) Div 2;

  bmp.Canvas.StretchDraw(Rect(w1, h1, w1 + w, h1 + h), tmp);

  Images.Add(bmp, Nil);

  aData.Width := tmp.Width;
  aData.Height := tmp.Height;
  aData.ImageIndex := Images.Count - 1;

  If Not f Then
    tmp.Free;

  bmp.Free;

End;

Procedure TPictureListBox.BeginUpdate;
Begin
  inc(FUpdateCount);
End;

Procedure TPictureListBox.EndUpdate;
Begin
  dec(FUpdateCount);

  If FUpdateCount < 0 Then
    FUpdateCount := 0;

  If FUpdateCount = 0 Then
    Invalidate;
End;

Procedure TPictureListBox.FindOver;
Begin
  Postmessage(frmMain.Handle, WM_OPENFILEOVER, 0, 0);
End;

Procedure TPictureListBox.FindNext;
Begin
  SendMessage(frmMain.Handle, WM_OPENFILENEXT, 0, 0);
End;

Procedure TUpdateThread.Execute;
Begin
  Name := GetFileName;
  While (Name <> '') And (Not Terminated) Do
  Begin
    If Application.Terminated Then
      Break;

    Synchronize(UpdateBox);
    Sleep(5);
    Name := GetFileName;
  End;

  InterlockedDecrement(FileThrdCount);

  If FileThrdCount <= 0 Then
  Begin
    FileThrdCount := 0;
    picBox.FindOver;
  End;

End;

Constructor TUpdateThread.Create(aBox: TPictureListBox);
Begin
  Inherited Create(False);
  picBox := aBox;
  FreeOnTerminate := True;
End;

Procedure TUpdateThread.UpdateBox;
Begin
  Application.ProcessMessages;

  If Application.Terminated Then
    Exit;

  picBox.AddFile(Name);
  picBox.FindNext;
End;

Initialization
  FileList := TStringList.Create;
  FileListMutex := TMutex.Create('File_Mutex_' + FormatDateTime('hh:mm:ss:zzz',
    Now));

Finalization

  FileList.Free;
  FileListMutex.Free;
End.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人app在线观看| 国产精品一区二区无线| 丝袜美腿亚洲综合| 免费在线观看精品| 精品亚洲成a人| youjizz久久| 91麻豆精品国产无毒不卡在线观看 | 国产在线国偷精品产拍免费yy| 成人黄色av电影| 欧美一区二区视频在线观看2022| 国产精品三级av| 美女任你摸久久| 欧美性色欧美a在线播放| 精品国偷自产国产一区| 亚洲第一福利一区| 色香色香欲天天天影视综合网| 91精品福利在线一区二区三区| 中文字幕精品在线不卡| 欧美精品电影在线播放| 欧美一区日本一区韩国一区| 国产精品麻豆久久久| 日本三级韩国三级欧美三级| 91浏览器在线视频| 国产精品久久久久影院色老大| 国产一区二区三区av电影| 欧美嫩在线观看| 艳妇臀荡乳欲伦亚洲一区| 丰满白嫩尤物一区二区| 精品国产乱码久久久久久1区2区 | 欧美一区二区三区四区视频| 亚洲日本一区二区| 99久久久免费精品国产一区二区| 国产欧美一区视频| 本田岬高潮一区二区三区| 国产蜜臀av在线一区二区三区| 国内精品视频一区二区三区八戒 | 秋霞电影网一区二区| 国产精品99久久久久久久女警| 制服.丝袜.亚洲.中文.综合| 一区二区三区国产精华| 色婷婷久久久综合中文字幕| 国产精品三级电影| 成人性视频免费网站| 亚洲欧洲日本在线| 成人一区二区三区| ㊣最新国产の精品bt伙计久久| 国产成人在线视频播放| 久久午夜电影网| 成人在线视频首页| 欧美激情一区二区三区不卡| 丁香婷婷综合五月| 久久久不卡网国产精品二区| 狠狠色丁香久久婷婷综| 欧美精品一区二区在线播放| 国产黑丝在线一区二区三区| 国产精品美女一区二区三区| 在线观看不卡一区| 免费不卡在线视频| 色婷婷精品大视频在线蜜桃视频| 日韩av一区二区三区| 久久综合狠狠综合| 在线中文字幕一区二区| 久久国产精品99精品国产| 国产欧美日韩卡一| 欧美老女人第四色| 成人一级视频在线观看| 性感美女极品91精品| 国产精品欧美综合在线| 欧美精品自拍偷拍动漫精品| 成人av在线资源网| 麻豆成人久久精品二区三区红 | 亚洲丝袜精品丝袜在线| 日韩丝袜情趣美女图片| 欧美午夜一区二区三区免费大片| 国产真实乱子伦精品视频| 午夜欧美在线一二页| 国产精品成人午夜| 在线精品视频小说1| 91香蕉视频污在线| 91小视频免费观看| 成人晚上爱看视频| 成人午夜看片网址| 国产一区二区视频在线| 免费在线观看一区二区三区| 日韩在线一区二区三区| 欧美理论片在线| 麻豆91在线观看| 精品一区免费av| 精品一区二区免费在线观看| 日韩成人精品在线观看| 日本系列欧美系列| 美国毛片一区二区| 国产一区二区成人久久免费影院 | 青青草精品视频| 亚洲一区二区五区| 日韩成人精品视频| 久草在线在线精品观看| 国产精品资源在线观看| av电影在线观看一区| 91色视频在线| 欧美一区二区三区视频免费播放| 日韩一级完整毛片| 国产精品乱码人人做人人爱 | 国产制服丝袜一区| 91蝌蚪porny| 91精品欧美福利在线观看| 国产亚洲综合在线| 一区二区视频免费在线观看| 亚洲成人免费视频| 国产精品亚洲视频| 欧美网站大全在线观看| 久久久久久亚洲综合影院红桃| 国产精品第一页第二页第三页| 亚洲人吸女人奶水| 丁香六月久久综合狠狠色| 欧美体内she精高潮| 中文字幕不卡的av| 亚洲超丰满肉感bbw| 97久久超碰国产精品| 日韩一区二区精品| 午夜av电影一区| 国产成人午夜99999| 亚洲精品在线观看视频| 免费在线看成人av| 欧美日韩国产一二三| 亚洲欧美激情在线| 成人动漫在线一区| 国产人成亚洲第一网站在线播放 | 成人自拍视频在线观看| 欧美xingq一区二区| 全国精品久久少妇| 欧美一区二区三区小说| 欧美aⅴ一区二区三区视频| 日本乱码高清不卡字幕| 亚洲美女一区二区三区| 在线免费观看日韩欧美| 亚洲精品一二三| 欧美日韩国产系列| 美女视频免费一区| 久久亚洲精品小早川怜子| 日本不卡一二三| 久久伊人中文字幕| 成人激情综合网站| 亚洲国产婷婷综合在线精品| 欧美日韩亚洲不卡| 日韩av不卡一区二区| 欧美精品一区在线观看| 91网页版在线| 日韩精品福利网| 久久久综合精品| 在线观看一区不卡| 久久99久久久久久久久久久| 久久伊人蜜桃av一区二区| 国产成人在线免费观看| 图片区小说区国产精品视频| 亚洲精品一区二区精华| 日本道精品一区二区三区| 蜜桃av一区二区在线观看| 国产精品天美传媒| 久久精品在线免费观看| 亚洲欧洲制服丝袜| 国产成人免费视频网站 | 国产精品国产三级国产aⅴ中文 | 中文字幕精品在线不卡| 91丝袜高跟美女视频| 国产米奇在线777精品观看| 国产精品情趣视频| 欧美精品久久天天躁| 国产成人精品免费在线| 亚洲一级二级三级在线免费观看| 国产日产欧美一区二区视频| 欧美一区二区三区人| 色猫猫国产区一区二在线视频| 激情综合网天天干| 天天综合网 天天综合色| 亚洲精品成a人| 亚洲日本在线看| 五月婷婷综合网| 亚洲电影一级片| 天天综合天天综合色| 亚洲主播在线观看| 亚洲不卡在线观看| 五月天网站亚洲| 麻豆视频一区二区| 亚洲综合视频在线观看| 亚洲国产综合在线| 亚洲线精品一区二区三区| 欧美国产日韩亚洲一区| 一区二区不卡在线视频 午夜欧美不卡在| www成人在线观看| 国产精品萝li| 亚洲最大色网站| 另类欧美日韩国产在线| 国产精品一区二区三区99| 99久久伊人久久99| 欧美视频中文字幕| 2023国产精品视频| 17c精品麻豆一区二区免费| 亚洲四区在线观看| 韩国欧美国产1区|