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

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

?? lyric.pas.~89~

?? delphi2007寫的播放器源碼。效果類似于千千靜聽。
?? ~89~
字號:
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;Titles:String);
  end;

var
  Form3: TForm3;
  LineIndex:integer; //正在進行的行索引
  LyricList:TStringList;//歌詞列表
  TimeList:TStringList; //時間列表
  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;Titles:String);
var
  Temp:string;
begin
    LyricName:='';
    LyRicList.Clear;
    TimeList.Clear;

    temp:=copy(Name,(LastDelimiter('\',Name))+1,length(Name));
    temp:=Copy(temp,1,Length(temp)-4);
    MakeFileList(Path+'LRC\','.lrc',temp,true);
    if LyricName='' then
      MakeFileList(Path+'LRC\','.lrc',Titles,true);
    
    if LyricName<>'' then
    begin
      self.Show;
      LoadLyric;
      LineIndex:=0;
      Timer1.Enabled:=true;
      IsEns:=true;
      paintbox1.Canvas.FillRect(paintbox1.ClientRect);
      //dll窗體設置為最前SetWindowPos
      //SetForegroundWindow(self.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);
    SetWindowPos(form3.Handle, HWND_TOPMOST, self.Left,
      self.Top, self.Width, self.Height,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;
  self.Show;
  //設置窗口位置
  SetWindowPos(form3.Handle, HWND_TOPMOST, self.Left,
      self.Top, self.Width, self.Height,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精品伊人久久久大香线蕉| 天天综合色天天综合色h| 亚洲日本中文字幕区| 日本一区二区三区四区| 国产免费成人在线视频| 国产免费成人在线视频| 国产精品久久久久久亚洲毛片 | 亚洲综合一区在线| 亚洲最新视频在线播放| 亚洲一区二区高清| 天堂蜜桃一区二区三区| 五月婷婷欧美视频| 蜜臀av性久久久久蜜臀aⅴ | 精品国产一区二区三区忘忧草| 欧美一区二区三区免费在线看| 337p亚洲精品色噜噜狠狠| 欧美一区二区黄| 日韩欧美第一区| 久久久噜噜噜久久人人看| 国产欧美日韩在线| 最好看的中文字幕久久| 一级特黄大欧美久久久| 日韩高清不卡一区二区| 国产一区激情在线| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 韩国一区二区在线观看| 国产成人av自拍| 99国产精品99久久久久久| 欧美日韩视频第一区| 精品区一区二区| 亚洲欧洲精品天堂一级 | 丰满亚洲少妇av| 欧美无砖专区一中文字| 26uuu久久天堂性欧美| 国产精品不卡一区二区三区| 亚洲第一电影网| 国产乱理伦片在线观看夜一区 | 欧美一区二区三区视频在线| 国产蜜臀97一区二区三区| 亚洲第一在线综合网站| 国产河南妇女毛片精品久久久| 欧美午夜影院一区| 欧美激情在线观看视频免费| 亚洲成人一区二区在线观看| 久久99国产精品久久99| 色拍拍在线精品视频8848| www久久精品| 亚洲午夜久久久久中文字幕久| 激情综合五月天| 欧美日韩一卡二卡| 亚洲少妇屁股交4| 国产在线精品免费av| 欧美日韩一级黄| 亚洲男人的天堂av| 国产成人精品影视| 日韩精品一区二区三区中文精品 | 欧美日韩国产免费一区二区 | 欧美亚洲免费在线一区| 中文字幕欧美日本乱码一线二线| 日本特黄久久久高潮| 欧美在线一区二区三区| 亚洲色图欧美在线| 丁香婷婷综合激情五月色| 26uuuu精品一区二区| 麻豆中文一区二区| 日韩一级在线观看| 五月激情综合婷婷| 欧美乱妇一区二区三区不卡视频 | 欧美嫩在线观看| 一区二区三区在线视频免费观看| 成人网页在线观看| 亚洲国产精品99久久久久久久久| 精品一区二区三区欧美| 日韩美女在线视频| 奇米四色…亚洲| 91麻豆精品国产91久久久久久久久 | aaa亚洲精品| 国产欧美日韩不卡免费| 精品一区精品二区高清| 精品国产伦理网| 日本一不卡视频| 欧美日韩aaa| 亚洲高清免费观看高清完整版在线观看 | 国产精品欧美久久久久无广告| 免费在线一区观看| 91精品国产综合久久久久久漫画| 亚洲六月丁香色婷婷综合久久 | 91蜜桃免费观看视频| 久久女同精品一区二区| 国产精品亚洲综合一区在线观看| 国产亚洲精久久久久久| 国产精品亚洲人在线观看| 亚洲精品一区二区三区香蕉 | 亚洲成人精品影院| 欧美日韩一区二区欧美激情| 亚洲美女淫视频| 久久欧美中文字幕| 2023国产精品| 九九国产精品视频| xf在线a精品一区二区视频网站| 蜜桃视频在线观看一区| 精品奇米国产一区二区三区| 美女www一区二区| 国产欧美一区二区精品性色| 丁香天五香天堂综合| 国产精品美女久久久久久久久久久| 成人app网站| 亚洲精品视频免费观看| 欧美日韩精品福利| 青青国产91久久久久久 | 久久av中文字幕片| 精品国产一区二区三区久久影院 | 亚洲免费观看高清完整| 欧美综合色免费| 蜜臀久久99精品久久久久久9 | 黑人精品欧美一区二区蜜桃| 国产欧美一区二区在线| 91啦中文在线观看| 日本成人在线视频网站| 国产免费成人在线视频| 欧美日韩在线播放三区| 国产毛片精品国产一区二区三区| 国产三级欧美三级日产三级99| 99久久伊人久久99| 日韩制服丝袜先锋影音| 精品国产人成亚洲区| 欧美性猛交xxxx黑人交| 久久99久久久久久久久久久| 日本一区二区三区dvd视频在线 | 国产精品99久久久久久宅男| 亚洲欧美国产77777| 日韩一区二区三区四区| 97精品久久久久中文字幕| 日韩电影一区二区三区四区| 国产精品美女一区二区| 日韩免费高清电影| 91在线云播放| 国产麻豆欧美日韩一区| 一区二区免费在线播放| 国产精品久久久久久久久图文区 | 依依成人综合视频| 久久精品日产第一区二区三区高清版| 精品久久久久久久人人人人传媒 | 在线观看视频一区| 国产福利不卡视频| 水蜜桃久久夜色精品一区的特点| 国产精品国模大尺度视频| 26uuu精品一区二区| 欧美电影免费观看高清完整版 | 亚洲一区二区三区视频在线播放 | 狠狠狠色丁香婷婷综合激情 | 亚洲地区一二三色| 亚洲情趣在线观看| 国产日产精品1区| 欧美xxxxx裸体时装秀| 一本大道久久a久久综合婷婷 | 欧美一级欧美一级在线播放| 9i在线看片成人免费| 国产一区二区在线观看免费 | 在线不卡免费欧美| 91国模大尺度私拍在线视频| 日韩精品亚洲专区| 蜜桃久久久久久久| 琪琪一区二区三区| 亚洲gay无套男同| 亚洲国产日韩在线一区模特| 一区二区欧美精品| 亚洲成人一区二区| 欧美一区二区三区视频免费播放 | 婷婷国产v国产偷v亚洲高清| 亚洲福利一区二区三区| 亚洲图片有声小说| 亚洲国产视频网站| 亚洲成人资源网| 国产一区三区三区| 成人免费视频caoporn| 成人黄色软件下载| 99国产欧美久久久精品| 91啦中文在线观看| 精品视频一区二区三区免费| 日韩一区二区免费在线观看| 日韩三级中文字幕| 久久亚洲一区二区三区四区| 国产女同性恋一区二区| 亚洲天堂福利av| 性做久久久久久| 精品一区二区三区视频在线观看| 蜜桃av噜噜一区| 国产精品18久久久久久久久| 成年人国产精品| 欧美日韩中文字幕精品| 精品成a人在线观看| 国产精品嫩草久久久久| 亚洲一区二区三区四区在线免费观看| 免费视频一区二区| 成人的网站免费观看| 欧美性一级生活| 久久精品欧美日韩精品| 亚洲已满18点击进入久久|