unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, RzBckgnd, StdCtrls, RzLabel, Grids, RzGrids, Hiscores, Mask,
RzEdit, RzButton, RSData;
type
TForm1 = class(TForm)
gridHiscores: TRzStringGrid;
lblTitle: TRzLabel;
hsLookup: THiscores;
strUsername: TRzEdit;
btnLookup: TRzToolButton;
cmdExit: TRzToolButton;
RzURLLabel1: TRzURLLabel;
procedure FormCreate(Sender: TObject);
procedure gridHiscoresDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure btnLookupClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure gridHiscoresSelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure gridHiscoresMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure lblTitleMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure cmdExitClick(Sender: TObject);
procedure strUsernameKeyPress(Sender: TObject; var Key: Char);
procedure getWidestText(grid: TRzStringGrid; col: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
const
skills: Array[0..21] of String = (
'Overall', 'Attack', 'Defence', 'Strength', 'Hitpoints',
'Ranged', 'Prayer', 'Magic', 'Cooking', 'Woodcutting',
'Fletching', 'Fishing', 'Firemaking', 'Crafting', 'Smithing',
'Mining', 'Herblore', 'Agility', 'Thieving', 'Slayer',
'Farming', 'Runecrafting' );
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
SetWindowRgn(Form1.Handle, CreateRoundRectRgn(0, 0, Form1.Width, Form1.Height, 6, 6), true);
end;
procedure TForm1.gridHiscoresDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
with gridHiscores.Canvas do begin
Brush.Color := gridHiscores.Color;
FillRect(Rect);
if (ARow = 0) or (ACol = 0) then
Font.Color := clBlack
else
Font.Color := clWhite;
TextOut(Rect.Left+(gridHiscores.ColWidths[ACol] div 2)-(TextWidth(gridHiscores.Cells[ACol, ARow]) div 2), Rect.Top+2, gridHiscores.Cells[ACol, ARow]);
end;
end;
procedure TForm1.btnLookupClick(Sender: TObject);
var
x: Integer;
begin
gridHiscores.RowCount := 1;
if hsLookup.Lookup(strUsername.text) then begin
gridHiscores.Cells[0, 0] := 'Skill';
gridHiscores.Cells[1, 0] := 'Level';
gridHiscores.Cells[2, 0] := 'Exp';
for x:=1 to hsLookup.Data.Count do begin
gridHiscores.RowCount := gridHiscores.RowCount+1;
gridHiscores.Cells[0, x] := hsLookup.Data.Stat[x-1].Skill;
gridHiscores.Cells[1, x] := hsLookup.Data.Stat[x-1].Level;
gridHiscores.Cells[2, x] := hsLookup.Data.Stat[x-1].Experience;
end;
getWidestText(gridHiscores, 0);
getWidestText(gridHiscores, 1);
getWidestText(gridHiscores, 2);
end;
end;
procedure TForm1.getWidestText(grid: TRzStringGrid; col: Integer);
var
i: Integer;
tmp: Integer;
begin
tmp := 0;
for i:= 0 to 23 do begin
if grid.Canvas.TextWidth(grid.Cells[col, i]) > tmp then
tmp := grid.Canvas.TextWidth(grid.Cells[col, i]);
end;
grid.ColWidths[col] := tmp+6;
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
strUsername.SetFocus;
end;
procedure TForm1.gridHiscoresSelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
strUsername.SetFocus;
end;
procedure TForm1.gridHiscoresMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
strUsername.SetFocus;
ReleaseCapture;
Perform(wm_SysCommand, $F012, 0);
end;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
Perform(wm_SysCommand, $F012, 0);
end;
procedure TForm1.lblTitleMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
Perform(wm_SysCommand, $F012, 0);
end;
procedure TForm1.cmdExitClick(Sender: TObject);
begin
Application.Terminate;
end;
procedure TForm1.strUsernameKeyPress(Sender: TObject; var Key: Char);
begin
if ord(Key) = 13 then
btnLookup.Click;
end;
end.