📄 fobj.pas
字号:
unit FObj;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, StdCtrls, ExtCtrls, HUtil32;
type
TFrmObj = class(TForm)
ObjGrid: TDrawGrid;
Panel1: TPanel;
CbWilIndexList: TComboBox;
procedure ObjGridDrawCell(Sender: TObject; Col, Row: Longint;
Rect: TRect; State: TGridDrawState);
procedure FormShow(Sender: TObject);
procedure ObjGridClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure CbWilIndexListChange(Sender: TObject);
private
public
ViewNormal: Boolean;
WilIndex: integer;
function GetCurrentIndex: integer;
end;
var
FrmObj: TFrmObj;
implementation
uses
edmain;
{$R *.DFM}
procedure TFrmObj.FormCreate(Sender: TObject);
begin
ViewNormal := FALSE;
CbWilIndexList.ItemIndex := 0;
WilIndex := 0;
end;
procedure TFrmObj.FormShow(Sender: TObject);
var
n: integer;
begin
if ViewNormal then ObjGrid.DefaultColWidth := 48
else ObjGrid.DefaultColWidth := 24;
n := _MIN(65535, FrmMain.ObjWil(WilIndex*65535).ImageCount);
if n >= 1 then ObjGrid.ColCount := n
else ObjGrid.ColCount := 1;
end;
procedure TFrmObj.CbWilIndexListChange(Sender: TObject);
var
n: integer;
begin
n := CbWilIndexList.ItemIndex;
if n in [0..MAXWIL-1] then begin
WilIndex := n;
FormShow (self);
end;
end;
procedure TFrmObj.ObjGridDrawCell(Sender: TObject; Col, Row: Longint;
Rect: TRect; State: TGridDrawState);
var
idx, max: integer;
begin
idx := Col + Row * ObjGrid.ColCount;
max := FrmMain.ObjWil(WilIndex*65535 + idx).ImageCount;
if (idx >= 0) and (idx < max) then begin
with FrmMain.ObjWil(WilIndex*65535 + idx) do
if ViewNormal then
DrawZoom (ObjGrid.Canvas, Rect.Left, Rect.Top, idx, 1)
else
DrawZoom (ObjGrid.Canvas, Rect.Left, Rect.Top, idx, 0.5);
end;
end;
procedure TFrmObj.ObjGridClick(Sender: TObject);
begin
FrmMain.DrawMode := mdObj;
end;
function TFrmObj.GetCurrentIndex: integer;
var
max: integer;
begin
max := FrmMain.ObjWil(WilIndex*65535).ImageCount;
if max > ObjGrid.Col then Result := ObjGrid.Col + WilIndex * 65535
else Result := -1;
end;
procedure TFrmObj.FormResize(Sender: TObject);
begin
ObjGrid.DefaultRowHeight := ObjGrid.Height - 4;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -