亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lyric.pas.~81~

?? delphi2007寫的播放器源碼。效果類似于千千靜聽。
?? ~81~
字號:
unit Lyric;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls,ComFunction,ComVariable;

type
  TForm3 = class(TForm)
    Timer1: TTimer;
    PaintBox1: TPaintBox;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Timer1Timer(Sender: TObject);
    procedure PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
    procedure LoadLyric;
    procedure Format(str:String);
    procedure ChangeSize;
    procedure Draw(Y:integer;C:TColor;txt:string);
  public
    { Public declarations }
    procedure FindLyric(Name:string);
  end;

var
  Form3: TForm3;
  LineIndex:integer; //正在進行的行索引
  LyricList:TStringList;//歌詞列表
  TimeList:TStringList; //時間列表
  tempName:String;
  FSize:integer; //字體大小
  IsEns:Boolean;//是否有歌詞

implementation

{$R *.dfm}

procedure TForm3.ChangeSize;
begin
  paintbox1.Top:=0;
  paintbox1.Left:=0;
  paintbox1.Width:=FSize*34;
  paintbox1.Height:=FSize*5;
  form3.Top:=10;
  form3.Left:=trunc((screen.Width-paintbox1.Width)/2);
  form3.Width:=paintbox1.Width;
  form3.Height:=paintbox1.Height;
end;
procedure TForm3.Draw(Y:integer;C:TColor;txt:string);
var
  W:integer;
begin
    paintbox1.Canvas.Font.Size:=FSize;
    paintbox1.Canvas.Font.Color:=C;
    W:=paintbox1.Canvas.TextWidth(txt);
    W:=trunc((paintbox1.Width-W)/2);
    paintbox1.Canvas.TextOut(W,Y,txt);
end;

procedure TForm3.FindLyric(Name: string);
begin
    tempName:=Name;
    LyricName:='';
    LyRicList.Clear;
    TimeList.Clear;
    MakeFileList(Path+'LRC\','.lrc',tempName,true);
    if LyricName<>'' then
    begin
      LoadLyric;
      LineIndex:=0;
      Timer1.Enabled:=true;
      IsEns:=true;
      paintbox1.Canvas.FillRect(paintbox1.ClientRect);
      //dll窗體設置為最前SetWindowPos
      SetForegroundWindow(form3.Handle);
      BringWindowToTop(form3.Handle);
    end
    else
    begin
      Timer1.Enabled:=false;
      IsEns:=False;
    end;
end;

procedure TForm3.FormDestroy(Sender: TObject);
begin
  TimeList.Free;
  LyricList.Free;
end;

procedure TForm3.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Shift = [ssLeft] then
  begin
    ReleaseCapture;
    Perform(WM_SYSCOMMAND, $f012, 0);
  end;
end;

procedure TForm3.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if Shift = [ssLeft] then
  begin
    ReleaseCapture;
    Perform(WM_SYSCOMMAND, $f012, 0);
  end;
end;

function RoundEx (const Value: Real): integer;
var
  x: Real;
begin
  x := Value - Trunc(Value);
  if x >= 0.5 then
    Result := Trunc(Value) + 1
  else Result := Trunc(Value);
end;

//前進
procedure Rev;
label
  Advance;
begin

Advance:
    if RoundEx(NowTime)>RoundEx(strtofloat(TimeList[LineIndex])) then
    begin
      if (LineIndex+1)<=TimeList.Count-1 then
      begin
        LineIndex:=LineIndex+1;
        goto Advance;
      end;
    end;
end;
//倒退
procedure Adv;
label
  Reverse;
begin

Reverse:
  if LineIndex<=0 then Exit;
  if RoundEx(NowTime)<RoundEx(strtofloat(TimeList[LineIndex-1])) then
  begin
    if (LineIndex-1)>=0 then
    begin
      LineIndex:=LineIndex-1;
      goto Reverse;
    end;
  end;
end;
procedure TForm3.Timer1Timer(Sender: TObject);
begin
  if not isPlay then Exit;
  if not IsEns then Exit;
  if (LineIndex<=TimeList.Count-1) then
  begin
    Rev;
    Adv;

    if RoundEx(NowTime)=RoundEx(strtofloat(TimeList[LineIndex])) then
    begin
       paintbox1.Canvas.FillRect(paintbox1.ClientRect);
       Draw(12,$0000FF,LyricList[LineIndex]);
       LineIndex:=LineIndex+1;
    end;
    if (LineIndex<=TimeList.Count-1) then
      Draw(FSize*2,$00FF00,LyricList[LineIndex])
      else
      Draw(FSize*2,$00FF00,'')
  end;


  if (LineIndex>TimeList.Count-1) then
  begin
    timer1.Enabled:=false;
    Exit;
  end;
end;

procedure TForm3.LoadLyric;
var
  lsttemp:TStringList;
  strTemp:string;
  I,J:integer;
begin
  if not FileExists(LyricName) then Exit;

  lstTemp:=TStringList.Create;
  lsttemp.LoadFromFile(LyricName);
  for I := 0 to lsttemp.Count - 1 do
  begin
    if lstTemp[I]='' then Break;

    if (Pos('[0',lstTemp[I])>0) then
    begin
      Format(lstTemp[I]);
    end;
  end;

  //排序
  for I := 0 to TimeList.Count - 1 do
  begin
    for J := 0 to TimeList.Count - 1 do
    begin
       if strtofloat(TimeList[J]) > strtofloat(TimeList[I]) then
      begin
        strTemp:=TimeList[I];TimeList[I]:=TimeList[J];TimeList[J]:=strTemp;
        strTemp:=LyricList[I];LyricList[I]:=LyricList[J];LyricList[J]:=strTemp;
      end;
    end;
  end;
  lstTemp.Free;
end;

procedure TForm3.FormCreate(Sender: TObject);
begin
  FSize:=16;
  ChangeSize;
  IsEns:=False;
  form3.Show ;
  //窗口強制刷新
  UpdateWindow(form3.Handle);
  //設置窗口位置
  SetWindowPos(form3.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE);

  TimeList:=TStringList.Create;
  LyricList:=TStringList.Create;
end;

function LastPos(const subStr, s:string):integer;
  var
    iPos:Integer;
    strTmp:Widestring;
  begin
    Result:=0;
    strTmp:=s;
    iPos:=Pos(SubStr,strTmp);
    while iPos<>0 do
    begin
      //刪除已經查找過的字符
      Delete(strTmp,1,iPos+Length(SubStr)-1);
      Result:=Result+iPos;
      iPos:=Pos(SubStr,strTmp);
      if iPos=0 then Break;
      Result:=Result+Length(SubStr)-1;
    end;
  end;

function StrToNumber(s:string):String;
var
Temp:double;
begin
  temp:=strtofloat(Copy(s,1,Pos(':',s)-1))*60.0;
  temp:=temp+strtofloat(Copy(s,Pos(':',s)+1,Pos('.',s)-1));
  Result:=floattostr(temp);
end;

procedure TForm3.Format(str: string);
begin
  TimeList.Add(StrToNumber(Copy(str,Pos('[',str)+1,Pos(']',str)-1)));
  LyricList.Add(Copy(str,LastPos(']',str)+1,Length(str)));

  str:=Copy(str,Pos(']',str)+1,Length(str));

  if (Pos('[',str)>0) then
    Format(str);
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久7777按摩| 国产精品欧美久久久久无广告 | 欧美日韩一区中文字幕| 成人av在线资源网| 成人aa视频在线观看| 色婷婷综合在线| 99久久综合国产精品| 色综合久久天天| 91国产成人在线| 欧美老年两性高潮| 这里是久久伊人| 日韩欧美国产一二三区| 久久久国际精品| 一色桃子久久精品亚洲| 一区二区三区在线观看动漫| 午夜精品一区二区三区免费视频 | 日韩国产成人精品| 久久97超碰国产精品超碰| 国产一区二区精品久久| 99久久精品免费看国产| 欧美午夜精品久久久| 欧美成人在线直播| 18成人在线观看| 天堂午夜影视日韩欧美一区二区| 青娱乐精品视频| 国产成人亚洲综合a∨婷婷| 91在线国产观看| 欧美一区二区在线免费播放| 久久精品在这里| 亚洲一区视频在线| 国产一区二区三区免费在线观看| 91在线精品一区二区| 91精品国产色综合久久不卡电影 | 午夜精品一区二区三区免费视频| 国内精品伊人久久久久av影院| 国产白丝精品91爽爽久久 | 国产大陆a不卡| 91国偷自产一区二区三区成为亚洲经典| 欧美巨大另类极品videosbest | 精品一区二区在线看| 99精品在线观看视频| 日韩手机在线导航| 一区二区三区在线视频观看58| 青草国产精品久久久久久| 成人美女视频在线看| 日韩视频免费直播| 一区二区三区免费在线观看| 国产揄拍国内精品对白| 欧美探花视频资源| 中文字幕+乱码+中文字幕一区| 秋霞午夜av一区二区三区| 一本久道久久综合中文字幕| 久久久久久97三级| 蜜臀91精品一区二区三区 | 日韩免费高清视频| 亚洲午夜久久久久久久久久久| 国产91丝袜在线18| 日韩欧美在线不卡| 日韩二区三区四区| 欧美乱妇23p| 五月婷婷另类国产| 在线精品观看国产| 一区二区三区视频在线看| 成人久久久精品乱码一区二区三区| 日韩欧美精品三级| 麻豆精品国产传媒mv男同| 欧美精品粉嫩高潮一区二区| 亚洲精品网站在线观看| 91免费观看视频| 亚洲人成伊人成综合网小说| 国产.精品.日韩.另类.中文.在线.播放| 日韩三级中文字幕| 日本欧洲一区二区| 91精品国产91久久综合桃花 | 国产精品久久777777| 精品一区二区三区视频在线观看| 日韩一级片在线观看| 久久精品国产色蜜蜜麻豆| 日韩一区二区三区观看| 经典三级一区二区| 久久新电视剧免费观看| 国产成人av自拍| 中文字幕一区二区三区四区| 99久久久久久99| 洋洋av久久久久久久一区| 欧美色视频一区| 九色综合狠狠综合久久| 久久九九久久九九| 91浏览器打开| 日韩一区欧美二区| 久久久91精品国产一区二区精品| 国产精品一区二区无线| 亚洲欧洲日产国产综合网| 一本色道久久加勒比精品 | 国产成人在线免费| 1000部国产精品成人观看| 欧美日韩综合不卡| 精品一区二区在线视频| 最新欧美精品一区二区三区| 欧美日韩国产片| 国产在线麻豆精品观看| 日韩一区欧美小说| 欧美一区二区福利视频| 不卡视频一二三四| 日韩电影在线看| 自拍偷拍亚洲综合| 欧美一卡二卡在线| 99re热这里只有精品视频| 天堂蜜桃91精品| 国产精品国产精品国产专区不片| 欧美在线短视频| 懂色一区二区三区免费观看| 一区二区三区小说| 久久久www成人免费毛片麻豆 | 波多野结衣在线一区| 日韩和欧美一区二区| 国产精品午夜免费| 日韩一区二区精品在线观看| 97se亚洲国产综合自在线不卡| 免费精品99久久国产综合精品| 国产精品美女久久久久av爽李琼| 日韩视频免费直播| 欧美伊人久久大香线蕉综合69 | 日韩欧美成人午夜| 色天天综合久久久久综合片| 国产精品自在在线| 日本成人中文字幕在线视频| 亚洲综合丝袜美腿| 国产精品久久久久久亚洲毛片| 日韩欧美在线影院| 欧美一区二区观看视频| 欧美色涩在线第一页| 色婷婷久久99综合精品jk白丝| 国产成人精品免费看| 韩国成人在线视频| 蜜桃视频免费观看一区| 日日夜夜免费精品| 亚洲国产三级在线| 一区二区三区电影在线播| 国产精品传媒在线| 欧美激情在线观看视频免费| 久久久精品日韩欧美| 久久午夜羞羞影院免费观看| 欧美一区二区精美| 日韩一级免费一区| 日韩午夜在线影院| 精品久久久久一区二区国产| 欧美一区二区视频在线观看 | 久久久亚洲精华液精华液精华液| 91精选在线观看| 日韩一级在线观看| 日韩视频国产视频| 精品国内二区三区| 欧美精品一区二区三区一线天视频| 欧美一区二区三区免费大片| 91精品国产综合久久久久| 7777精品伊人久久久大香线蕉经典版下载| 一本色道a无线码一区v| 欧美日韩一区成人| 91.麻豆视频| 久久综合久久99| 国产精品入口麻豆九色| 亚洲色图欧美在线| 亚洲女与黑人做爰| 无吗不卡中文字幕| 久久精品999| 不卡视频在线看| 欧美日韩一区二区在线视频| 日韩一区二区中文字幕| 26uuu精品一区二区| 中文字幕精品一区| 亚洲综合一区二区| 久久激情五月激情| 丰满少妇久久久久久久| 91亚洲国产成人精品一区二区三| 一本大道久久a久久综合婷婷| 欧美日韩精品一区二区天天拍小说 | 99久久国产综合精品麻豆| 在线观看亚洲精品视频| 91精品久久久久久蜜臀| www欧美成人18+| 成人欧美一区二区三区| 奇米精品一区二区三区在线观看| 理论电影国产精品| 91原创在线视频| 日韩一级精品视频在线观看| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 亚洲天堂2014| 免费成人在线观看视频| 97se亚洲国产综合在线| 欧美xxxxx牲另类人与| 亚洲人成在线观看一区二区| 六月丁香婷婷久久| 在线观看欧美精品| 久久精品人人做人人爽97| 午夜久久久久久久久久一区二区| 国产传媒欧美日韩成人| 日韩一二三区不卡| 亚洲在线视频免费观看| 国产乱妇无码大片在线观看|