08-04-2014, 06:00 PM
السلام عليكم
الموضوع واضح وهو برنامج يقوم بتشغيل و قراءة اذكار حصن المسلم
صورة البرنامج
![[صورة: dt4s.png]](http://img855.imageshack.us/img855/6750/dt4s.png)
تحميل البرنامج
الكود سورس
الموضوع واضح وهو برنامج يقوم بتشغيل و قراءة اذكار حصن المسلم
صورة البرنامج
![[صورة: dt4s.png]](http://img855.imageshack.us/img855/6750/dt4s.png)
تحميل البرنامج
كود :
http://www.mediafire.com/download/51b80ko3ow3qf5d/%D8%AD%D8%B5%D9%86+%D8%A7%D9%84%D9%85%D8%B3%D9%84%D9%85.zipالكود سورس
PHP كود :
type getUrl = class(TThread)
private
procedure Execute; override;
constructor Create(CreateSuspended: Boolean);
destructor Destroy; override;
protected
end;
type
TForm1 = class(TForm)
sStatusBar1: TsStatusBar;
sPanel1: TsPanel;
sListBox1: TsListBox;
sSkinManager1: TsSkinManager;
sSkinProvider1: TsSkinProvider;
sImage1: TsImage;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure sListBox1Click(Sender: TObject);
private
{ Private declarations }
public
procedure WndProc(var Msg: TMessage); override;
procedure geterror(es: string);
{ Public declarations }
end;
const
WM_INFO_UPDATE = WM_USER + 101;
var
Form1: TForm1;
url:WideString;
NThread:getUrl;
chan: HSTREAM = 0;
win: hwnd;
implementation
{$R *.dfm}
procedure StatusProc(buffer: Pointer; len, user: DWORD); stdcall;
begin end;
procedure TForm1.geterror(es: string);
begin
sStatusBar1.Panels[0].Text:=es + ' > ' + '(خطأ رقم : ' + IntToStr(BASS_ErrorGetCode) + ')';
end;
function getNM(n:Integer):string;
begin
case n of
0..9 : Result:='00'+inttostr(n)+'.mp3';
10..99 : Result:='0'+inttostr(n)+'.mp3';
100..1000 : Result:=''+inttostr(n)+'.mp3';
end;
end;
function _OpenURL(Src: string): Integer;
var url :AnsiString;
Len, Progress: DWORD;
begin
Result := 0;
BASS_StreamFree(chan);
progress := 0;
SendMessage(win, WM_INFO_UPDATE, 0, 0);
SetLength(url, Length(Src));
UnicodeToUtf8(PAnsiChar(url), PWideChar(Src), Length(Src));
chan := BASS_StreamCreateURL(PAnsiChar(url), 0, BASS_STREAM_STATUS, @StatusProc, 0);
if (chan = 0) then
begin
SendMessage(win, WM_INFO_UPDATE, 1, Bass_ErrorGetCode());
end
else
begin
repeat
len := BASS_StreamGetFilePosition(chan, BASS_FILEPOS_END);
if (len = DW_Error) then
break;
progress := (BASS_StreamGetFilePosition(chan, BASS_FILEPOS_DOWNLOAD) -
BASS_StreamGetFilePosition(chan, BASS_FILEPOS_CURRENT)) * 100 div len;
SendMessage(win, WM_INFO_UPDATE, 2, progress);
until
progress > 75;
BASS_ChannelPlay(chan, FALSE);
Form1.sStatusBar1.Panels[0].Text :='';
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
win := handle;
if (not BASS_Init(-1, 44100, 0, Handle, nil)) then
begin
ShowMessage('لا يمكن تشغيل الصوتيات');
Halt;
end;
BASS_SetConfig(BASS_CONFIG_NET_PLAYLIST, 1);
BASS_SetConfig(BASS_CONFIG_NET_PREBUF, 0);
end;
procedure TForm1.WndProc(var Msg: TMessage);
begin
inherited;
if Msg.Msg = WM_INFO_UPDATE then
case msg.WParam of
0:sStatusBar1.Panels[0].Text:= 'جاري الاتصال ...';
1:sStatusBar1.Panels[0].Text := 'لا تعمل';
2: sStatusBar1.Panels[0].Text := Format('التخزين المؤقت ... %d%%', [msg.LParam]);
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
BASS_Free;
end;
procedure TForm1.sListBox1Click(Sender: TObject);
begin
url:='http://d1.islamhouse.com/data/ar/ih_sounds/chain/ar_7esn_AlMoslem_by_Doors/ar_7esn_AlMoslem_by_Doors_'+getNM(sListBox1.ItemIndex+2) ;
NThread:=getUrl.Create(True);
NThread.Resume;
sPanel1.Caption:=Trim(Copy(sListBox1.Items[sListBox1.ItemIndex],5,length(sListBox1.Items[sListBox1.ItemIndex]))) ;
end;
{ getUrl }
constructor getUrl.Create(CreateSuspended: Boolean);
begin
inherited Create(CreateSuspended);
end;
destructor getUrl.Destroy;
begin
BASS_Free;
inherited;
end;
procedure getUrl.Execute;
begin
// FreeOnTerminate := True;
_OpenURL(url );
end;
![[صورة: 6ft1.png]](http://img834.imageshack.us/img834/6132/6ft1.png)
