Skip to main content

Donanım Teknik Donanım

DELPHİ ListBox Sorunu.. YARDIM EDERMİSİNİZ ARKADAÞLAR LÜTFEN

Konu

#1
ARKADAÞLAR..

Form1 de 1 tane HESAP BUTONU, 1 tane PANel,
Form2 de 8 tane CHECKBOX , 8 tane COMBOBOX ve 8 tane LABEL ,
Form3 te 1 tane LABEL , 2 tane LİSTBOX ve 1 tane HESAPLA BUTONUm var

- Kullanıcı Form2 de Checkboxlarla yiyeceklerini seçip, ComboBoxlar ile Porsiyonunu seçtiğinde her ComboBox ın yanında bulunan Label da 'Seçtiği yiyeceğe ait Fiyat' yazıyor..
- Ardından Form1 deki Hesap Butonuna tıkladığında ; Form2 de seçtiği yiyeceklerin isimleri Form3 deki ListBox1 de, fiyatları Form3 deki ListBox2 de görüntülenecektir..
- Daha sonra kullanıcı Form3 deki Hesapla Butonuna tıkladığında ; Form3 deki ListBox2 de yazan fiyatlar toplanıp Form1 deki Panelde yazıcak..

Þuan yazdığım kodlarda ;

- Form2 de seçtiğim yiyecekleri ve porsiyonlarına karşılık gelen fiyatı Form3 deki ListBoxlarda yazdırdım.
Seç[B]ile
n yiyecekleri yazdırmada sorun çıkmadı.
Seçilen yiyeceklere karşılık gelen fiyatı ListBox2 ye yazdırdığımda şöyle bir ekran ortaya çıkıyor.

1

5


3

2
[/B]
Yani işaretlediklerimin fiyatı yazıyor, işaretlemediklerimin satırları BOÞ gözüküyor. Ben sadece işaretlediklerimin fiyatının yazm[B]As
ını istiyorum.
Ayrıca ListBox2 deki fiyatların toplamını Form1 deki Panel de yazdırmada şu kodu kullanıyorum HATA VERİYOR ..

HESAPLA BUTONU:
procedure TForm1.Button1Click(sender: TObject);
var
toplam,i:integer;
begin
toplam:=0;
for i:=0 to listbox2.items.count-1 do
begin
toplam:=toplam+strtoint(listbox2.items);
Forum1.Panel1.Caption:=inttostr(toplam);
end;

end;


Bu kodları yazdığımda aşağıdaki hata ekrana çıkıyor.

[/B]Yani işaretlediklerimin fiyatı yazıyor, işaretlemediklerimin satırları BOÞ gözüküyor. Ben sadece işaretlediklerimin fiyatının yazm[B]Asını istiyorum.
Ayrıca ListBox2 deki fiyatların toplamını Form1 deki Panel de yazdırmada şu kodu kullanıyorum HATA VERİYOR ..

HESAPLA BUTONU:
procedure TForm1.Button1Click(sender: TObject);
var
toplam,i:integer;
begin
toplam:=0;
for i:=0 to listbox2.items.count-1 do
begin
toplam:=toplam+strtoint(listbox2.items);
Forum1.Panel1.Caption:=inttostr(toplam);
end;

end;


Bu kodları yazdığımda aşağıdaki hata ekrana çıkıyor.
[/B]Project Project1.exe raised exception class EConvertError with message ''' is not a valid integer valuse'. Process stopped.Use Step or Run to continue.
Son Düzenleme: 07-05-2012, 13:19, Düzenleyen: nilebr.
Cevapla
#2
Forum1.Panel1.Caption:=inttostr(toplam);
kısımlarını döngünün dışına koyunuz. bunun dışında toplam değerini doğal tamsayı (integer) olarak tanımladığınızdan,
bu sayı ondalık (float) olarak toplanan sayılar (fiyatlar ondalık ise, mesela 5,50 TL) için hata verecektir.

fiyatlar dediğim gibi ondalıksa toplam sayısını float olarak tanımlamanız gerekir.
[SIGPIC][/SIGPIC]
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task