📄 amain.pas
字号:
VTROMResVTROMResSize: TIntegerField;
VTROMResVTROMResProps: TStringField;
VTROMResVTROMResPreview: TBlobField;
VTROMResVTROMResBINNew: TBlobField;
SDBINRes: TSaveDialog;
cxGroupBox13: TcxGroupBox;
ImgView: TcxImage;
dxBarDockControl8: TdxBarDockControl;
ALRes: TActionList;
AcResSaveToFile: TAction;
AcResLoadFromFile: TAction;
AcResCopyToClipb: TAction;
AcResPasteFromClip: TAction;
AcResRestore: TAction;
AcResApply: TAction;
AcResPatch: TAction;
BarManBar5: TdxBar;
BarManBar6: TdxBar;
dxBarButton31: TdxBarButton;
dxBarButton32: TdxBarButton;
dxBarButton33: TdxBarButton;
dxBarButton37: TdxBarButton;
dxBarButton38: TdxBarButton;
dxBarButton39: TdxBarButton;
dxBarButton40: TdxBarButton;
GIFAnimator: TJvGIFAnimator;
AcResZoom: TAction;
dxBarButton22: TdxBarButton;
GBAudio: TcxGroupBox;
MediaPlayer: TMediaPlayer;
VTROMResVTROMResCRC32: TIntegerField;
cxPageControl4: TcxPageControl;
cxTabSheet10: TcxTabSheet;
cxTabSheet11: TcxTabSheet;
dxBarDockControl7: TdxBarDockControl;
TLROMRes: TcxDBTreeList;
TLROMResVTROMResResID: TcxDBTreeListColumn;
TLROMResVTROMResType: TcxDBTreeListColumn;
TLROMResVTROMResBIN: TcxDBTreeListColumn;
TLROMResVTROMResPreview: TcxDBTreeListColumn;
TLROMResVTROMResProps: TcxDBTreeListColumn;
TLROMResVTROMResSize: TcxDBTreeListColumn;
TLROMResVTROMResMaxSize: TcxDBTreeListColumn;
TLROMResVTROMResOffset: TcxDBTreeListColumn;
TLROMResVTROMResCRC32: TcxDBTreeListColumn;
procedure AcNotInTreeExecute(Sender: TObject);
procedure AcFilterExecute(Sender: TObject);
procedure EdOriginSearchChange(Sender: TObject);
procedure AcSearchByRuExecute(Sender: TObject);
procedure AcSearchByEngExecute(Sender: TObject);
procedure AcSearchByNoExecute(Sender: TObject);
procedure EdOriginSearchCurChange(Sender: TObject);
procedure ScrollTimerTimer(Sender: TObject);
procedure TLStructureDragOver(Sender, Source: TObject; X, Y: integer;
State: TDragState; var Accept: boolean);
procedure TLStructureCustomDrawCell(Sender: TObject; ACanvas: TcxCanvas;
AViewInfo: TcxTreeListEditCellViewInfo; var ADone: boolean);
procedure TLStructureMoveTo(Sender: TObject; AttachNode: TcxTreeListNode;
AttachMode: TcxTreeListNodeAttachMode; Nodes: TList;
var IsCopy, Done: boolean);
procedure TLStructureDragDrop(Sender, Source: TObject; X, Y: integer);
procedure AcSyncModeListExecute(Sender: TObject);
procedure AcSyncModeStructExecute(Sender: TObject);
procedure TLOriginalMoveTo(Sender: TObject; AttachNode: TcxTreeListNode;
AttachMode: TcxTreeListNodeAttachMode; Nodes: TList;
var IsCopy, Done: boolean);
procedure TLStructureDblClick(Sender: TObject);
procedure AcDesyncExecute(Sender: TObject);
procedure TLOriginalFocusedColumnChanged(Sender: TObject;
APrevFocusedColumn, AFocusedColumn: TcxTreeListColumn);
procedure TLOriginalDblClick(Sender: TObject);
procedure TLOriginalChange(Sender: TObject);
procedure AcEngToRusExecute(Sender: TObject);
procedure OQOriginalAfterScroll(DataSet: TDataSet);
procedure OQOriginalCalcFields(DataSet: TDataSet);
procedure OQOriginalFilterRecord(DataSet: TDataSet; var Accept: boolean);
procedure OQStructureAfterScroll(DataSet: TDataSet);
procedure OQStructureCalcFields(DataSet: TDataSet);
procedure AcExportToExcellExecute(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure AcRefreshAllExecute(Sender: TObject);
procedure TLStructureChange(Sender: TObject);
procedure AcSoundexExecute(Sender: TObject);
procedure EdFontPathPropertiesButtonClick(Sender: TObject;
AButtonIndex: integer);
procedure VTFontsCalcFields(DataSet: TDataSet);
procedure ACFApplyFontExecute(Sender: TObject);
procedure AcImportVocExecute(Sender: TObject);
procedure AcDeleteVocExecute(Sender: TObject);
procedure AcRefreshVocExecute(Sender: TObject);
procedure SQLTimerTimer(Sender: TObject);
procedure cxDBTreeList1SelectionChanged(Sender: TObject);
procedure AcTranslateExecute(Sender: TObject);
procedure AcEditModelExecute(Sender: TObject);
procedure FontThumbViewGetTitle(Sender: TObject; FileName: string;
var ThumbnailTitle: string; var ThumbnailFont: TFont;
var ThumbnailColor: TColor);
procedure FontThumbViewChange(Sender: TObject);
procedure ACFRestoreFontExecute(Sender: TObject);
procedure cxDBImage1PropertiesChange(Sender: TObject);
procedure EDFontPropertiesInitPopup(Sender: TObject);
procedure EDFontPropertiesChange(Sender: TObject);
procedure EDFontPropertiesFontPreviewButtonClick(Sender: TObject;
ButtonType: TcxFontButtonType);
procedure CharNewMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: integer);
procedure CharNewMouseMove(Sender: TObject; Shift: TShiftState; X, Y: integer);
procedure ACFSizeUpExecute(Sender: TObject);
procedure ACFSizeDownExecute(Sender: TObject);
procedure ACFTopExecute(Sender: TObject);
procedure ACFBottomExecute(Sender: TObject);
procedure ACFLeftExecute(Sender: TObject);
procedure ACFRightExecute(Sender: TObject);
procedure ACFWideUpExecute(Sender: TObject);
procedure AcWideDownExecute(Sender: TObject);
procedure EdFirmwarePathPropertiesButtonClick(Sender: TObject;
AButtonIndex: integer);
procedure cxPageControl3Change(Sender: TObject);
procedure VTROMResCalcFields(DataSet: TDataSet);
procedure TLROMResCustomDrawCell(Sender: TObject; ACanvas: TcxCanvas;
AViewInfo: TcxTreeListEditCellViewInfo; var ADone: Boolean);
procedure AcResSaveToFileExecute(Sender: TObject);
procedure AcResLoadFromFileExecute(Sender: TObject);
procedure AcResCopyToClipbExecute(Sender: TObject);
procedure AcResPasteFromClipExecute(Sender: TObject);
procedure AcResRestoreExecute(Sender: TObject);
procedure AcResApplyExecute(Sender: TObject);
procedure AcResPatchExecute(Sender: TObject);
procedure TLROMResSelectionChanged(Sender: TObject);
procedure AcResZoomExecute(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure Refilter;
procedure SerchBy(F: TField; Str: string);
procedure SearchByNo(Str: string);
procedure DoTimerScroll;
procedure SafeRefresh(DS: TDataSet; Key: string = '');
procedure LoadFonts(Path: string);
procedure SaveFonts(Path: string);
procedure FillCharFromFont;
procedure RestoreCharFromOriginal;
procedure FillCharsFromFont;
procedure RestoreCharsFromOriginal;
procedure FillFontChar(Character: word; var BMP: TBitmap);
procedure DrawGrid(Img: TcxDBImage);
function GetCoord(x, y: integer; Img: TcxDBImage): TPoint;
procedure DrawToChar(x, y: integer; Img: TcxDBImage);
end;
procedure StartWait;
procedure StopWait;
function HexToInt(s: string): word;
var
fMain: TfMain;
implementation
uses aSoundex, aROM;
{$R *.dfm}
//-----------------------
function HexToInt(s: string): word;
var
b: byte;
c: char;
begin
Result := 0;
s := UpperCase(s);
for b := 1 to Length(s) do
begin
Result := Result * 16;
c := s[b];
case c of
'0'..'9': Inc(Result, Ord(c) - Ord('0'));
'A'..'F': Inc(Result, Ord(c) - Ord('A') + 10);
else
raise EConvertError.Create('No Hex-Number');
end;
end;
end;
//-----------------------
procedure TfMain.FillFontChar(Character: word; var BMP: TBitmap);
var
ch: widechar;
TempBMP: TBitmap;
begin
if BMP = nil then
exit;
if Character = 0 then
Character := HexToInt(Self.VTFontsCharID.AsString);
BMP.Canvas.Font.Name := FMain.EDFont.FontName;
BMP.Canvas.Font.Size := FMain.EdFontSize.Value;
BMP.Canvas.Font.Style := FMain.EDFont.Properties.FontPreview.FontStyle;
ch := widechar(Character);
if cbNewFontSize.Checked then
BMP.Height := BMP.Canvas.TextHeight(ch);
//cUnicodeChar.w
BMP.Width := BMP.Canvas.TextWidth(ch);
// Rect.Top := 0;
// Rect.Left := 0;
// Rect.Right := BMP.Width;
// Rect.Bottom := BMP.Height;
// BMP.Canvas.Brush.Color := clWhite;
BMP.Canvas.FillRect(BMP.Canvas.ClipRect);
// BMP.Canvas.Brush.Color:=clBlack;
// ShowMEssage(ch);
BMP.Canvas.TextOut(0 + EdDW.Value, 0 - EdDH.Value, ch);
TempBMP := TBitmap.Create;
TempBMP.Assign(BMP);
try
TempBMP.Width := Round(BMP.Canvas.TextWidth(ch) * (EdWPerc.Value / 100));
SetStretchBltMode(BMP.Canvas.Handle, BLACKONWHITE);
StretchBlt(TempBMP.Canvas.Handle, 0, 0, TempBMP.Width, TempBMP.Height,
BMP.Canvas.Handle, 0, 0, BMP.Width, BMP.Height, SRCCopy);
BMP.Assign(TempBMP);
finally
TempBMP.Free;
end;
end;
//--------------------------
procedure StartWait;
begin
if not FMain.PBMain.Properties.Marquee then
FMain.PBMain.Properties.Marquee := True;
FMain.SQLTimer.Enabled := False;
FMain.SQLTimer.Enabled := True;
Application.ProcessMessages;
end;
procedure StopWait;
begin
FMain.PBMain.Properties.Marquee := False;
FMain.SQLTimer.Enabled := False;
Application.ProcessMessages;
end;
procedure TfMain.AcDeleteVocExecute(Sender: TObject);
begin
if Application.MessageBox(
'蔓 信浪芡
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -