免费下载:功能及界面仿WinAMP的(rm,mp3,ra)媒体播放器,方便需连续看小电影的同志们。界面预览 一专用控件源码发布 (100分)

  • 主题发起人 主题发起人 gondsoft
  • 开始时间 开始时间
G

gondsoft

Unregistered / Unconfirmed
GUEST, unregistred user!
Gond Player (提建议者有分!)
1.0
http://go.6to23.com/gond
gondsoft@163.com
下载:
http://go.6to23.com/gond/gondPlayer.htm
界面:
GondPlayer.jpg


界面仿WinAMP,由主控制窗口,播放列表窗口,视频窗口组成,各窗口间移动时磁性吸引;
除和WinAMP一样的播放功能外,另加入重复播放当前媒体功能,即支持重复播放所有媒体,当前媒体功能;
支持WinAMP播放列表文件(M3U)导入导出;播放列表中的功能与WinAMP相同;
支持播放MP3,RM,RA格式媒体文件;
即将支持皮肤更换功能(共享WinAMP皮肤文件);
 
1)当播放文件为空时,点“删除选择的文件”就出错
2)应该允许同时选中多个并打开
 
我把realplay卸载掉,再启动程序时出现致命错误。
 
to rscn:
BUG已收集
另需要说明:Gond Player要求安装Real Player。
谢谢rscn!
 
刚下载,一试就不行了。非法操作。
显示:Exception EOleSysError in module GONDPLAYER.exe at 0005C5F9 类没有注册。
帮不到你试了。
 
to 猴亻子:
你需要安装Real Player.
 
好!再试试吧!
 
播放列表有错误
 
在播放列表中双击没有反应。
 
>>播放列表有错误
>>在播放列表中双击没有反应。
以上问题已解决,下载链接不变。
 
你的滚动条控件有BUG吧,看看在播放列表中双击后滑块的调节情况。
 
to thx1180:
我按你的报告测试后没有异常,你能否说清楚些或贴图上来呢?
谢谢!
 
又没有问题了,可能是我刚才启动的程序太多了所致。
 
今天在线?我上次回家又试了,做了窗口切换就有点小问题。我截了几张图,可惜没有地方贴啊。
 
发到我的EM吧:
gond@163.com


 
你在QQ上的话和我联系:20126301
 
交个朋友吧,QQ:8977516
 
控件发布。
由于该软件所有控件均为个人编写。
由thx1180提交的报告说明其中一个控件出现BUG,现将该控件源码发布:
控件名称:TGondTrackBar
unit GondTrackBar;
interface
uses controls,Classes,Messages,Windows,ComCtrls,Commctrl,Consts,Graphics;
Type
TGondTrackBar=class(TGraphicControl)
private
FDrawing:Boolean;
FBaseDist:Real;
FMax:Integer;
FPosition:Integer;
FButtonPosX:Integer;
FButtonPosY:Integer;
FButtonOldX:Integer;
FButtonOldPosX:Integer;
FBitmap:TBitmap;
FButtonBitmap:TBitmap;
FTempBitmap:TBitmap;
FMouseDown:Boolean;
FOnChange: TNotifyEvent;
procedure SetBitmap(Value:TBitmap);
procedure SetButtonBitmap(Value:TBitmap);
procedure RefreshButtonPos(NewPosX,NewPosY:Integer);
procedure SetTempBitmapSize;
procedure SetMax(Value:Integer);
procedure SetJumpPosition(Value:Integer);
procedure SetPosition(X:Integer;Y:Integer);
procedure UpdateBaseDist;
procedure UpdateButtonPos;
protected
function CanAutoSize(var NewWidth, NewHeight: Integer): Boolean;
override;
procedure Paint;
override;
procedure Resize;
override;
procedure MouseDown(Button: TMouseButton;
Shift: TShiftState;
X, Y: Integer);
override;
procedure MouseMove(Shift: TShiftState;
X, Y: Integer);
Override;
procedure MouseUp(Button: TMouseButton;
Shift: TShiftState;
X, Y: Integer);
override;
procedure Loaded;
override;
public
constructor Create(AOwner:TComponent);override;
destructor Destroy;override;
published
property Align;
property AutoSize;
property ShowHint;
property Max:Integer read FMax write SetMax;
property Position:Integer read FPosition write SetJumpPosition;
property Bitmap:TBitmap read FBitmap write SetBitmap;
property ButtonBitmap:TBitmap read FButtonBitmap write SetButtonBitmap;
property OnChange: TNotifyEvent read FOnChange write FOnChange;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
end;

procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Gond', [TGondTrackBar]);
end;

{ TGondTrackBar }

constructor TGondTrackBar.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
Width:=40;
Height:=20;
FMax:=10;
FDrawing:=False;
FButtonPosX:=0;
FButtonPosY:=0;
FBitmap:=TBitmap.Create ;
FButtonBitmap:=TBitmap.Create ;
FTempBitmap:=TBitmap.Create ;
end;

destructor TGondTrackBar.Destroy;
begin
FBitmap.Free;
FButtonBitmap.Free;
FTempBitmap.Free;
inherited Destroy;
end;

procedure TGondTrackBar.Paint;
begin
FDrawing:=True;
if csDesigning in ComponentState then
with inherited Canvasdo
begin
Pen.Style := psDash;
Brush.Style := bsClear;
Rectangle(0, 0, Width, Height);
end;

if FBitmap<>nil then
Canvas.Draw(0,0,FBitmap);
FDrawing:=False;
RefreshButtonPos(FButtonPosX,FButtonPosY);
end;

procedure TGondTrackBar.Resize;
begin
inherited;
UpdateBaseDist;
UpdateButtonPos;
end;

procedure TGondTrackBar.Loaded;
begin
inherited;
UpdateBaseDist;
UpdateButtonPos;
end;

procedure TGondTrackBar.SetBitmap(Value: TBitmap);
begin
FBitmap.Assign(Value);
Invalidate;
end;

procedure TGondTrackBar.SetButtonBitmap(Value: TBitmap);
begin
FButtonBitmap.Assign(Value);
UpdateButtonPos;
UpdateBaseDist;
Invalidate;
end;

procedure TGondTrackBar.SetTempBitmapSize;
begin
if not FButtonBitmap.Empty then
begin
if (FTempBitmap.Width<>FButtonBitmap.Width) or
(FTempBitmap.Height<>FButtonBitmap.Height) then
begin
FTempBitmap.Width:=FButtonBitmap.Width;
FTempBitmap.Height:=FButtonBitmap.Height;
end;
end;
end;

procedure TGondTrackBar.SetMax(Value: Integer);
begin
if Value<=0 then
Value:=10;
if FMax<>Value then
begin
FMax:=Value;
UpdateBaseDist;
end;
end;

procedure TGondTrackBar.UpdateBaseDist;
begin
if FButtonBitmap<>nil then
begin
FBaseDist:=(Width-FButtonBitmap.Width)/FMax;
SetJumpPosition(FPosition);
end;
end;

procedure TGondTrackBar.UpdateButtonPos;
begin
if FButtonBitmap<>nil then
FButtonPosY:=(Height-FButtonBitmap.Height) div 2;
end;

function TGondTrackBar.CanAutoSize(var NewWidth,
NewHeight: Integer): Boolean;
begin
Result:=True;
if not (csDesigning in ComponentState) or (FBitmap.Width>0)
and (FBitmap.Height>0) then
begin
if Align in [alNone,alLeft,alRight] then
NewWidth:=FBitmap.Width;
if Align in [alNone,alTop,alBottom] then
NewHeight:=FBitmap.Height;
end
end;

procedure TGondTrackBar.RefreshButtonPos(NewPosX, NewPosY: Integer);
var
FTempRect:TRect;
FTempButtonRect:TRect;
begin
if (not FButtonBitmap.Empty) and (not FDrawing) then
begin
if FTempBitmap.Empty then
SetTempBitmapSize
else
Canvas.Draw(FButtonPosX,FButtonPosY,FTempBitmap);
FButtonPosX:=NewPosX;
FTempRect:=Rect(0,0,FButtonBitmap.Width,FButtonBitmap.Height);
FTempButtonRect:=Rect(FButtonPosX,FButtonPosY,
FButtonPosX+FButtonBitmap.Width,FButtonPosY+FButtonBitmap.Height);
FTempBitmap.Canvas.CopyRect(FTempRect,Canvas,FTempButtonRect);
Canvas.Draw(FButtonPosX,FButtonPosY,FButtonBitmap);
end;
end;

procedure TGondTrackBar.SetJumpPosition(Value: Integer);
begin
if Value<0 then
Value:=0;
if Value>FMax then
Value:=FMax;
if (FPosition<>Value) and (not FMouseDown) then
begin
FPosition:=Value;
RefreshButtonPos(Round(FPosition*FBaseDist),FButtonPosY);
end;
end;

procedure TGondTrackBar.SetPosition(X, Y: Integer);
begin
if X<0 then
X:=0;
if X>Width-FButtonBitmap.Width then
X:=Width-FButtonBitmap.Width;
FPosition:=Round(X/FBaseDist);
RefreshButtonPos(X,FButtonPosY);
if Assigned(FOnChange) then
FOnChange(Self);

end;

procedure TGondTrackBar.MouseDown(Button: TMouseButton;
Shift: TShiftState;
X, Y: Integer);
begin
FMouseDown:=True;
FButtonOldX:=X;
if (X<FButtonPosX) or (x>FButtonPosX+FButtonBitmap.Width) then
begin
FButtonOldPosX:=X-FButtonBitmap.Width div 2;
SetPosition(FButtonOldPosX,Y);
end else
FButtonOldPosX:=FButtonPosX;
inherited;
end;

procedure TGondTrackBar.MouseMove(Shift: TShiftState;
X, Y: Integer);
begin
if FMouseDown then
begin
SetPosition(FButtonOldPosX+(X-FButtonOldX),Y);
end;
inherited;
end;

procedure TGondTrackBar.MouseUp(Button: TMouseButton;
Shift: TShiftState;
X,
Y: Integer);
begin
FMouseDown:=False;
inherited;
end;

end.
 
后退
顶部