📄 scren.~pas
字号:
unit scren;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls,mplayer;
type
TForm2 = class(TForm)
Panel1: TPanel;
procedure FormCreate(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ResizeDefine(WinState:tWindowState;Pane:TPanel;Form:TFOrm);
procedure Panel1DblClick(Sender: TObject);
procedure Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FormDblClick(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
procedure DragFileScr(var message:Tmessage); message Wm_dropFiles;
procedure WmClDbclk(var message:Tmessage);message WM_NCLBUTTONDBLCLK;//捕捉双击标题栏的消息
end;
var
Form2: TForm2;
Widsav,heisav,ScreenDb:integer;//HeiSav,Widsav保存Form 改变前的width,Height值!
Form2Max:boolean;//ScreenDb表示是否双击了视频窗体
implementation
uses main, FulScreen,shellAPi, Playlist;
{$R *.dfm}
procedure tForm2.ResizeDefine(WinState:tWindowState;Pane:TPanel;Form:TForm);
begin
Form1.MediaPlayer1.Display:=Pane;
if Form1.MediaPlayer1.Mode=Mpplaying then
begin
if Form=form5 then//表示现在是视频窗体
begin//注意 screen 的 巧 用
Form1.MediaPlayer1.DisplayRect:=
rect(0,0,screen.Width,screen.Height);
//Form3.Caption:='fdsafsda';
end
Else
begin
{Play_Size1.Left :=0; Play_Size1.Top :=0;
Play_Size1.Right:=form.Width;//为得到合适尺寸
Play_Size1.Bottom:=Form.height;注意 ClientRect 的巧用}
Form1.MediaPlayer1.DisplayRect:=Form.ClientRect;
end
end;
end;
procedure TForm2.DragFileScr(var message:Tmessage);
begin
if message.Msg=Wm_dropFiles then
Form3.WmDragFile( message);
end;
procedure TForm2.WmClDbclk(var message:Tmessage);//捕捉双击标题栏的消息
var
Sender:Tobject;
begin//注意此消息的巧用
Form2.Panel1DblClick(Sender);
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
dragAcceptFiles(Form2.Handle,true);
if Form2.Visible=True then
Widsav:=Width;
HeiSav:=height;
end;
procedure TForm2.FormResize(Sender: TObject);
begin
if Form1.LockScr.Checked then //若锁定了频幕
begin
if Width<>WidSav then
begin
WidSav:=Width;
Height:=round(Width*0.75);
end;
if Height<>Heisav then
begin
HeiSav:=Height;
Width:=round(heisav*1.33333);
exit;
end;
end;
Form2.ResizeDefine(Form2.WindowState,Form2.Panel1,Form2);
end;
procedure TForm2.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin //注意 KeyPreView为 true,
//caption:=IntTostr(ord('R'));
case key of
vk_F11:
begin
Form1.Show;//切换到主窗体
ShowFor1:=True;
end;
32://播放/暂停切换
Form1.PauseClick();
Vk_Next:
Form1.StepImClick(Sender);
VK_Prior:
Form1.BackImClick(Sender);
VK_escape://全屏/窗口切换
Form2.Panel1DblClick(Sender);
vk_f1:
begin//调用 '请先读我.doc'时,用Fileexists比较好,而不用自定义的FileFind
if Fileexists(ExtractFilePath(Application.ExeName)+('请先读我.doc')) then
shellExecute(handle,'open',pchar(ExtractFilePath(Application.ExeName)+'请先读我.doc'),
nil,nil,Sw_showNormal)
else
begin
if FileFind(ExtractFilePath(Application.ExeName)+('请先读我.txt')) then
shellExecute(handle,'open',pchar(ExtractFilePath(Application.ExeName)+'请先读我.txt'),
nil,nil,Sw_showNormal);//正确打开返回 42
end;
end;
end;
if (ssctrl in Shift) then
begin
case Key of
Vk_next:
Form1.NexClick(Sender);//播放下一曲
Vk_prior:
Form1.NexClick(Sender);//播放是上一曲,关联下一曲
ord('R'):
Form1.DoAgainClick(Sender);
end;
end;
end;
procedure TForm2.Panel1DblClick(Sender: TObject);
begin
Form2.Visible:=not Form2.Visible;
Form5.Visible:=not Form5.Visible;
end;
procedure TForm2.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin //(Form,LbName1,MoreFilNameLb1)
dragPos:=Form;//获得鼠标的位置
end;
procedure TForm2.FormDblClick(Sender: TObject);
begin
Panel1DblClick(sender);
end;
procedure TForm2.FormShow(Sender: TObject);
begin
Form2.ResizeDefine(Form2.WindowState,Form2.Panel1,Form2);
Form2.BorderStyle:=bsSizeable;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -