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

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

?? unit1.~pas

?? 播放器的插件調用例程
?? ~PAS
字號:
unit Unit1;

interface

uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
   Winamp, Menus, StdCtrls, ExtCtrls, ComCtrls;

type
   TForm1 = class(TForm)
      PopupMenu1: TPopupMenu;
      N1: TMenuItem;
      N2: TMenuItem;
      N3: TMenuItem;
      Timer1: TTimer;
      Image1: TImage;
      procedure N1Click(Sender: TObject);
      procedure FormCreate(Sender: TObject);
      procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
         Shift: TShiftState; X, Y: Integer);
      procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
         Y: Integer);
      procedure N3Click(Sender: TObject);
      procedure FormDestroy(Sender: TObject);
      procedure FormKeyDown(Sender: TObject; var Key: Word;
         Shift: TShiftState);
      procedure FormShow(Sender: TObject);
   private
      { Private declarations }
      procedure readfile;
   public
      { Public declarations }
      procedure WMEraseBkgnd(var Message: TMessage); message WM_ERASEBKGND;
      procedure CreateParams(var Params: TCreateParams); override;
   end;

var
   Form1: TForm1;
   hDC: Integer;
   shu: integer;
   MPos: TPoint;
   hWnd_WinAmp: hWnd;
   sll: TStringList;
   bmp: TBitmap;
   bufferCanvas: TCanvas;
   ARect: TRect;
   wy: integer; //位移
   jg: integer; //間格
   dqj: integer;
   js:integer;
function winampVisGetHeader: PwinampVisHeader; cdecl; export;
function getModule(which: Integer): PwinampVisModule; cdecl;
procedure config(this_mod: PwinampVisModule); cdecl;
function init(this_mod: PwinampVisModule): Integer; cdecl;
function render(this_mod: PwinampVisModule): Integer; cdecl;
procedure quit(this_mod: PwinampVisModule); cdecl;

function GetOutPutTime(x: integer): Integer;
function strisint(str: string): boolean; //判斷字符是否是整數

implementation

{$R *.DFM}

const
   hdr: TwinampVisHeader =
   (version: ver;
      description: '歌詞顯示插件 Ver1.0';
      getModule: getModule);

   fmod: TwinampVisModule =
   (description: '歌詞顯示插件';
      hwndParent: 0;
      hDllInstance: 0;
      sRate: 0;
      nCh: 0;
      latencyMs: 25;
      delayMS: 25;
      spectrumNch: 0;
      waveformNch: 2;
      Config: config;
      Init: init;
      Render: render;
      Quit: quit);

function winampVisGetHeader: PwinampVisHeader;
begin
   Result := @hdr;
end;

function getModule(which: Integer): PwinampVisModule;
begin
   if which = 0 then
      Result := @fmod
   else
      Result := nil;
end;

procedure config(this_mod: PwinampVisModule);
begin
   MessageBox(0, '小天程序制作',
      'About',
      MB_ICONINFORMATION);
end;

function init(this_mod: PwinampVisModule): Integer;
begin
   Application.CreateForm(TForm1, Form1);
   hDC := GetDC(Form1.Handle);
   Result := 0;
end;

function GetOutPutTime(x: integer): Integer;
begin
   GetOutPutTime := 0;
   if x = 0 then
      GetOutPutTime := SendMessage(hwnd_winamp, WM_USER, x, 105)
   else
      if x = 1 then
      GetOutPutTime := SendMessage(hwnd_winamp, WM_USER, x, 105);
end;

procedure TForm1.WMEraseBkgnd(var Message: TMessage);
begin
   Message.Result := 1;
end;

function render(this_mod: PwinampVisModule): Integer;
var
   cru, i, lc, clint: integer;
begin
   cru := (GetOutPutTime(0) div 1000) + wy;
   if cru < 1 then form1.readfile;
   //找出當前句
   if sll.Count > 0 then
      begin
         for i := 0 to sll.Count - 1 do
            begin
               if strtoint(copy(sll.strings[i], 1, 5)) > cru then
                  break;
            end;
         {2002-3-23代碼}
         //計算位移距離
         if i > 0 then
            lc := round((cru - strtoint(copy(sll.strings[i], 1, 5))) * (35 / (strtoint(copy(sll.strings[i], 1, 5)) - strtoint(copy(sll.strings[i - 1], 1, 5)))))
         else
            lc := 5;
         //如果不是當前句就畫
         if i - 1 <> dqj then
            begin
               with form1 do
                  begin
                     form1.image1.top:=0;
                     form1.image1.top:=form1.image1.top-lc;
                     bmp.Width := image1.width;
                     bmp.Height := image1.height;
                     ARect := Rect(0, 0, bmp.width, bmp.height);
                     clint := round(form1.Height / 2) - 20;
                     bmp.Canvas.Brush.Color := clblack;
                     bmp.Canvas.FillRect(ARect);
                     bmp.Canvas.Font.size := 16;
                     bmp.Canvas.Font.name := '楷體_GB2312';
                     bmp.Canvas.Font.Color := clGreen;
                     if i > 3 then
                        bmp.Canvas.TextOut(0, clint - jg * 3 - lc, copy(sll.strings[i - 4], 6, length(sll.strings[i - 4]) - 5));
                     if i > 2 then
                        bmp.Canvas.TextOut(0, clint - jg * 2 - lc, copy(sll.strings[i - 3], 6, length(sll.strings[i - 3]) - 5));
                     if i > 1 then
                        bmp.Canvas.TextOut(0, clint - jg - lc, copy(sll.strings[i - 2], 6, length(sll.strings[i - 2]) - 5));
                     if i > 0 then //當前句
                        begin
                           bmp.Canvas.Font.Color := clLime;
                           bmp.Canvas.TextOut(0, clint - lc, copy(sll.strings[i - 1], 6, length(sll.strings[i - 1]) - 5));
                        end;
                     bmp.Canvas.Font.Color := clGreen;
                     bmp.Canvas.TextOut(0, clint + jg - lc, copy(sll.strings[i], 6, length(sll.strings[i]) - 5));
                     if i + 1 < sll.Count then
                        bmp.Canvas.TextOut(0, clint + jg * 2 - lc, copy(sll.strings[i + 1], 6, length(sll.strings[i + 1]) - 5));
                     //顯示到image
                     image1.Canvas.CopyRect(ARect, Bmp.Canvas, ARect);
                  end;
            end
         else
            begin
               dqj:=i-1;
               form1.image1.top:=form1.image1.top-lc;
            end;
      end;
   {//測試
   form1.image1.Canvas.Font.Color := clwhite;
   js:=js+1;
   form1.image1.Canvas.TextOut(0,0,inttostr(js)); }
   Result := 0; //必須
end;

procedure quit(this_mod: PwinampVisModule);
begin
form1.Close;
end;

procedure TForm1.N1Click(Sender: TObject);
begin
   MessageBox(0, '小天程序制作',
      'About',
      MB_ICONINFORMATION);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   //ShowWindow(form1.Handle, SW_HIDE); //在狀態欄隱藏
   //SetWindowLong(form1.Handle,GWL_EXSTYLE and gwl_style, ws_ex_clientedge and  not ws_caption);
   //SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
   clientheight := height;
   //取得winamp的句柄
   hwnd_winamp := FindWindow('Winamp v1.x', nil);
   sll := TStringList.Create;
   bmp := TBitmap.Create;
   bmp.Width := image1.Width;
   bmp.Height := image1.Height + round(screen.Height / 2);
   ARect := Rect(0, 0, bmp.width, bmp.height);
   bmp.Canvas.Brush.Color := clblack;
   bmp.Canvas.FillRect(ARect);
   wy := 0;
   jg := 30;
   image1.Height := screen.Height * 2;
   image1.Width := screen.Width * 2;
end;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
   Shift: TShiftState; X, Y: Integer);
begin
   MPos.X := X;
   MPos.Y := Y;
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
   Y: Integer);
begin
   if ssLeft in Shift then
      begin
         Form1.Left := Form1.Left - (MPos.X - X);
         Form1.Top := Form1.Top - (MPos.Y - Y);
      end;
end;

function strisint(str: string): boolean; //判斷字符是否是整數
begin
   try
      strtoint(str);
      Result := true;
   except
      Result := false;
   end;
end;

procedure TForm1.readfile;
var
   filename: string;
   szText: array[0..254] of char;
   ch: PChar;
   sl, tmp: TStringList;
   i, y, x: integer;
   sj, temp: string;
begin
   wy := 0;
   dqj := 0;
   //得到播放歌曲名
   Ch := Pointer(SendMessage(hwnd_winamp, WM_USER, SendMessage(hwnd_winamp, WM_USER, 0, 125), 211));
   filename := copy(Strpas(ch), 1, length(Strpas(ch)) - 4) + '.lrc';
   sll.Clear;
   if GetWindowText(hwnd_winamp, @szText, 255) > 0 then
      begin
         sll.Add('99999' + Strpas(@szText));
      end;
   if FileExists(filename) then
      begin
         sl := TStringList.Create;
         try
            sl.LoadFromFile(filename);
            //轉換并排序
            for i := 0 to sl.Count - 1 do
               begin
                  y := pos('[', sl.strings[i]);
                  temp := sl.strings[i];
                  tmp := TStringList.Create;
                  while y <> 0 do
                     begin
                        sj := copy(temp, pos('[', temp) + 1, pos(']', temp) - pos('[', temp) - 1);
                        temp := copy(temp, pos(']', temp) + 1, length(temp) - pos(']', temp));
                        if strisint(copy(sj, 1, 2)) and strisint(copy(sj, 4, 2)) then
                           begin
                              sj := inttostr(strtoint(copy(sj, 1, 2)) * 60 + strtoint(copy(sj, 4, 2)));
                              sj := format('%5s', [sj]);
                              tmp.Add(sj);
                           end;
                        y := pos('[', temp);
                     end;
                  for x := 0 to tmp.Count - 1 do
                     sll.Add(tmp.strings[x] + temp);
                  tmp.Free;
               end;
         finally
            sl.Free;
         end;
         sll.Sort;
      end;
   {//顯示到bitamp
   bmp.Width := image1.Width;
   bmp.Height := image1.Height+round(screen.Height / 2);
   ARect := Rect(0, 0, bmp.width, bmp.height);
   bmp.Canvas.Brush.Color := clblack;
   bmp.Canvas.FillRect(ARect);
   bmp.Canvas.Font.size := 16;
   bmp.Canvas.Font.name := '楷體_GB2312';
   bmp.Canvas.Font.Color := clGreen;
   for i := 0 to sll.Count - 1 do
      begin
         bmp.Canvas.TextOut(0, round(screen.Height / 2)+jg * i, copy(sll.strings[i], 6, length(sll.strings[i]) - 5));
      end;
   //顯示到image
   image1.Canvas.CopyRect(ARect, Bmp.Canvas, ARect);
   //顯示over      }
end;

procedure TForm1.N3Click(Sender: TObject);
begin
   if n3.Checked then
      begin
         n3.Checked := false;
         form1.FormStyle := fsNormal;
      end
   else
      begin
         n3.Checked := true;
         form1.FormStyle := fsStayOnTop;
      end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
   bmp.Destroy;
   sll.Free;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; //上下鍵調節
   Shift: TShiftState);
begin
   if key = VK_UP then
      wy := wy - 1;
   if key = VK_down then
      wy := wy + 1;
end;

procedure TForm1.CreateParams(var Params: TCreateParams);
begin
   inherited CreateParams(Params);
   with Params do
      begin
         Style := (Style or WS_POPUP) xor (ws_dlgframe);
      end;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
   form1.readfile;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
黄色成人免费在线| 亚洲va欧美va人人爽午夜| 日韩欧美电影一二三| 精品视频免费看| 欧美日韩一区高清| 欧美日韩不卡一区二区| 欧美美女视频在线观看| 欧美日韩成人一区二区| 欧美一级在线视频| 精品成人一区二区三区| 精品国产1区2区3区| 久久久久国产精品麻豆ai换脸| 久久久.com| 国产精品美女久久久久久2018| 亚洲视频小说图片| 亚洲午夜一区二区三区| 日韩av一区二区三区四区| 成人h精品动漫一区二区三区| 国产精品一品二品| 色菇凉天天综合网| 欧美一区二区久久| 国产欧美精品在线观看| 亚洲精品一卡二卡| 轻轻草成人在线| 成人动漫av在线| 欧美日本视频在线| 日本一区二区三区四区在线视频 | 国产欧美日韩久久| 亚洲精品国产成人久久av盗摄 | 欧美中文字幕一区二区三区| 欧美区在线观看| 欧美经典一区二区| 日韩黄色小视频| 成人免费视频网站在线观看| 欧美精品在线观看播放| 国产精品无遮挡| 日本vs亚洲vs韩国一区三区二区| 成人久久久精品乱码一区二区三区| 欧美日韩高清不卡| 亚洲欧美综合网| 精品一区二区av| 欧美日本一道本在线视频| 亚洲综合一区二区| 国产成人av影院| 日韩午夜电影av| 亚洲自拍偷拍图区| 国产精品亚洲视频| 欧美精品久久久久久久久老牛影院| 国产欧美一区二区精品性| 亚洲国产精品一区二区www| 国产成人综合在线观看| 欧美一区二区三区视频免费播放| 亚洲免费观看在线视频| 国内精品国产三级国产a久久 | 精品久久久久久亚洲综合网| 综合亚洲深深色噜噜狠狠网站| 秋霞电影一区二区| 欧美色视频在线| 亚洲精品国产精品乱码不99| 成人动漫一区二区三区| 中文字幕高清一区| 国产91色综合久久免费分享| 精品久久久久久无| 久久精品国产第一区二区三区| 欧美无人高清视频在线观看| 专区另类欧美日韩| 99久久精品国产观看| 亚洲国产精品99久久久久久久久| 蜜臀久久99精品久久久久久9 | 亚洲欧美日韩国产中文在线| 粉嫩欧美一区二区三区高清影视| 久久先锋影音av鲁色资源| 精品一区二区三区日韩| 欧美一级一级性生活免费录像| 午夜激情一区二区| 欧美日韩一区成人| 五月婷婷激情综合| 欧美妇女性影城| 日本不卡视频一二三区| 欧美成人video| 国产一区二区在线看| 久久精品人人做| av不卡在线观看| 亚洲综合丁香婷婷六月香| 欧美少妇性性性| 美女一区二区视频| 2020国产精品久久精品美国| 国产成人免费9x9x人网站视频| 久久伊人中文字幕| 不卡av免费在线观看| 一区二区三区在线观看国产| 91精品国产综合久久福利软件| 麻豆精品一区二区三区| 欧美激情综合五月色丁香| 一本大道av伊人久久综合| 亚洲成人资源网| 久久九九99视频| 欧美性一二三区| 国产在线播放一区三区四| 国产精品狼人久久影院观看方式| 欧美性猛片xxxx免费看久爱| 麻豆精品视频在线| 亚洲三级小视频| 欧美一级淫片007| 99久久精品免费| 久久精品国产久精国产爱| 国产精品久久久99| 91精品国产综合久久久蜜臀粉嫩 | 久久精品人人做人人综合| 97aⅴ精品视频一二三区| 日韩影院在线观看| 中文字幕不卡在线观看| 欧美美女喷水视频| 91麻豆高清视频| 激情伊人五月天久久综合| 亚洲欧美国产三级| 精品国产在天天线2019| 色国产精品一区在线观看| 国产一区不卡精品| 日本最新不卡在线| 亚洲黄一区二区三区| 精品1区2区在线观看| 欧美唯美清纯偷拍| 成人国产一区二区三区精品| 日本不卡中文字幕| 亚洲二区视频在线| 亚洲欧美色图小说| 久久久777精品电影网影网| 91精品国产综合久久蜜臀| 色婷婷精品大视频在线蜜桃视频| 国产酒店精品激情| 日韩不卡一区二区三区 | 欧美日韩国产在线观看| 99re8在线精品视频免费播放| 国产一区激情在线| 青草av.久久免费一区| 香港成人在线视频| 亚洲午夜久久久久久久久久久| 日本一区二区三区视频视频| 2014亚洲片线观看视频免费| 8v天堂国产在线一区二区| 欧美日韩一区二区在线观看| a美女胸又www黄视频久久| 国产成人精品影视| 国产另类ts人妖一区二区| 激情综合色播五月| 蜜桃传媒麻豆第一区在线观看| 日韩精品三区四区| 午夜精品一区二区三区三上悠亚| 亚洲自拍偷拍欧美| 亚洲最新视频在线播放| 亚洲精品va在线观看| 亚洲精品水蜜桃| 亚洲午夜在线视频| 性欧美疯狂xxxxbbbb| 午夜久久久影院| 日韩经典中文字幕一区| 捆绑调教美女网站视频一区| 美日韩一区二区三区| 精品在线观看免费| 成人自拍视频在线观看| 成人国产视频在线观看| 日本久久一区二区| 欧美日韩亚洲综合在线| 日韩欧美123| 国产欧美综合在线观看第十页| 中文文精品字幕一区二区| 亚洲欧美一区二区三区国产精品| 亚洲精品一卡二卡| 美日韩一区二区三区| 成人精品视频一区二区三区| 91网页版在线| 7777精品伊人久久久大香线蕉| 精品va天堂亚洲国产| 免费成人av在线播放| 国产盗摄一区二区| 欧美在线你懂得| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 精品污污网站免费看| 久久综合九色欧美综合狠狠 | 老司机精品视频导航| k8久久久一区二区三区| 欧美日韩三级一区| 久久久精品国产免大香伊| 亚洲精品福利视频网站| 久久精品国产一区二区三 | 丝袜美腿高跟呻吟高潮一区| 激情久久五月天| 欧美专区日韩专区| 国产偷国产偷亚洲高清人白洁| 一区二区三区四区高清精品免费观看 | 亚洲欧洲综合另类在线| 蜜桃视频一区二区三区| 色婷婷综合久久| 久久久亚洲综合| 亚洲bt欧美bt精品| caoporm超碰国产精品| 欧美成人午夜电影| 亚洲综合在线电影| 成人aa视频在线观看|