home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 22
/
CD_ASCQ_22_0695.iso
/
win
/
prg
/
hotmap
/
frusamap.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1995-03-26
|
5KB
|
186 lines
unit Frusamap;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, VBXCtrl, Hotmap, StdCtrls, ExtCtrls, ColorGrd, Pict;
type
TUsaMap = class(TForm)
HotMap1: THotMap;
Memo1: TMemo;
ComboBox1: TComboBox;
ListBox1: TListBox;
GroupBox1: TGroupBox;
RgnColor: TColorGrid;
Label3: TEdit;
Label1: TEdit;
Button1: TButton;
Text2: TEdit;
BiPict1: TBiPict;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
RadioGroup1: TRadioGroup;
Edit1: TEdit;
Label2: TLabel;
Label4: TLabel;
Label5: TLabel;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure ComboBox1Click(Sender: TObject);
procedure HotMap1RegionMouseDown(Sender: TObject;
var RegionNum: Single; var Button: Integer);
procedure HotMap1RegionMouseOver(Sender: TObject;
var RegionNum: Single);
procedure Button1Click(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure RgnColorClick(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure FormShow(Sender: TObject);
private
OffsetX: Integer;
OffsetY: Integer;
{ Private declarations }
public
{ Public declarations }
end;
var
UsaMap: TUsaMap;
implementation
{$R *.DFM}
procedure TUsaMap.FormCreate(Sender: TObject);
var DtFl: TVBString;
n: Integer;
begin
Memo1.Text := 'Use USA map to learn about HotMap custom control. ';
Memo1.Text := Memo1.Text + 'Click anywhere on USA map. Choose a new Fill Style. ';
Memo1.Text := Memo1.Text + 'Select any state from ''Show State'' combobox. Try to resize the form. ';
Memo1.Text := Memo1.Text + 'Switch ''Color'' CheckBox and choose any color. ';
Memo1.Text := Memo1.Text + 'Switch ''Drag'' CheckBox and try to drag any region.';
DtFl := 'USAMAP.HMD';
HotMap1.DataFile := DtFl;
HotMap1.Action := 4;
{ DtFl := 'USAMAP.BMP';
HotMap1.BmpName := DtFl;
}
Edit1.Text := IntToStr(HotMap1.NumOfRgns);
For n := 0 To (HotMap1.NumOfRgns - 1) Do
ComboBox1.Items.Add(HotMap1.RegionString[n]);
end;
procedure TUsaMap.ComboBox1Click(Sender: TObject);
var n: Integer;
begin
For n := 0 To (HotMap1.NumOfRgns - 1) Do
begin
If ComboBox1.Text = HotMap1.RegionString[n] Then
begin
HotMap1.CurrentRgn := (n + 1);
HotMap1.Action := 1;
Exit;
end;
end;
end;
procedure TUsaMap.HotMap1RegionMouseDown(Sender: TObject;
var RegionNum: Single; var Button: Integer);
var Rn: Integer;
begin
Rn := Round(RegionNum);
Label3.Text := IntToStr(Rn);
Case Rn of
0:
Label1.Text := '';
else
Label1.Text := HotMap1.RegionString[Rn - 1];
ListBox1.Items.Add(HotMap1.RegionString[Rn - 1]);
{If was clicked in CA then chang the cursor
If HotMap1.RegionString(RegionNum - 1) = "CA" Then
HotMap1.MouseCursor = Picture1;
Else
HotMap1.MouseCursor = Picture2;}
end;
end;
procedure TUsaMap.HotMap1RegionMouseOver(Sender: TObject;
var RegionNum: Single);
begin
Text2.Text := HotMap1.RegionString[Round(RegionNum) - 1];
end;
procedure TUsaMap.Button1Click(Sender: TObject);
begin
ListBox1.Clear
end;
procedure TUsaMap.RadioGroup1Click(Sender: TObject);
begin
HotMap1.FillType := RadioGroup1.ItemIndex;
end;
procedure TUsaMap.CheckBox2Click(Sender: TObject);
begin
HotMap1.DragAllowed := CheckBox2.Checked;
end;
procedure TUsaMap.CheckBox1Click(Sender: TObject);
begin
HotMap1.ColorMode := CheckBox1.Checked;
GroupBox1.Visible := CheckBox1.Checked;
end;
procedure TUsaMap.Button2Click(Sender: TObject);
var n: Integer;
begin
For n := 0 To (HotMap1.NumOfRgns - 1) Do
HotMap1.RegionColor[n] := RGB(Random(255), Random(255), Random(255));
{ HotMap1.RegionColor[n] := Random($FFFFFF + 1);
HotMap1.RegionColor[n] := Color(Random(256);}
end;
procedure TUsaMap.RgnColorClick(Sender: TObject);
var I, Code: Integer;
begin
Val(Label3.Text, I, Code);
if I > 0 then
HotMap1.RegionColor[I - 1] := RgnColor.ForegroundColor;
end;
procedure TUsaMap.FormResize(Sender: TObject);
begin
If self.WindowState <> wsMinimized Then
{Do not let user to make to small picture, to avoid loosing scaling}
If ((self.Width - OffsetX) > 50) And ((self.Height - OffsetY) > 50) Then
begin
HotMap1.Width := self.Width - OffsetX;
HotMap1.Height := self.Height - OffsetY;
end;
end;
procedure TUsaMap.FormShow(Sender: TObject);
begin
HotMap1.FillType := 3;
RadioGroup1.ItemIndex := 3;
HotMap1.MouseCursor := BiPict1.Picture;
HotMap1.MouseHotX := 19;
HotMap1.MouseHotY := 0;
OffsetX := (self.Width - HotMap1.Width);
OffsetY := (self.Height - HotMap1.Height);
end;
end.