⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainfrm.pas

📁 jvcl driver development envionment
💻 PAS
📖 第 1 页 / 共 2 页
字号:
begin
  Screen.Cursor := crHourGlass;
end;

procedure TfrmMain.BuildColorList;
var
  I, J: Cardinal;
begin
  // example of storing stuff in item's Data property
  ITV3.Count := $3FFF;
  Randomize;
  for I := 0 to $3FFE do
  begin
    J := ($3FFE - I) + 500;
    ITV3.Items[I].Data := Pointer(RGB(Random(J) mod 256, Random(J) mod 256, Random(J) mod 256));
  end;
end;

procedure TfrmMain.DoITV2MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Button = mbLeft then
  begin
    FDragIndex := ITV2.ItemAtPos(X, Y, True);
    if FDragIndex > -1 then
      ITV2.BeginDrag(False, 10);
  end;
  //  ITV2.Invalidate;
end;

procedure TfrmMain.DoITV2DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
//var
//  I: Integer;
begin
  Accept := Source = ITV2;
  //  I := ITV2.ItemAtPos(X, Y);
  //  if I > -1 then
  //    ITV2.SelectedIndex := I;
end;

procedure TfrmMain.DoITV2DragDrop(Sender, Source: TObject; X, Y: Integer);
var
  I: Integer;
begin
  I := ITV2.ItemAtPos(X, Y, False);
  if I >= ITV2.Images.Count then
    I := ITV2.Images.Count - 1;
  if (I > -1) and (I <> FDragIndex) then
    ITV2.Images.Move(FDragIndex, I);
  ITV2.SelectedIndex := I;
end;

procedure TfrmMain.Reload1Click(Sender: TObject);
begin
  if ITV.SelectedIndex >= 0 then
  begin
    ITV.Items[ITV.SelectedIndex].Picture := nil;
    ITV.Invalidate;
  end;
end;

procedure TfrmMain.DoITVDblClick(Sender: TObject);
begin
  Viewfrompicture1Click(Sender);
end;

procedure TfrmMain.ViewItem(Item: TJvPictureItem; LoadFromFile: Boolean);
begin
  if LoadFromFile and FileExists(Item.FileName) then
    TfrmImageViewer.View(Item.FileName, ITV.Options.Transparent, ITV.Color)
  else
    TfrmImageViewer.View(Item.Picture, ITV.Options.Transparent, ITV.Color);
end;

procedure TfrmMain.Viewfromfile1Click(Sender: TObject);
var
  Item: TJvPictureItem;
begin
  if ITV.Focused and (ITV.SelectedIndex >= 0) then
  begin
    Item := ITV.Items[ITV.SelectedIndex];
    ViewItem(Item, True);
  end;
end;

procedure TfrmMain.Viewfrompicture1Click(Sender: TObject);
var
  Item: TJvPictureItem;
begin
  if ITV.Focused and (ITV.SelectedIndex >= 0) then
  begin
    Item := ITV.Items[ITV.SelectedIndex];
    ViewItem(Item, False);
  end;
end;

procedure TfrmMain.DoITVLoadProgress(Sender: TObject; Item: TJvPictureItem;
  Stage: TProgressStage; PercentDone: Byte; RedrawNow: Boolean;
  const R: TRect; const Msg: string);
begin
  if PercentDone >= 100 then
    StatusBar1.Panels[1].Text := ''
  else
    StatusBar1.Panels[1].Text := Format(' Loading "%s", %d%% done...', [Item.FileName, PercentDone]);
  StatusBar1.Update;
end;

procedure TfrmMain.DoITVLoadEnd(Sender: TObject);
var
  I: Integer;
begin
  Screen.Cursor := crDefault;
  pgViewersChange(Sender);
  for I := 0 to ITV.Count - 1 do
    if Assigned(ITV.Items[I].Picture) and Assigned(ITV.Items[I].Picture.Graphic) and
      (ITV.Items[I].Picture.Graphic is TJvAni) then
      TJvAni(ITV.Items[I].Picture.Graphic).Animated := True;
end;

procedure EnableControls(AControl: TControl; Enable: Boolean);
var
  I: Integer;
begin
  AControl.Enabled := Enable;
  if AControl is TWinControl then
    for I := 0 to TWinControl(AControl).ControlCount - 1 do
      EnableControls(TWinControl(AControl).Controls[I], Enable);
end;

procedure TfrmMain.pgViewersChange(Sender: TObject);
begin
  case pgViewers.ActivePageIndex of
    0:
      begin
        EnableControls(pnlSettings, True);
        Statusbar1.Panels[1].Text := ' Double-click to view full size, right-click for popup menu';
        AInspector.InspectObject := ITV;
      end;
    1:
      begin
        EnableControls(pnlSettings, False);
        Statusbar1.Panels[1].Text := ' Drag and drop images to rearrange';
        AInspector.InspectObject := ITV2;
      end;
    2:
      begin
        EnableControls(pnlSettings, False);
        Statusbar1.Panels[1].Text := ' Click color square to see its color value in status bar';
        AInspector.InspectObject := ITV3;
      end;
  end;
end;

procedure TfrmMain.DoITV3Click(Sender: TObject);
begin
  if (ITV3.SelectedIndex >= 0) and (ITV3.SelectedIndex < ITV3.Count) then
    StatusBar1.Panels[0].Text := ColorToString(TColor(ITV3.Items[ITV3.SelectedIndex].Data));
end;

procedure TfrmMain.DoITV2GetCaption(Sender: TObject; ImageIndex: Integer;
  var ACaption: WideString);
begin
  if ITV2.Options.ShowCaptions then
  begin
    if Odd(ImageIndex) then
      ACaption := Format('#%d', [ImageIndex])
    else
      ACaption := Format('$%x', [ImageIndex])
  end;
end;

procedure TfrmMain.edDirectoryChange(Sender: TObject);
begin
  if DirectoryExists(edDirectory.Text) then
    btnUpdate.Click;
end;

procedure TfrmMain.Rename1Click(Sender: TObject);
var
  S: string;
  AItem: TJvPictureItem;
begin
  if ITV.SelectedIndex < 0 then
    Exit;
  AItem := ITV.Items[ITV.SelectedIndex];
  S := AItem.FileName;
  if InputQuery('Rename', 'New name', S) and not AnsiSameText(AItem.FileName, S) then
  begin
    S := ExpandUNCFileName(S);
    if RenameFile(ITV.ITems[ITV.SelectedIndex].FileName, S) then
    begin
      AItem.FileName := S;
      AItem.Caption := ExtractFileName(S);
    end
    else
      ShowMessage('Could not rename file!');
  end;
end;

procedure TfrmMain.Delete1Click(Sender: TObject);
var
  AItem: TJvPictureItem;
begin
  if ITV.SelectedIndex < 0 then
    Exit;
  if MessageDlg('Are you sure you want to delete the selected file?',
    mtConfirmation, [mbYes, mbNo], 0) = mrYEs then
  begin
    AItem := ITV.Items[ITV.SelectedIndex];
    if not DeleteFile(AItem.FileName) then
      ShowMessage('Could not delete the file!')
    else
      AItem.Delete;
  end;
end;

procedure TfrmMain.chkDisconnectClick(Sender: TObject);
begin
  if chkDisconnect.Checked then
  begin
    AInspector.InspectObject := nil;
    AInspector.Visible := False;
  end
  else
  begin
    AInspector.Visible := True;
    pgViewersChange(Sender);
  end;
end;

procedure TfrmMain.SetDisplayDragImage(AControl: TControl);
var
  I: Integer;
begin
  AControl.ControlStyle := AControl.ControlStyle + [csDisplayDragImage];
  if AControl is TWinControl then
    for I := 0 to TWinControl(AControl).ControlCOunt - 1 do
      SetDisplayDragImage(TWinControl(AControl).Controls[I]);
end;

procedure TfrmMain.SelectAll1Click(Sender: TObject);
begin
  ITV.SelectAll;
end;


procedure TfrmMain.DoITV3ItemHint(Sender: TObject; Index: Integer;
  var HintInfo: THintInfo; var Handled: Boolean);
var
  AColor: TColor;
begin
  AColor := TColor(ITV3.Items[Index].Data);
  HintInfo.HintColor := AColor;
  HintInfo.HintStr := ColorToString(AColor);
  Handled := true;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -