Jump to content

Listbox'ta No Ve Süre Gösterme


rafaxplayer
 Share

Recommended Posts

Günaydın arkadaşlar siteye yeni kayıt oldum bir arkadaşın önerisi üzerine ve çok önemli paylaşımlar var gerçekten bu yüzden tüm ekibi ve paylaşım yapanları kutlarım.Zamanla benimde katkılarım olur inşallah ben amsde bir çalışma yapıyorum ve takıldığım 1-2 yer var yardım ederseniz çok sevinirim
projeme müzik çalar ekledim ve klasör ekle butonuna tıklayınca listeye alan mp3lerin 01.Parça ismi 00:00 süresi bu şekil listelenmesini istiyorum aslında yapmıtım fakat karışık bozuk bişi oldu parça isimi uzun olunca listeden süre falan taşıyordum örnekteki resimde gibi olmasını istiyorum şimdiden çok teşekkürler...

[img]http://c1202.hizliresim.com/u/5/2fv0t.png[/img] Edited by rafaxplayer
Link to comment
Share on other sites

timera
[code]
nLen = Audio.GetLength(CHANNEL_BACKGROUND);
Paragraph.SetText("Paragraf Objesi", SecondsToClock(nLen));
[/code]
globale

[code]
function SecondsToClock(sSeconds)
local nSeconds = String.ToNumber(sSeconds)
if nSeconds == 0 then

return "00:00";
else
local nMins = string.format("%02.f", Math.Floor(nSeconds/60));
local nSecs = string.format("%02.f", Math.Floor(nSeconds - nMins *60));
return nMins..":"..nSecs
end
end
[/code]

bunula süreyi gösterirsin

Edited by Kral__
Link to comment
Share on other sites

verdiğin kodlar ile benim dediğimim alakası yok yukarıda resimde örnek gösterdim aynı o şekil olacak kodlarım şu şekilde

Global:
[code]function SecondsToClock(sSeconds)
local nSeconds = String.ToNumber(sSeconds)
if nSeconds == 0 then

return "00:00";
else
local nMins = string.format("%02.f", Math.Floor(nSeconds/60));
local nSecs = string.format("%02.f", Math.Floor(nSeconds - nMins *60));
return nMins..":"..nSecs
end
end[/code]



Klasör Ekle Butonu:

[code]dosya = Dialog.FolderBrowse("MP3 Klasörü Ekle", _DesktopFolder)
if (dosya ~= "CANCEL") then
tblFiles = File.Find(dosya, "*.mp3", true, false, nil, nil);
if tblFiles ~= nil then
for i,v in pairs (tblFiles) do
local tblSplit = String.SplitPath(v)
MediaPlayer.Load("player", dosya);
toplam = MediaPlayer.GetLength("player");
ListBox.AddItem("playlist", tblSplit.Filename.." - ".. SecondsToClock(toplam)"", v) StatusDlg.Hide();
end
end[/code]

Fakat listboxa sıralı şekilde nası ekliycem anlayamdım 01. 02. gibi sürede olmuyor resimdeki gibi

Edited by rafaxplayer
Link to comment
Share on other sites

müzik ekleme butonu On click:

[spoiler]
[code]
tblMenu = {};
tblMenu[5] ={};
tblMenu[5].Text = "Aç";
tblMenu[5].ID = 101;
tblMenu[5].IconID = 11;
tblMenu[5].Checked = false;
tblMenu[5].Enabled = true;

tblMenu[4] ={};
tblMenu[4].Text = "Kaydet";
tblMenu[4].ID = 102;
tblMenu[4].IconID = 11;
tblMenu[4].Checked = false;
tblMenu[4].Enabled = true;

tblMenu[1] ={};
tblMenu[1].Text = "Gözat";
tblMenu[1].ID = 104;
tblMenu[1].IconID = 11;
tblMenu[1].Checked = false;
tblMenu[1].Enabled = true;

tblMenu[3] ={};
tblMenu[3].Text = "Temizle";
tblMenu[3].ID = 100;
tblMenu[3].IconID = 11;
tblMenu[3].Checked = false;
tblMenu[3].Enabled = true;

tblMenu[2] ={};
tblMenu[2].Text = "Seçerek Aç";
tblMenu[2].ID = 105;
tblMenu[2].IconID = 11;
tblMenu[2].Checked = false;
tblMenu[2].Enabled = true;

ptMouse = System.GetMousePosition(false, nil);

nRes = Application.ShowPopupMenu(ptMouse.X, ptMouse.Y, tblMenu, TPM_RIGHTALIGN, TPM_TOPALIGN, true, false);

if(nRes == 100)then

Audio.Stop(CHANNEL_BACKGROUND);
ListBox.DeleteItem("list", -1);

elseif(nRes == 101)then

LoadPlayList("list")
elseif(nRes == 102)then
CreatePlayList("list")


elseif(nRes == 104)then

dosya = Dialog.FolderBrowse("Mp3 Klasörünü seçin", _DesktopFolder)
StatusDlg.Show(0, false);
tblFiles = File.Find(dosya, "*.mp3", true, false, nil, nil);
if tblFiles then
for i,v in pairs (tblFiles) do
local tblSplit = String.SplitPath(v)
ListBox.AddItem("list", tblSplit.Filename, v);
end
end
StatusDlg.Hide();


elseif(nRes == 105)then


dosya = Dialog.FileBrowse(true, "Müzik Seçiniz", _DesktopFolder, "Müzik (*.mp3)|*.mp3|", "", "dat", true, false);
StatusDlg.Show(0, false);
if dosya then
for i,v in pairs (dosya) do
local tblSplit = String.SplitPath(v)
ListBox.AddItem("list", tblSplit.Filename, v);
end
end


StatusDlg.Hide();
end


[/code]
[/spoiler]

global
[spoiler]
[code]
--çalma listesi oluştur
function CreatePlayList(list)
local count = ListBox.GetCount(list)
if (count>0) then
local tFile = Dialog.FileBrowse(false,"Dosya Kaydet",_DesktopFolder,"Çalma Listesi(*.m3u)|*.m3u|","","m3u",false,false);
if (tFile and tFile[1]~="CANCEL") then
local str = ""
for i=1,count do
str = str .. ListBox.GetItemData(list,i).."\r\n"
end
TextFile.WriteFromString(tFile[1],str,false);
end
else
Dialog.Message("Uyarı","Listede veri yok.");
end
end
--çalma listesini yükle
function LoadPlayList(list)
local tFile = Dialog.FileBrowse(true,"Dosya Kaydet",_DesktopFolder,"Çalma Listesi(*.m3u)|*.m3u|","","m3u",false,false);
if (tFile and tFile[1]~="CANCEL") then
local readTbl = TextFile.ReadToTable(tFile[1]);
if (readTbl) then
ListBox.SetUpdate(list,false);
for i=1,#readTbl do
local split = String.SplitPath(readTbl[i]);
ListBox.AddItem(list,split.Filename..split.Extension,readTbl[i]);
end

ListBox.SetUpdate(list,true);
end
end
end

[/code]
[/spoiler]
yaparsan daha gelişmiş olur ;) genellikle bunu kullanıyorum

şu 01. 02. gelirsek bunu bilmiyorum üstadlardan yardım rica et :)

Edited by Kral__
Link to comment
Share on other sites

ben ne diyorum sen ne veriyorsun arkadaşım yaa ne demek istediğimi anladın mı anlamadıysan resme bak lütfen klasör seçinde listboxa mp3ler ile beraber topalm sürelerini ve bşalarında 01.02 gibi eklesin diyorum verdiğin kodlar alakasız bilmiyorsan yazma bari rica ederiyorum

Link to comment
Share on other sites

indigorosede buna benzer bir bilgi buldum fakat düzenleyemedim ben mp3leri windows media player ile çaldırıyorum belki biri bu kodları düzenleyebilir

[code]function GetAudioFiles(Path, LB, LA)

if Total ~= 0 then Total = 0 end

tbType = {"*.mp3","*.wav","*.wma","*.mid","*.ogg","*.aif"," *.aiff","*.raw"};
for i,k in tbType do
tbFiles = File.Find(Path, k, false, false, nil, nil);
if (tbFiles ~= nil) then
ListBox.SetUpdate(LB, false);
ListBox.SetEnabled(LB, false);

for i, v in tbFiles do
filePath = String.SplitPath(v);
ListBox.AddItem(LB, filePath.Filename, v);
Audio.Load(CHANNEL_USER4, v, false, false);
Total = Total + Audio.GetLength(CHANNEL_USER4);
end

ListBox.SetUpdate(LB, true);
ListBox.SetEnabled(LB, true);

local nTotal = String.ToNumber(Total)
if nTotal == 0 then
Label.SetText(LA, "00:00:00");
else
nHours = string.format("%02.f", Math.Floor(nTotal/3600));
nMins = string.format("%02.f", Math.Floor(nTotal/60 - (nHours*60)));
nSecs = string.format("%02.f", Math.Floor(nTotal - nHours*3600 - nMins *60));
Label.SetText(LA, nHours..":"..nMins..":"..nSecs);
end
end
end
end[/code]

and heres how to call the function

[code]folder = Dialog.FolderBrowse("Open Folder", _SourceDrive);
if folder ~= "" and folder ~= "CANCEL" then
GetAudioFiles(folder, "ListBox1", "Label1")
end[/code]

remember to set your listbox and label name


[b]ReaLyMaN[/b] evet klasör ekle dediğimde mp3leri listeliyorya listboxa mp3ler ile beraber toplam sürelerini ve 01.02. şeklinde sıralanmasını istiyorum aynı örnekte resimde gibi sağol cevabın için

Edited by rafaxplayer
Link to comment
Share on other sites

Milano88 abimizin örneğine bir baksan süper olur.Labele zamanı yazdırıyor.Onu pekala inputa for döngüsüyle yazdırabilirsin.Bu arada milano88 işlerinden dolayı çok yoğun.Cevap verememesi normal.


[quote]http://www.mediafire.com/?8fyfze8tecedt2o[/quote]

Link to comment
Share on other sites

örneğe baktım

nLen = Audio.GetLength(CHANNEL_BACKGROUND)
Label.SetText("Label2", tblSplit.Filename.. " - ".. SecondsToClock(nLen));

ile toplam süreyi yazdırıyor aynı şeyi bende yapıyorum olmuyor sadece media player ile
MediaPlayer.Load("player", r2Path);
toplam = MediaPlayer.GetLength("player");
ListBox.AddItem("playlist", String.SplitPath(r2Path).Filename" - "..SecondsToClock(toplam)"", r2Path)

Link to comment
Share on other sites

hocam ne saçma konuşuyorsunuz her yorum yaptığımda laf sokuyorsunuz o zmn örnek verirken adam gibi verim-n hazıcımıyız deiliz bilmediğimizden soruyoruz neymiş kafanızı kullanmıyorsunuz sen ilk önce kullan zaten kod verilmiş sadece numara kalmış <_< olan bana oluyo. kardeşim sende araştır kaç tane çalışmalar var bi arasan neler bulursun <_<

Link to comment
Share on other sites

uffff konu uçmuşşş neyse cevabını verim dll ye indir ilk önce ve sonra klasör ekle butonundaki listboxadditem kodundan önce şu kodu yaz
[code]uzunluk = DLL.CallFunction("AutoPlay\\Plugins\\MP3iNFO.dll", "MP3iNFOs", "\""..tamdosyayolu.."\",3", DLL_RETURN_TYPE_STRING, DLL_CALL_STDCALL);
ListBox.AddItem("playlist", String.SplitPath(r2Path).Filename" - "..uzunluk"", r2Path) [/code]

dll:
[code]http://www.mediafire.com/?o4v554dkj49nz5m[/code]

Link to comment
Share on other sites

Listboxdaki nesne sayısı alıp örneğin 1 den saşlayarak sıralar.Veya alternatif olarak da file.findla aynısı yapılır.

[quote]nCount=ListBox.GetCount("ListBox1")
if nCount ~= 0 then
for i=1,nCount do
result = ListBox.AddItem("ListBox1", i..".", "");
end
end
[/quote]

Link to comment
Share on other sites

[b]ReaLyMaN[/b] beni savunduğun içinde ayriyetten teşekkür ederim kardeşim :) hala milano88 yardım etmiyor diyorlar ya hayretler içindeyim forumda kaç kişiye katkım bulundu Allah bilir rainmeterden tut..photoshop ams de player yapma sevdasına kadar hep ben sebeb oldun sanırım :D

Link to comment
Share on other sites

[quote name='milano88' date='05 February 2012 - 13:46 ' timestamp='1328442405' post='1150993']
[b]ReaLyMaN[/b] beni savunduğun içinde ayriyetten teşekkür ederim kardeşim :) hala milano88 yardım etmiyor diyorlar ya hayretler içindeyim forumda kaç kişiye katkım bulundu Allah bilir rainmeterden tut..photoshop ams de player yapma sevdasına kadar hep ben sebeb oldun sanırım :D
[/quote]

Sen Anlamak isteyenler anlattığın için hazıra konanların böyle bir ithamda bulunması normaldir. Sen anlamak isteyenler için anlatmaya devam et.. Armut piş ağzıma düş diyenler bir gün öğrenir belki öğrenmeyi.

Edited by Kazım
Link to comment
Share on other sites

[quote name='milano88' date='05 February 2012 - 13:46 ' timestamp='1328442405' post='1150993']
[b]ReaLyMaN[/b] beni savunduğun içinde ayriyetten teşekkür ederim kardeşim :) hala milano88 yardım etmiyor diyorlar ya hayretler içindeyim forumda kaç kişiye katkım bulundu Allah bilir rainmeterden tut..photoshop ams de player yapma sevdasına kadar hep ben sebeb oldun sanırım :D
[/quote]
Ben teşekkür ederim asıl abi.İyi kötü seni tanıyoruz abi.Birçok şeyde en başta geldin biliyorum.Daha önce de hayranlığımı dile getirmiştim :)Zaten her insanın işi gücü olabilir.Sorunu olabilir.Yardım etmiyor diye dile getirmek de yanlış.Bencillik sadece.Biride çıkıp sıhhati yerinde olsun yeter dese şaşacağım.Hem savunulmaya ihtiyacın yok abi.Bilen bilir, bilmeyende kendi bilir.

Edited by ReaLyMaN
Link to comment
Share on other sites

güzel yorumlarınız için teşekkür ederim arkadaşlar...konuyu açan arkadaşada 1-2 bişi daha söylemekte fayda var listboxa 01. 02. vss data eklerken adamın mp3 klasöründe 01.jcvcjhvjchv.mp3 diye bir şarkı var olacacağını da düşünmen lazım sonra 01.01fbfbb.mp3 gibi eklenince güzel bir görüntü vermez listboxta get itemtext ile parça önünde sayı falan bulunuyorsa bunuda sildirmen lazım en azından ben öyle yapıyorum :D ve verdiğim dll toplam süreleri 03:35 vss gibi göstermez 3:55 veya 3:5 der örneğin 03:05 ise bunuda return ile 00:00 a çevirmen lazım işin uzun biraz :D ama olur sıkma canını insan oğlu bu herşeyi yapar yeterki iste prohramlama dillerinide insanlar yazmış :D hadi kolay gelsin

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...