Kodbank İndir

! CODEBANK 2012 !

İNDİRMEK&DETAYLI BİLGİ ALMAK İÇİN BURAYI TIKLAYINIZ.

ÖNEMLİ AÇIKLAMA: MUTLAKA OKUYUNUZ!

Gönderen Konu: listbox DbClick  (Okunma sayısı 1044 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı bymerag

  • Kıdemli Üye
  • *****
  • İleti: 301
  • Rep: +1/-1
  • Cinsiyet: Bay
listbox DbClick
« : 06 Mayıs 2009 21:47:33 »
Kod: Delphi
  1. procedure TfrMain.ListBox1DblClick(Sender: TObject);
  2. var SelectedFile : string;
  3.     Rec          : TSearchRec;
  4.  
  5. begin
  6. SelectedFile := ListBox1.Items.Strings[ListBox1.ItemIndex];
  7. if FindFirst(SelectedFile, faAnyFile, Rec) = 0 then
  8.  begin
  9.  
  10.   try
  11.     lblFile.Caption:=SelectedFile;
  12.     lblName.Caption:=rec.Name;
  13.     lblSize.Caption:=Format('%d bytes',[rec.Size]);
  14.     lblModified.Caption:=DateToStr(FileDateToDateTime(rec.Time));
  15.     lblShortName.Caption:=rec.FindData.cAlternateFileName;
  16.    
  17.   finally
  18.    
  19.   end;
  20.   FindClose(Rec)
  21.  end;
  22. end;
  23.  
  24.  

yukaridaki Kod listbox'un DbClick olayı ile çalışıyor görüldüğü gibi
Benimi stediğim bu kodu bir butona göre uyarlamak butonun oncilck olayına kodu kopyaladığımda hata veriyor.Bunun sebebide listbox ta herhangi bir satirin seçilmemiş olması
sebebi belli ama çözümü bulamadım.
Sözün özü  bu kodu buton'un  click olayında çalışması için değiştirmem lazım.

Yardımlarınızı bekliyorum..

Çevrimdışı barutali

  • Administrator
  • *****
  • İleti: 2.117
  • Rep: +51/-0
  • Cinsiyet: Bay
  • Falan filan ...
Ynt: listbox DbClick
« Yanıtla #1 : 27 Haziran 2009 22:03:42 »
Kod: Delphi
  1. SelectedFile := ListBox1.Items.Strings[ListBox1.ItemIndex];
  2.  

yukarıda dediğin şeyi açıklayayım sana : selectedfile değişkenim listboxda hangi item seçiliyse onun değerini alsın
ama sen hiç bişey seçmediğin için selectedfile neyi alacak ?

*******************************************************
Kod: Delphi
  1. SelectedFile := ListBox1.Items.Strings[0];
  2.  

bende diyorumki selectedfile listbox da 1. sırada ne varsa onun değerini alsın... (0 1 2 3... die listeler ..  0 = 1. oluyor)

***************************************************************

aşağıdaki gibi düzenlersen sorun ortadan kalkıcaktır ....

Kod: Delphi
  1.  
  2. procedure TForm1.Button1Click(Sender: TObject);
  3. var SelectedFile : string;
  4.     Rec          : TSearchRec;
  5.  
  6. begin
  7. SelectedFile := ListBox1.Items.Strings[0]; /// değişen satır...
  8. if FindFirst(SelectedFile, faAnyFile, Rec) = 0 then
  9.  begin
  10.  
  11.   try
  12.     lblFile.Caption:=SelectedFile;
  13.     lblName.Caption:=rec.Name;
  14.     lblSize.Caption:=Format('%d bytes',[rec.Size]);
  15.     lblModified.Caption:=DateToStr(FileDateToDateTime(rec.Time));
  16.     lblShortName.Caption:=rec.FindData.cAlternateFileName;
  17.  
  18.   finally
  19.  
  20.   end;
  21.   FindClose(Rec)
  22.  end;
  23.  
  24. end;
  25.  
  26.  






Amatör Küme Programcı

Çevrimdışı Kocaturk

  • Administrator
  • *****
  • İleti: 2.474
  • Rep: +56/-5
  • Cinsiyet: Bay
    • Delphi Dünyası
Ynt: listbox DbClick
« Yanıtla #2 : 27 Haziran 2009 22:35:58 »
Yada ListBox ta bir Item i seçime zorla,

Kod: Delphi
  1. ...
  2. ...
  3. var SelectedFile : string;
  4.     Rec          : TSearchRec;
  5.  
  6. begin
  7.  
  8. if listbox1.ItemIndex < 0 then listbox1.ItemIndex := 0;
  9.  
  10. SelectedFile := ListBox1.Items.Strings[ListBox1.ItemIndex];
  11. if FindFirst(SelectedFile, faAnyFile, Rec) = 0 then
  12.  begin
  13. ...
  14. ...
  15.  

yada ListBox ın bulunduğu Form un OnShow olay işleyicisinde ListBox ın ItemIndex özelliğini sıfır a eşitleyerek formun her açılışında ListBox ta ilk ögenin seçili olmasını sağlayabilirsin.
Veya ListBox ı kod ile dolduruyorsan doldurma işleminin sonunda ItemIndex i sıfıra eşitleyebilirsin, böylece Button a basınca problem olmaz.

Çevrimdışı barutali

  • Administrator
  • *****
  • İleti: 2.117
  • Rep: +51/-0
  • Cinsiyet: Bay
  • Falan filan ...
Ynt: listbox DbClick
« Yanıtla #3 : 27 Haziran 2009 22:37:34 »
Yada ListBox ta bir Item i seçime zorla,

Kod: Delphi
  1. ...
  2. ...
  3. var SelectedFile : string;
  4.     Rec          : TSearchRec;
  5.  
  6. begin
  7.  
  8. if listbox1.ItemIndex < 0 then listbox1.ItemIndex := 0;
  9.  
  10. SelectedFile := ListBox1.Items.Strings[ListBox1.ItemIndex];
  11. if FindFirst(SelectedFile, faAnyFile, Rec) = 0 then
  12.  begin
  13. ...
  14. ...
  15.  

yada ListBox ın bulunduğu Form un OnShow olay işleyicisinde ListBox ın ItemIndex özelliğini sıfır a eşitleyerek formun her açılışında ListBox ta ilk ögenin seçili olmasını sağlayabilirsin.
Veya ListBox ı kod ile dolduruyorsan doldurma işleminin sonunda ItemIndex i sıfıra eşitleyebilirsin, böylece Button a basınca problem olmaz.


@kocatürk hocam işte bu yüzden program yazmayı seviyorum her programcının hayal gücü farklı :)



Amatör Küme Programcı

Çevrimdışı Kocaturk

  • Administrator
  • *****
  • İleti: 2.474
  • Rep: +56/-5
  • Cinsiyet: Bay
    • Delphi Dünyası
Ynt: listbox DbClick
« Yanıtla #4 : 27 Haziran 2009 22:41:44 »
barutali haklısın, daha bir çok alternatif cevap olabilir. Bu arada cevaplar için teşekkürler.