Toplamı bir alt satıra yazdırma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Toplamı bir alt satıra yazdırma

Mesaj gönderen brs »

Selam media player yapıyorum, fakat ListView de şarkı sürelerini hesaplama işleminden sonra total süreyi bir alt satıra nasıl aktara bilirim


Örnek resim: http://hizliresim.com/XW2y70

Kod: Tümünü seç

procedure TForm4.Button2Click(Sender: TObject);
var
i: Integer;
BSaat, Sure: TDateTime;
begin
for i := 0 to ListView1.Items.Count - 1 do
begin
BSaat:= StrToTime(ListView1.Items[i].SubItems[0]); //Başlama saati
Sure:= StrToTime(ListView1.Items[i].SubItems[4]);// Şarkı süresi

ListView1.Items[i].SubItems[0]:= (TimeToStr(BSaat + Sure));
end;
end;
Örnek:

B. Saati Sanatçı Adı Şarkı Süresi
00:00:00 Kayahan 00:03:00
00:03:00 Mustafa 00:04:00
00:07:00 Kenannn 00:02:00
00:09:00
En son brs tarafından 23 May 2015 01:20 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: Toplamı bir alt satıra yazdırma

Mesaj gönderen brs »

Konu güncel arkadaşlar...
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
xxxjedixxx
Üye
Mesajlar: 216
Kayıt: 10 Ara 2013 03:50

Re: Toplamı bir alt satıra yazdırma

Mesaj gönderen xxxjedixxx »

Anladığım kadarıyla cevaplıyorum. Umarım olmuştur.

Kod: Tümünü seç

for i := 0 to ListView1.Items.Count - 1 do
begin
  BSaat := 0; Sure := 0;
  if i > 0 then
  begin
    BSaat:= StrToTime(ListView1.Items[i - 1].SubItems[0]); //Başlama saati
    Sure:= StrToTime(ListView1.Items[i - 1].SubItems[4]);// Şarkı süresi
  end;
  ListView1.Items[i].SubItems[0]:= (TimeToStr(BSaat + Sure));
end;
Kullanıcı avatarı
hido
Üye
Mesajlar: 268
Kayıt: 29 Mar 2014 04:32

Re: Toplamı bir alt satıra yazdırma

Mesaj gönderen hido »

Yıllar önce bende buna benzer bir mp3 için uğraşmıştım yapamayınca vazgeçtim (Formda uzman arkadaşlar mutlaka yardımcı olurlar)

Sanırım brs arkadaş

Bir şarkı süresi 00:04:00 dakika ise ve 00:00:00 da başlayacak bir sonraki şarkının başlayacağı zamanı bulmaya çalışıyor

00:00:00 Şarkı adı 00:04:00
00:04:00 Şarkı adı 00:05:00
00:09:00 Şarkı adı 00:04:00
00:11:00

Gibi diye düşünüyorum amacı süreleri alt alt toplattırma yani bir sonraki şarkının saat kaç da başlayacağını bilmek istiyor...
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: Toplamı bir alt satıra yazdırma

Mesaj gönderen brs »

xxxjedixxx yazdı:Anladığım kadarıyla cevaplıyorum. Umarım olmuştur.

Kod: Tümünü seç

for i := 0 to ListView1.Items.Count - 1 do
begin
  BSaat := 0; Sure := 0;
  if i > 0 then
  begin
    BSaat:= StrToTime(ListView1.Items[i - 1].SubItems[0]); //Başlama saati
    Sure:= StrToTime(ListView1.Items[i - 1].SubItems[4]);// Şarkı süresi
  end;
  ListView1.Items[i].SubItems[0]:= (TimeToStr(BSaat + Sure));
end;
Teşekkür ederim....
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: Toplamı bir alt satıra yazdırma

Mesaj gönderen brs »

Selam,

Listview deki Bsaati 00:15:00 olarak yapıyorum fakat butona bastığımda BSaati 00:00:00 olarak değiştiriyor bu durumu nasıl düzelte bilirim...

ListView1.Items.SubItems[0]); //Başlama saatini referans almalı.


Kod: Tümünü seç

for i := 0 to ListView1.Items.Count - 1 do
begin
BSaat := 0; 
Sure := 0;
  if i > 0 then
  begin
    BSaat:= StrToTime(ListView1.Items[i - 1].SubItems[0]); //Başlama saati
    Sure:= StrToTime(ListView1.Items[i - 1].SubItems[4]);// Şarkı süresi
  end;
  ListView1.Items[i].SubItems[0]:= (TimeToStr(BSaat + Sure));
end;
En son brs tarafından 23 May 2015 01:20 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
xxxjedixxx
Üye
Mesajlar: 216
Kayıt: 10 Ara 2013 03:50

Re: Toplamı bir alt satıra yazdırma

Mesaj gönderen xxxjedixxx »

Merhaba,
Başlangıçta verdiğiniz örneğe göre yazdığım kod çalışmalıydı. Yine tahminler üzerinden yardımcı olmaya çalışayım.

Muhtemelen istediğinizin şu olduğunu düşünüyorum

Kod: Tümünü seç

//Daima listede en az bir satır olduğunu varsayıyorum, ne bileyim tahmin ediyorum.
//Yine söylediğinden anladığım, ilk satırın başlangıcını sen belirliyorsun, bu yüzden ona dokunmuyoruz
//Bu yüzden 2. satırdan itibaren hesaplıyoruz
with ListView1 do
begin
  for i := 1 to Items.Count - 1 do
  begin
    BSaat:= StrToTime(Items[i - 1].SubItems[0]);
    Sure:= StrToTime(Items[i - 1].SubItems[4]);
    Items[i].SubItems[0] := TimeToStr(BSaat + Sure);
  end;
end;
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: Toplamı bir alt satıra yazdırma

Mesaj gönderen brs »

xxxjedixxx yazdı:Merhaba,
Başlangıçta verdiğiniz örneğe göre yazdığım kod çalışmalıydı. Yine tahminler üzerinden yardımcı olmaya çalışayım.

Muhtemelen istediğinizin şu olduğunu düşünüyorum

Kod: Tümünü seç

//Daima listede en az bir satır olduğunu varsayıyorum, ne bileyim tahmin ediyorum.
//Yine söylediğinden anladığım, ilk satırın başlangıcını sen belirliyorsun, bu yüzden ona dokunmuyoruz
//Bu yüzden 2. satırdan itibaren hesaplıyoruz
with ListView1 do
begin
  for i := 1 to Items.Count - 1 do
  begin
    BSaat:= StrToTime(Items[i - 1].SubItems[0]);
    Sure:= StrToTime(Items[i - 1].SubItems[4]);
    Items[i].SubItems[0] := TimeToStr(BSaat + Sure);
  end;
end;
Teşekkür ederim....
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Cevapla