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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? lyric.pas.~80~

?? delphi2007寫(xiě)的播放器源碼。效果類(lèi)似于千千靜聽(tīng)。
?? ~80~
字號(hào):
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; //正在進(jìn)行的行索引
  LyricList:TStringList;//歌詞列表
  TimeList:TStringList; //時(shí)間列表
  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窗體設(shè)置為最前SetWindowPos
      SetForegroundWindow(form3.Handle);
      //form3.FormStyle:=fsStayOnTop;
      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;

//前進(jìn)
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 ;
  //窗口強(qiáng)制刷新
  UpdateWindow(form3.Handle);
  //設(shè)置窗口位置
  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
      //刪除已經(jīng)查找過(guò)的字符
      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.

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一二三区在线| 麻豆国产欧美日韩综合精品二区 | 成人精品高清在线| 国产毛片精品视频| 国产毛片精品视频| 国产精品一区二区在线看| 国产一区二区免费在线| 国产一区免费电影| 国产成人免费网站| 成人一区二区三区| 99re热这里只有精品视频| 成人午夜精品在线| 91在线porny国产在线看| 一本一本大道香蕉久在线精品 | 在线亚洲+欧美+日本专区| 色婷婷久久99综合精品jk白丝 | 国产日韩欧美高清在线| 久久―日本道色综合久久| 欧美变态凌虐bdsm| 国产亚洲va综合人人澡精品| 国产欧美精品国产国产专区 | 麻豆成人免费电影| 激情综合色播五月| 国产91富婆露脸刺激对白| 成人永久免费视频| 色呦呦网站一区| 3d动漫精品啪啪1区2区免费| 精品国产91九色蝌蚪| 国产人久久人人人人爽| 中文字幕在线一区免费| 亚洲一区二区三区免费视频| 视频一区在线视频| 极品少妇xxxx精品少妇| proumb性欧美在线观看| 欧美影视一区二区三区| 欧美一区二区精品在线| 国产亚洲精品超碰| 亚洲一区二区不卡免费| 麻豆成人免费电影| bt欧美亚洲午夜电影天堂| 欧美日韩亚洲丝袜制服| 久久蜜桃av一区精品变态类天堂| 亚洲四区在线观看| 国产精品理伦片| 亚洲6080在线| 国产老女人精品毛片久久| 播五月开心婷婷综合| 在线电影国产精品| 欧美激情一区二区三区在线| 亚洲青青青在线视频| 秋霞电影一区二区| av不卡一区二区三区| 欧美一区二区三区播放老司机| 国产视频一区二区在线| 午夜影院久久久| 粉嫩13p一区二区三区| 欧美午夜在线观看| 久久丝袜美腿综合| 亚洲一区二区三区自拍| 国产乱一区二区| 欧美三区免费完整视频在线观看| 久久综合久久鬼色中文字| 亚洲国产人成综合网站| 国产一区二区成人久久免费影院| 欧美午夜精品理论片a级按摩| 一区二区三区中文字幕在线观看| 久久91精品久久久久久秒播| 91久久精品午夜一区二区| 久久精品综合网| 麻豆免费看一区二区三区| 欧美影视一区二区三区| 国产精品美女一区二区| 免费在线观看精品| 91国产视频在线观看| 中文字幕欧美区| 狠狠色丁香久久婷婷综合丁香| 欧美性猛片xxxx免费看久爱| 中文字幕亚洲一区二区av在线| 久久精品国产亚洲高清剧情介绍| 91福利精品视频| 国产精品久久久久一区| 国产高清精品在线| 欧美电影免费观看高清完整版在线 | 理论电影国产精品| 欧美日本一道本| 亚洲精品乱码久久久久久久久 | 国产一区二区在线观看视频| 6080午夜不卡| 亚洲国产精品久久久久婷婷884| 99视频一区二区三区| 中文字幕免费一区| 国产大陆a不卡| 久久久不卡网国产精品二区| 蜜臀av性久久久久av蜜臀妖精| 欧美精品一卡二卡| 亚洲成人激情av| 欧美色偷偷大香| 亚洲小说欧美激情另类| 色综合中文综合网| 久久99精品久久久久久久久久久久| 欧美午夜电影网| 亚洲福利视频一区| 欧美日韩精品一二三区| 亚洲成人av资源| 欧美人与z0zoxxxx视频| 亚洲mv在线观看| 欧美区视频在线观看| 丝袜亚洲另类欧美综合| 欧美精品第1页| 日本一不卡视频| 91精品国产aⅴ一区二区| 免费看欧美美女黄的网站| 欧美一区二区网站| 免费在线视频一区| 26uuu亚洲| 成人的网站免费观看| 日韩一区中文字幕| 91激情五月电影| 丝袜美腿亚洲色图| 欧美一区二区网站| 久久精品国产亚洲a| 久久久久国产精品麻豆| 成人妖精视频yjsp地址| 亚洲欧美影音先锋| 91精品1区2区| 五月婷婷色综合| 精品国产成人在线影院| 国产宾馆实践打屁股91| 亚洲欧美日韩国产综合| 欧美日韩精品欧美日韩精品一| 美女免费视频一区| 久久九九久久九九| 色综合久久久久网| 视频一区二区不卡| 久久婷婷综合激情| 成人高清免费观看| 亚洲高清不卡在线| 亚洲精品一区二区三区精华液| 成人深夜视频在线观看| 艳妇臀荡乳欲伦亚洲一区| 日韩欧美亚洲国产精品字幕久久久| 国产河南妇女毛片精品久久久| 亚洲欧洲制服丝袜| 91麻豆精品国产91久久久久久| 国产精品996| 亚洲一区二区美女| 精品国产电影一区二区| 色屁屁一区二区| 精品一区二区三区在线播放| 亚洲婷婷综合色高清在线| 欧美揉bbbbb揉bbbbb| 国产99久久久国产精品潘金网站| 一区二区三区免费看视频| 日韩三级伦理片妻子的秘密按摩| 成人久久18免费网站麻豆| 天天操天天干天天综合网| 日本一区二区视频在线| 欧美日本视频在线| 成人精品一区二区三区中文字幕| 日日夜夜免费精品视频| 国产精品丝袜黑色高跟| 欧美疯狂性受xxxxx喷水图片| 成人美女视频在线观看18| 人人爽香蕉精品| 亚洲欧美在线高清| 久久毛片高清国产| 欧美猛男超大videosgay| 99久久99久久精品免费看蜜桃| 免费欧美在线视频| 一区二区三区.www| 国产目拍亚洲精品99久久精品| 在线播放91灌醉迷j高跟美女 | 日本不卡123| 亚洲黄网站在线观看| 国产亚洲欧美中文| 日韩一区二区在线观看视频播放| av一区二区不卡| 国产精品99久久久久久久女警 | 成人av资源网站| 久久99精品久久久久久动态图| 亚洲精品久久7777| 国产欧美日韩视频在线观看| 91麻豆精品国产91久久久久 | 在线精品视频一区二区| 国产成人免费9x9x人网站视频| 日本特黄久久久高潮| 亚洲国产日产av| 亚洲视频你懂的| 日本一区二区免费在线观看视频| 欧美欧美欧美欧美| 欧美三区在线观看| 一本大道久久a久久精品综合| 国产二区国产一区在线观看| 麻豆91精品视频| 午夜成人免费电影| 亚洲线精品一区二区三区八戒| 亚洲欧美激情一区二区| 亚洲视频狠狠干| 中文字幕日韩一区| 国产精品日韩精品欧美在线|