unit umain; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ieview, imageenview, ExtCtrls, Menus, histogrambox, StdCtrls, Buttons; type TMainForm = class(TForm) Panel1: TPanel; ImageEnView1: TImageEnView; HistogramBoxGray: THistogramBox; Label1: TLabel; Label2: TLabel; HistogramBoxRed: THistogramBox; Label3: TLabel; HistogramBoxGreen: THistogramBox; Label4: TLabel; HistogramBoxBlue: THistogramBox; Panel2: TPanel; SpeedButton1: TSpeedButton; SpeedButton2: TSpeedButton; SpeedButton3: TSpeedButton; Button1: TButton; Button2: TButton; lblHue: TLabel; HistogramBoxHue: THistogramBox; procedure FormCreate(Sender: TObject); procedure ImageEnView1SelectionChange(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); procedure SpeedButton2Click(Sender: TObject); procedure SpeedButton3Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } procedure UpdateHistograms; public { Public declarations } end; var MainForm: TMainForm; implementation uses ushowdata; {$R *.DFM} {$R WindowsTheme.res} procedure TMainForm.FormCreate(Sender: TObject); begin HistogramBoxGray .AttachedImageEnProc := ImageEnView1.Proc; HistogramBoxRed .AttachedImageEnProc := ImageEnView1.Proc; HistogramBoxGreen.AttachedImageEnProc := ImageEnView1.Proc; HistogramBoxBlue .AttachedImageEnProc := ImageEnView1.Proc; HistogramBoxHue .AttachedImageEnProc := ImageEnView1.Proc; HistogramBoxGray .HistogramStyle := hsFilledLines; HistogramBoxRed .HistogramStyle := hsFilledLines; HistogramBoxGreen.HistogramStyle := hsFilledLines; HistogramBoxBlue .HistogramStyle := hsFilledLines; HistogramBoxHue .HistogramStyle := hsFilledLines; end; procedure TMainForm.ImageEnView1SelectionChange(Sender: TObject); begin UpdateHistograms(); end; // rectangle selection procedure TMainForm.SpeedButton1Click(Sender: TObject); begin if SpeedButton1.Down then ImageEnView1.MouseInteract:=[miSelect]; end; // ellipse selection procedure TMainForm.SpeedButton2Click(Sender: TObject); begin if SpeedButton2.Down then ImageEnView1.MouseInteract:=[miSelectCircle]; end; // polygon selection procedure TMainForm.SpeedButton3Click(Sender: TObject); begin if SpeedButton3.Down then ImageEnView1.MouseInteract:=[miSelectPolygon]; end; // Show Values procedure TMainForm.Button1Click(Sender: TObject); begin FShowValues.ShowModal; end; // Open procedure TMainForm.Button2Click(Sender: TObject); begin with ImageEnView1.IO do LoadFromFile( ExecuteOpenDialog('','',false,1,'') ); UpdateHistograms(); end; procedure TMainForm.UpdateHistograms; begin HistogramBoxGray.Update; HistogramBoxRed.Update; HistogramBoxGreen.Update; HistogramBoxBlue.Update; HistogramBoxHue.Update; end; end.