📄 lyricbar.pas
字号:
ScrollAble :=mnuScroll.Checked ;
HeadPos:=8000;
end;
procedure TfrmLyricBar.FormDestroy(Sender: TObject);
begin
lyricStrs.Free;
lyricbmp.free;
end;
procedure TfrmLyricBar.FormHide(Sender: TObject);
begin
timer1.Enabled :=false;
Mainfrm.mnuLyricBox.Checked :=false;
end;
procedure TfrmLyricBar.N1Click(Sender: TObject);
begin
mainfrm.showLyricEditorSbtnClick(nil);
end;
procedure TfrmLyricBar.Timer1Timer(Sender: TObject);
begin
if ScrollAble then
begin
if Headpos>-LyricBmp.Height then
HeadPos:=HeadPos-1
else
HeadPos:=paintbox1.ClientHeight;
end;
//更新画面
UpdateView;
end;
procedure TfrmLyricBar.mnuScrollClick(Sender: TObject);
begin
(sender as TMenuItem).Checked :=not (sender as TMenuItem).Checked;
ScrollAble :=(sender as TMenuItem).Checked;
end;
procedure TfrmLyricBar.PaintBox1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if (button =mbleft) and (PressLeft=false) then
begin
pressLeft:=true;
PressMoveY:=Y;
end;
end;
procedure TfrmLyricBar.PaintBox1MouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if (button =mbleft) and (pressLeft) then
pressLeft:=false;
end;
procedure TfrmLyricBar.PaintBox1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
if pressLeft then
begin
Headpos:=HeadPos-(PressMoveY-Y);
if HeadPos>Paintbox1.ClientHeight then
HeadPos:= -(LyricBmp.Height-(HeadPos-Paintbox1.ClientHeight))
else if HeadPos<-LyricBmp.Height then
HeadPos:= Paintbox1.clientheight+ HeadPos+LyricBmp.Height;
PressMoveY:=Y;
end;
end;
procedure TfrmLyricBar.PaintBox1DblClick(Sender: TObject);
begin
mnuScrollClick(mnuScroll);
end;
procedure TfrmLyricBar.N3Click(Sender: TObject);
var vFont:TFont;
begin
if sender =N3 then
vFont:=lbBackFont.Font
else
vFont:=lbFrontFont.Font;
FontDialog1.Font :=vFont;
if FontDialog1.Execute then
begin
vFont:= FontDialog1.Font;
if sender =N3 then
lbBackFont.Font:=vFont
else
lbFrontFont.Font:=vFont;
updateLyric;
end;
end;
procedure TfrmLyricBar.N6Click(Sender: TObject);
begin
ColorDialog1.Color :=paintbox1.Color;
if ColorDialog1.Execute then
begin
lyricbmp.Canvas.Brush.Color := ColorDialog1.Color;
paintbox1.Color :=ColorDialog1.Color ;
self.Color := ColorDialog1.Color ;
end;
end;
//加快滚动速度
procedure TfrmLyricBar.N8Click(Sender: TObject);
begin
if timer1.Interval >10 then
begin
timer1.Interval :=timer1.Interval -10;
N9.Enabled :=true;
end;
if timer1.Interval =10 then
N8.Enabled :=false;
end;
//减慢滚动速度
procedure TfrmLyricBar.N9Click(Sender: TObject);
begin
if timer1.Interval <100 then
begin
timer1.Interval :=timer1.Interval +10;
N8.Enabled :=true;
end;
if timer1.Interval =100 then
N9.Enabled :=false;
end;
procedure TfrmLyricBar.N11Click(Sender: TObject);
begin
(sender as TMenuItem).Checked :=not (sender as TMenuItem).Checked ;
if (sender as TMenuItem).Checked then
begin
fTop:=self.Top;
fLeft:=self.Left;
fWidth:=self.Width;
fHeight:=self.Height;
if self.WindowState <>wsNormal then
self.WindowState :=wsNormal;
self.BorderStyle:=bsNone;
self.Left :=0; self.Top :=0;
self.Width :=screen.width;
self.Height :=screen.height;
end
else
begin
self.BorderStyle:=bsSizeable ;
self.Top :=fTop;
self.Left :=fLeft;
self.width :=fWidth;
self.height :=fHeight;
end;
end;
procedure TfrmLyricBar.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_escape then
begin
if N11.Checked then
N11Click(N11);
end;
end;
procedure TfrmLyricBar.readSysInfo;
var
registerTemp : TRegistry;
begin
registerTemp := TRegistry.Create; //准备使用注册表
with registerTemp do
try
RootKey:=HKEY_LOCAL_MACHINE; //存放在此根下
OpenKey('Software\'+APP_TITLE,True);
//是否显示曲目清单
// self.OnResize :=nil;
if ValueExists('LWinWidth') then
self.width :=ReadInteger('LWinWidth')
else
begin
WriteInteger('LWinWidth',374 );
self.width :=374;
end;
if ValueExists('LWinHeight') then
self.Height :=ReadInteger('LWinHeight')
else
begin
WriteInteger('LWinHeight',343 );
self.Height :=343;
end;
self.Left :=(screen.Width -self.Width ) div 2;
self.Top :=(screen.Height -self.Height ) div 2;
//背景颜色
if valueExists('LBackClr') then
begin
lyricbmp.Canvas.Brush.Color := ReadInteger('LBackClr');
paintbox1.Color := ReadInteger('LBackClr') ;
self.Color :=ReadInteger('LBackClr');
end
else
begin
WriteInteger('LBackClr',self.color);
lyricbmp.Canvas.Brush.Color := clBlack;
paintbox1.Color := clBlack ;
self.Color := clBlack ;
end;
//固定字体
if valueExists('LBackFontClr') then
lbBackFont.Font.Color := ReadInteger('LBackFontClr')
else
WriteInteger('LBackFontClr',lbBackFont.Font.Color) ;
if valueExists('LBackFontName') then
lbBackFont.Font.Name := ReadString('LBackFontName')
else
WriteString('LBackFontName',lbBackFont.Font.Name) ;
if valueExists('LBackFontSize') then
lbBackFont.Font.Size := ReadInteger('LBackFontSize')
else
WriteInteger('LBackFontSize',lbBackFont.Font.Size) ;
if valueExists('LBackFontCharset') then
lbBackFont.Font.Charset := ReadInteger('LBackFontCharset')
else
Writeinteger('LBackFontCharset',lbBackFont.Font.Charset) ;
//活动字体
if valueExists('LFrontFontClr') then
lbFrontFont.Font.Color := ReadInteger('LFrontFontClr')
else
WriteInteger('LFrontFontClr',lbFrontFont.Font.Color) ;
if valueExists('LFrontFontName') then
lbFrontFont.Font.Name := ReadString('LFrontFontName')
else
WriteString('LFrontFontName',lbFrontFont.Font.Name) ;
if valueExists('LFrontFontSize') then
lbFrontFont.Font.Size := ReadInteger('LFrontFontSize')
else
WriteInteger('LFrontFontSize',lbFrontFont.Font.Size) ;
if valueExists('LFrontFontCharset') then
lbFrontFont.Font.Charset := ReadInteger('LFrontFontCharset')
else
Writeinteger('LFrontFontCharset',lbFrontFont.Font.Charset) ;
//是否滚动
if valueExists('LScrollable') then
mnuScroll.Checked := ReadBool('LScrollable')
else
WriteBool('LScrollable',mnuScroll.Checked) ;
//滚动速度
if valueExists('LScrollRate') then
timer1.interval := ReadInteger('LScrollRate')
else
WriteInteger('LScrollRate',timer1.interval) ;
// self.OnResize :=FormResize;
// self.FormResize(nil);
finally
CloseKey;
Free;
end;
end;
procedure TfrmLyricBar.SaveSysInfo;
var
registerTemp : TRegistry;
begin
registerTemp := TRegistry.Create; //准备使用注册表
with registerTemp do
try
RootKey:=HKEY_LOCAL_MACHINE; //存放在此根下
OpenKey('Software\'+APP_TITLE,True);
WriteInteger('LWinWidth',self.Width );
writeInteger('LWinHeight',self.Height);
WriteInteger('LBackClr',self.Color);
WriteInteger('LBackFontClr',lbBackFont.Font.Color);
WriteString('LBackFontName',lbBackFont.Font.Name);
WriteInteger('LBackFontSize',lbBackFont.Font.Size) ;
WriteInteger('LBackFontCharset',lbBackFont.Font.Charset) ;
WriteInteger('LFrontFontClr',lbFrontFont.Font.Color);
WriteString('LFrontFontName',lbFrontFont.Font.Name);
WriteInteger('LFrontFontSize',lbFrontFont.Font.Size) ;
WriteInteger('LFrontFontCharset',lbFrontFont.Font.Charset) ;
WriteBool('LScrollable',mnuScroll.Checked) ;
WriteInteger('LScrollRate',timer1.interval) ;
finally
CloseKey;
Free;
end;
end;
procedure TfrmLyricBar.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
SaveSysInfo;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -