📄 exe.pas
字号:
unit Exe;
interface
uses
WinProcs, WinTypes,Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, StdCtrls, ExtCtrls, MPlayer,DrawHot, TabNotBk, ComCtrls;
const MaxShowArrayNum=30;
type
HotRecord=Record
x0,y0,x1,y1:Integer;
end;
BmpRecord=Record
TitleName,FileName,SmallFileName:String[40];
end;
AviRecord=Record
FileName:String[30];
Left,Top,Width,Height:Integer;
end;
TxtRecord=Record
FileName:String[30];
Left,Top,Width,Height:Integer;
end;
BlinkRecord=Record
Blink:String[8];
Left,Top,Width,Height:Integer;
end;
ShowDataRecord=Record
bmp:BmpRecord;
avi:AviRecord;
txt:TxtRecord;
Blink:BlinkRecord;
WavFileName:String;
end;
TExeForm = class(TForm)
LastButton: TButton;
ExeMemo: TMemo;
MainMenu1: TMainMenu;
BMPMenuItem: TMenuItem;
AviMenuItem: TMenuItem;
TxtMenuItem: TMenuItem;
NextButton: TButton;
SaveButton: TButton;
ReturnButton: TButton;
BackPanel: TPanel;
BackImage: TImage;
TxtMemo: TMemo;
AviPanel: TPanel;
OpenDialog1: TOpenDialog;
Timer1: TTimer;
BmpImage: TImage;
XLabel: TLabel;
YLabel: TLabel;
AviMediaPlayer: TMediaPlayer;
WorkMemo: TMemo;
AddButton: TButton;
DeleteButton: TButton;
InSertButton: TButton;
BlinkMenuItem: TMenuItem;
BlinkImage: TImage;
WavMenuItem: TMenuItem;
WavMediaPlayer: TMediaPlayer;
TabbedNotebook1: TTabbedNotebook;
BmpCheckBox: TCheckBox;
BmpTitleEdit: TEdit;
BmpFileEdit: TEdit;
AviCheckBox: TCheckBox;
AviFileEdit: TEdit;
AviLeftEdit: TEdit;
AviTopEdit: TEdit;
AviWidthEdit: TEdit;
AviHeightEdit: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
TxtFileEdit: TEdit;
TxtCheckBox: TCheckBox;
Label6: TLabel;
TxtLeftEdit: TEdit;
TxtTopEdit: TEdit;
TxtWidthEdit: TEdit;
TxtHeightEdit: TEdit;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
BlinkCheckBox: TCheckBox;
BlinkTopEdit: TEdit;
BlinkLeftEdit: TEdit;
BlinkWidthEdit: TEdit;
BlinkHeightEdit: TEdit;
Label11: TLabel;
Label12: TLabel;
WavEdit: TEdit;
WavCheckBox: TCheckBox;
Label13: TLabel;
SmallBmpFileEdit: TEdit;
SmallBmpImage: TImage;
Label14: TLabel;
StepComboBox: TComboBox;
Label15: TLabel;
Bevel1: TBevel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
procedure BMPMenuItemClick(Sender: TObject);
procedure AviMenuItemClick(Sender: TObject);
procedure TxtMenuItemClick(Sender: TObject);
procedure BmpFileEditClick(Sender: TObject);
procedure TxtFileEditClick(Sender: TObject);
procedure AviFileEditClick(Sender: TObject);
procedure ReturnButtonClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BmpImageMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure BmpImageMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure BmpImageMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure TxtMemoClick(Sender: TObject);
procedure AviPanelClick(Sender: TObject);
procedure NextButtonClick(Sender: TObject);
procedure LastButtonClick(Sender: TObject);
procedure AddButtonClick(Sender: TObject);
procedure DeleteButtonClick(Sender: TObject);
procedure SaveButtonClick(Sender: TObject);
procedure InSertButtonClick(Sender: TObject);
procedure BlinkMenuItemClick(Sender: TObject);
procedure BlinkImageClick(Sender: TObject);
procedure WavEditClick(Sender: TObject);
procedure WavMenuItemClick(Sender: TObject);
procedure SmallBmpFileEditClick(Sender: TObject);
procedure StepComboBoxChange(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
LastX,LastY,HotDragAreaNum,HotObjectNum,SaveExeInSertLineNum,ShowArrayTotalNum,
CurrentShowArrayNum:Integer;
AllowMoveFlag,NotMoveFlag,AddRecordFlag,InsertFlag:Boolean;
HotArea:HotRecord;
ShowArray:Array[0..MaxShowArrayNum] of ShowDataRecord;
procedure copyback;
procedure InitShowArray;
procedure TranslateStr;
function WorkMemoGetDataFromExeMemo(const CompareStr:String;const DirectMemo,SourceMemo:TMemo):Integer;
procedure ShowCurrentNowLine(const i:Integer);
procedure ClearShowThing;
procedure ExeMemoSaveDataFromWorkMemo(Const DirectMemo,SourceMemo:TMemo);
Procedure InitStepComboBoxData;
Function MyStrToInt(const SourceStr:String):Integer;
end;
var
ExeForm: TExeForm;
implementation
uses main;
{$R *.DFM}
//自定义字符转换成整型数字
Function TExeForm.MyStrToInt(const SourceStr:String):Integer;
begin
if SourceStr<>'' then
begin
Result:=StrToInt(SourceStr);
end
else
Result:=0;
end;
//初始化步选框
Procedure TExeForm.InitStepComboBoxData;
var
i:Integer;
begin
StepComBoBox.Clear;
for i:=0 to WorkMemo.Lines.Count-1 do
begin
if i=0 then
StepComBoBox.Text:=ShowArray[i].Bmp.TitleName;
StepComBoBox.Items.Add(ShowArray[i].Bmp.TitleName);
end;
end;
{用WorkMemo更新Exememo的内容}
procedure TExeForm.ExeMemoSaveDataFromWorkMemo(Const DirectMemo,SourceMemo:TMemo);
var i,j:Integer;
begin
i:=SaveExeInSertLineNum;
{更新前先删除}
if Pos('^',DirectMemo.Lines[i+1])<>0 then
begin
{Empty}
j:=0;
while j<SourceMemo.Lines.Count do
begin
DirectMemo.Lines.Insert(i+1,SourceMemo.Lines[j]);
inc(i);
inc(j);
end;
end
else
begin
while (Pos('^',DirectMemo.Lines[i+1])=0) do
begin
DirectMemo.Lines.Delete(i+1);
end;
j:=0;
while j<SourceMemo.Lines.Count do
begin
DirectMemo.Lines.Insert(i+1,SourceMemo.Lines[j]);
inc(i);
inc(j);
end;
end;
end;
//清显示内容
procedure TExeForm.ClearShowThing;
begin
{Bmp}
BmpImage.Visible:=False;
BackImage.Visible:=False;
BmpImage.Picture:=Nil;
BackImage.Picture:=Nil;
BmpCheckBox.Checked:=False;
BmpFileEdit.Text:='';
BmpTitleEdit.Text:='';
SmallBmpFileEdit.Text:='';
SmallBmpImage.Visible:=False;
{Avi}
AviPanel.Visible:=False;
AviCheckBox.Checked:=False;
AviFileEdit.Text:='';
AviLeftEdit.Text:='';
AviTopEdit.Text:='';
AviWidthEdit.Text:='';
AviHeightEdit.Text:='';
if AviMediaPlayer.Mode=mpPlaying then
AviMediaPlayer.Close;
{Txt}
TxtMemo.Clear;
TxtCheckBox.Checked:=False;
TxtMemo.Lines.Clear;
TxtMemo.Visible:=False;;
TxtFileEdit.Text:='';
TxtLeftEdit.Text:='';
TxtTopEdit.Text:='';
TxtWidthEdit.Text:='';
TxtHeightEdit.Text:='';
{Blink}
BlinkCheckBox.Checked:=False;
BlinkLeftEdit.Text:='';
BlinkTopEdit.Text:='';
BlinkWidthEdit.Text:='';
BlinkHeightEdit.Text:='';
{Wav}
WavCheckBox.Checked:=False;
WavEdit.Text:='';
if WavMediaPlayer.Mode=mpPlaying then
WavMediaPlayer.Close;
end;
{显示当前行}
procedure TExeForm.ShowCurrentNowLine(const i:Integer);
begin
{Bmp大图}
if FileExists(MainForm.MainDir+MainForm.BmpDir+ShowArray[i].Bmp.FileName) then
begin
BackImage.Picture.LoadFromFile(MainForm.MainDir+MainForm.BmpDir+ShowArray[i].Bmp.FileName);
CopyBack;
BmpCheckBox.Checked:=True;
BackImage.Visible:=True;
BmpImage.Visible:=True;
BmpFileEdit.Text:=ShowArray[i].Bmp.FileName;
BmpTitleEdit.Text:=ShowArray[i].Bmp.TitleName;
end;
{Bmp小图}
if FileExists(MainForm.MainDir+MainForm.BmpDir+ShowArray[i].Bmp.SmallFileName) then
begin
SmallBmpImage.Picture.LoadFromFile(MainForm.MainDir+MainForm.BmpDir+ShowArray[i].Bmp.SmallFileName);
SmallBmpImage.Visible:=True;
BmpCheckBox.Checked:=True;
BmpFileEdit.Text:=ShowArray[i].Bmp.FileName;
BmpTitleEdit.Text:=ShowArray[i].Bmp.TitleName;
SmallBmpFileEdit.Text:=ShowArray[i].Bmp.SmallFileName;
end;
{Avi}
if FileExists(MainForm.MainDir+MainForm.AviDir+ShowArray[i].Avi.FileName) then
begin
AviMediaPlayer.FileName:=(MainForm.MainDir+MainForm.avidir+ShowArray[i].Avi.FileName);
AviCheckBox.Checked:=True;
AviMediaPlayer.Display:=AviPanel;
AviMediaPlayer.Open;
AviMediaPlayer.Play;
AviPanel.Visible:=True;
AviFileEdit.Text:=ShowArray[i].Avi.FileName;
{----------------------------------------------------}
AviPanel.Left:=ShowArray[i].Avi.Left;
AviPanel.Top:=ShowArray[i].Avi.Top;
AviPanel.Width:=ShowArray[i].Avi.Width;
AviPanel.Height:=ShowArray[i].Avi.Height;
{----------------------------------------------------}
AviLeftEdit.Text:=IntToStr(ShowArray[i].Avi.Left);
AviTopEdit.Text:=IntToStr(ShowArray[i].Avi.Top);
AviWidthEdit.Text:=IntToStr(ShowArray[i].Avi.Width);
AviHeightEdit.Text:=IntToStr(ShowArray[i].Avi.Height);
end;
{Txt}
if FileExists(MainForm.MainDir+MainForm.TxtDir+ShowArray[i].Txt.FileName) then
begin
TxtMemo.Lines.LoadFromFile(MainForm.MainDir+MainForm.TxtDir+ShowArray[i].Txt.FileName);
TxtCheckBox.Checked:=True;
TxtMemo.Visible:=True;
TxtFileEdit.Text:=ShowArray[i].Txt.FileName;
{--------------------------------------------------}
TxtMemo.Left:=ShowArray[i].Txt.Left;
TxtMemo.Top:=ShowArray[i].Txt.Top;
TxtMemo.Width:=ShowArray[i].Txt.Width;
TxtMemo.Height:=ShowArray[i].Txt.Height;
{--------------------------------------------------}
TxtLeftEdit.Text:=IntToStr(ShowArray[i].Txt.Left);
TxtTopEdit.Text:=IntToStr(ShowArray[i].Txt.Top);
TxtWidthEdit.Text:=IntToStr(ShowArray[i].Txt.Width);
TxtHeightEdit.Text:=IntToStr(ShowArray[i].Txt.Height);
end;
{Blink}
if ShowArray[i].Blink.BLink='Blink' then
begin
BlinkCheckBox.Checked:=True;
{------------------------------------------------------}
BlinkImage.Left:=ShowArray[i].Blink.Left;
BlinkImage.Top:=ShowArray[i].Blink.Top;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -