2018-03-23 00:10:05 +00:00
|
|
|
{******************************************************************
|
|
|
|
|
|
|
|
JEDI-VCL Demo
|
|
|
|
|
|
|
|
Copyright (C) 2002 Project JEDI
|
|
|
|
|
|
|
|
Original author:
|
|
|
|
|
|
|
|
Contributor(s):
|
|
|
|
|
|
|
|
You may retrieve the latest version of this file at the JEDI-JVCL
|
|
|
|
home page, located at http://jvcl.delphi-jedi.org
|
|
|
|
|
|
|
|
The contents of this file are used with permission, subject to
|
|
|
|
the Mozilla Public License Version 1.1 (the "License"); you may
|
|
|
|
not use this file except in compliance with the License. You may
|
|
|
|
obtain a copy of the License at
|
|
|
|
http://www.mozilla.org/MPL/MPL-1_1Final.html
|
|
|
|
|
|
|
|
Software distributed under the License is distributed on an
|
|
|
|
"AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
|
|
|
implied. See the License for the specific language governing
|
|
|
|
rights and limitations under the License.
|
|
|
|
|
|
|
|
******************************************************************}
|
|
|
|
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
|
|
|
|
unit JvThumbnailChildFormU;
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
|
|
|
uses
|
|
|
|
Classes, SysUtils, Controls, Forms,
|
2018-03-23 23:59:33 +00:00
|
|
|
StdCtrls, ExtCtrls, FileCtrl, ComCtrls, ShellCtrls, Spin,
|
2018-03-23 00:10:05 +00:00
|
|
|
JvThumbImage, JvThumbNails, JvBaseThumbnail, JvExExtCtrls;
|
|
|
|
|
|
|
|
type
|
2018-03-23 18:57:52 +00:00
|
|
|
|
|
|
|
{ TJvThumbnailChildForm }
|
|
|
|
|
2018-03-23 00:10:05 +00:00
|
|
|
TJvThumbnailChildForm = class(TForm)
|
2018-03-23 19:44:39 +00:00
|
|
|
Bevel2: TBevel;
|
|
|
|
Panel1: TPanel;
|
2018-03-23 23:59:33 +00:00
|
|
|
SpinEdit1: TSpinEdit;
|
2018-03-23 00:10:05 +00:00
|
|
|
Splitter2: TSplitter;
|
|
|
|
Panel6: TPanel;
|
|
|
|
Splitter4: TSplitter;
|
|
|
|
ShellTreeView: TShellTreeView;
|
|
|
|
ShellListView: TShellListView;
|
|
|
|
Panel8: TPanel;
|
2018-03-23 19:44:39 +00:00
|
|
|
LblRed: TLabel;
|
|
|
|
LblGreen: TLabel;
|
|
|
|
LblBlue: TLabel;
|
|
|
|
LblContrast: TLabel;
|
2018-03-23 00:10:05 +00:00
|
|
|
REDBar: TTrackBar;
|
|
|
|
GreenBar: TTrackBar;
|
|
|
|
BlueBar: TTrackBar;
|
2018-03-23 19:44:39 +00:00
|
|
|
ContrastBar: TTrackBar;
|
|
|
|
BtnApply: TButton;
|
2018-03-23 00:10:05 +00:00
|
|
|
Panel10: TPanel;
|
|
|
|
FilterComboBox1: TFilterComboBox;
|
|
|
|
Panel7: TPanel;
|
|
|
|
Panel5: TPanel;
|
2018-03-23 19:44:39 +00:00
|
|
|
LblThumbTitle: TLabel;
|
2018-03-23 00:10:05 +00:00
|
|
|
CbAsButton: TCheckBox;
|
|
|
|
CbAutoLoad: TCheckBox;
|
|
|
|
CbMinimizeMem: TCheckBox;
|
|
|
|
GbTitlePlacement: TRadioGroup;
|
2018-03-23 19:44:39 +00:00
|
|
|
EdThumbTitle: TEdit;
|
|
|
|
GbThumbImage: TGroupBox;
|
2018-03-23 00:10:05 +00:00
|
|
|
BtnInvert: TButton;
|
|
|
|
Button5: TButton;
|
2018-03-23 19:44:39 +00:00
|
|
|
LblLightness: TLabel;
|
2018-03-23 00:10:05 +00:00
|
|
|
LightnessBar: TTrackBar;
|
|
|
|
BtnExit: TButton;
|
|
|
|
GbAngle: TRadioGroup;
|
2018-03-23 19:44:39 +00:00
|
|
|
ThumbNail: TJVThumbNail;
|
|
|
|
ThumbImage: TJvThumbImage;
|
|
|
|
procedure BtnApplyClick(Sender: TObject);
|
2018-03-23 00:10:05 +00:00
|
|
|
procedure ShellListViewChange(Sender: TObject);
|
|
|
|
procedure CbAsButtonClick(Sender: TObject);
|
|
|
|
procedure CbAutoLoadClick(Sender: TObject);
|
|
|
|
procedure CbMinimizeMemClick(Sender: TObject);
|
|
|
|
procedure GbTitlePlacementClick(Sender: TObject);
|
|
|
|
procedure Panel8Resize(Sender: TObject);
|
|
|
|
procedure BtnInvertClick(Sender: TObject);
|
|
|
|
procedure Button5Click(Sender: TObject);
|
2018-03-23 18:57:52 +00:00
|
|
|
procedure ShellTreeViewGetImageIndex(Sender: TObject; Node: TTreeNode);
|
2018-03-23 23:59:33 +00:00
|
|
|
procedure SpinEdit1Change(Sender: TObject);
|
2018-03-23 19:44:39 +00:00
|
|
|
procedure ThumbNailClick(Sender: TObject);
|
2018-03-23 00:10:05 +00:00
|
|
|
procedure Panel10Resize(Sender: TObject);
|
|
|
|
procedure FormShow(Sender: TObject);
|
|
|
|
procedure GbAngleClick(Sender: TObject);
|
|
|
|
public
|
|
|
|
procedure SetFileName(AFileName: String);
|
|
|
|
function GetFileName: String;
|
|
|
|
end;
|
|
|
|
|
|
|
|
var
|
|
|
|
JvThumbnailChildForm: TJvThumbnailChildForm;
|
|
|
|
|
|
|
|
implementation
|
|
|
|
|
|
|
|
{$R *.lfm}
|
|
|
|
|
2018-03-23 18:57:52 +00:00
|
|
|
uses
|
|
|
|
JvThumbnailDatamodule;
|
|
|
|
|
2018-03-23 19:44:39 +00:00
|
|
|
procedure TJvThumbnailChildForm.BtnApplyClick(Sender: TObject);
|
2018-03-23 00:10:05 +00:00
|
|
|
begin
|
2018-03-23 19:44:39 +00:00
|
|
|
ThumbImage.ChangeRGB(redbar.Position,greenbar.Position,bluebar.Position);
|
|
|
|
ThumbImage.Contrast(ContrastBar.Position);
|
|
|
|
ThumbImage.Lightness(LightnessBar.Position);
|
2018-03-23 00:10:05 +00:00
|
|
|
RedBar.Position := 0;
|
|
|
|
GreenBar.Position :=0;
|
|
|
|
BlueBar.Position := 0;
|
|
|
|
ContrastBar.Position := 0;
|
|
|
|
LightnessBar.Position := 0;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TJvThumbnailChildForm.ShellListViewChange(Sender: TObject);
|
|
|
|
var
|
|
|
|
fn: String;
|
|
|
|
begin
|
|
|
|
if ShellListView.Selected <> nil then begin
|
|
|
|
fn := ShellListView.GetPathFromItem(ShellListView.Selected);
|
2018-03-23 19:44:39 +00:00
|
|
|
ThumbNail.FileName := fn;
|
|
|
|
ThumbImage.Loadfromfile(fn);
|
2018-03-23 00:10:05 +00:00
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
2018-03-23 18:57:52 +00:00
|
|
|
procedure TJvThumbnailChildForm.ShellTreeViewGetImageIndex(Sender: TObject;
|
|
|
|
Node: TTreeNode);
|
|
|
|
begin
|
|
|
|
if Node.Level = 0 then
|
|
|
|
Node.ImageIndex := 0
|
|
|
|
else
|
|
|
|
Node.ImageIndex := 1;
|
|
|
|
end;
|
|
|
|
|
2018-03-23 23:59:33 +00:00
|
|
|
procedure TJvThumbnailChildForm.SpinEdit1Change(Sender: TObject);
|
|
|
|
begin
|
|
|
|
Thumbnail.Margin := SpinEdit1.Value;
|
|
|
|
end;
|
|
|
|
|
2018-03-23 00:10:05 +00:00
|
|
|
procedure TJvThumbnailChildForm.CbAsButtonClick(Sender: TObject);
|
|
|
|
begin
|
2018-03-23 19:44:39 +00:00
|
|
|
ThumbNail.Asbutton := CbAsButton.Checked;
|
2018-03-23 00:10:05 +00:00
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TJvThumbnailChildForm.CbAutoLoadClick(Sender: TObject);
|
|
|
|
begin
|
2018-03-23 19:44:39 +00:00
|
|
|
ThumbNail.AutoLoad := CbAutoLoad.Checked;
|
2018-03-23 00:10:05 +00:00
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TJvThumbnailChildForm.CbMinimizeMemClick(Sender: TObject);
|
|
|
|
begin
|
2018-03-23 19:44:39 +00:00
|
|
|
ThumbNail.MinimizeMemory := CbMinimizeMem.Checked;
|
2018-03-23 00:10:05 +00:00
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TJvThumbnailChildForm.GbTitlePlacementClick(Sender: TObject);
|
|
|
|
begin
|
2018-03-23 19:44:39 +00:00
|
|
|
ThumbNail.TitlePlacement := TTitlePos(GbTitlePlacement.ItemIndex);
|
2018-03-23 00:10:05 +00:00
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TJvThumbnailChildForm.Panel8Resize(Sender: TObject);
|
|
|
|
begin
|
|
|
|
RedBar.Width := panel8.ClientWidth;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TJvThumbnailChildForm.BtnInvertClick(Sender: TObject);
|
|
|
|
begin
|
2018-03-23 19:44:39 +00:00
|
|
|
ThumbImage.Invert;
|
2018-03-23 00:10:05 +00:00
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TJvThumbnailChildForm.Button5Click(Sender: TObject);
|
|
|
|
begin
|
2018-03-23 19:44:39 +00:00
|
|
|
ThumbImage.GrayScale;
|
2018-03-23 00:10:05 +00:00
|
|
|
end;
|
|
|
|
|
2018-03-23 19:44:39 +00:00
|
|
|
procedure TJvThumbnailChildForm.ThumbNailClick(Sender: TObject);
|
2018-03-23 00:10:05 +00:00
|
|
|
begin
|
2018-03-23 19:44:39 +00:00
|
|
|
if ThumbNail.FileName<>'' then
|
|
|
|
ThumbImage.Loadfromfile(ThumbNail.FileName);
|
2018-03-23 00:10:05 +00:00
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TJvThumbnailChildForm.Panel10Resize(Sender: TObject);
|
|
|
|
begin
|
|
|
|
filtercombobox1.Width := panel10.ClientWidth;
|
|
|
|
filtercombobox1.Height:= panel10.ClientHeight;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TJvThumbnailChildForm.FormShow(Sender: TObject);
|
|
|
|
begin
|
2018-03-23 19:44:39 +00:00
|
|
|
//ThumbImage.Picture.Free;
|
|
|
|
GbTitlePlacement.ItemIndex := integer(ThumbNail.titlePlacement);
|
|
|
|
GbAngle.ItemIndex := integer(ThumbImage.angle);
|
2018-03-23 23:59:33 +00:00
|
|
|
SpinEdit1.Value := Thumbnail.Margin;
|
2018-03-23 00:10:05 +00:00
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TJvThumbnailChildForm.GbAngleClick(Sender: TObject);
|
|
|
|
begin
|
2018-03-23 19:44:39 +00:00
|
|
|
ThumbImage.angle := TAngle(GbAngle.ItemIndex)
|
2018-03-23 00:10:05 +00:00
|
|
|
end;
|
|
|
|
|
|
|
|
function TJvThumbnailChildForm.GetfileName: String;
|
|
|
|
begin
|
|
|
|
Result := ShellListView.GetPathFromItem(ShellListView.Selected);
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TJvThumbnailChildForm.SetFileName(AFileName: String);
|
|
|
|
var
|
|
|
|
dir, fn: String;
|
2018-03-23 18:43:14 +00:00
|
|
|
item: TListItem;
|
2018-03-23 00:10:05 +00:00
|
|
|
begin
|
|
|
|
dir := ExtractFilePath(AFileName);
|
|
|
|
fn := ExtractFileName(AFileName);
|
|
|
|
if dir <> ShellListView.Root then
|
|
|
|
ShellTreeView.Path := dir;
|
2018-03-23 18:43:14 +00:00
|
|
|
item := ShellListView.Items.FindCaption(-0, fn, false, true, false);
|
|
|
|
ShellListView.Selected := item;
|
2018-03-23 00:10:05 +00:00
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
end.
|