Merhaba Rumeysa,
Öncelikle bazı syntax hataların var. Clomosy’de try ve except komutlarında {} kullanılmaz. Sadece except kullandıktan sonra } ile blok kapatılır ve kod bloğu aktif hale gelir.
Bir diğer sorun ise, prosedürlerin sonuna ; konulmaz.
Umarım yardımcı olabilmişimdir. bir de düzenlediğim kodu dener misin çalışacak mı ?
var yemekEkle: TclForm; Qry: TclSQLiteQuery; ymkAdi, kcal: TClProEdit; ogunsecimi: TCLComboBox; eklebtn: TClProButton; notelbl: TClProLabel; noteMemo: TCLMemo; lblToplam: TClProLabel; bugun: TCLDateTime; toplamKalori: Integer; yemek, kalori, ogun, satir: String; girilenDeger, i: Integer; database, password: String; void TabloyuOlustur { database = Clomosy.AppFilesPath + 'ClomosyDatabase.db3'; password = ''; try Clomosy.DBSQLiteConnect(database, password); Clomosy.DBSQLiteQuery.Sql.Text = 'CREATE TABLE IF NOT EXISTS YemekKayitlari ('+ 'id INTEGER PRIMARY KEY AUTOINCREMENT,'+ 'yemekAdi TEXT,'+ 'kalori INTEGER,'+ 'ogun TEXT,'+ 'tarih TEXT)'; Clomosy.DBSQLiteQuery.OpenOrExecute; except ShowMessage('Tablo oluşturulurken hata oluştu: ' + LastExceptionMessage); } }
void BtnOnClick { yemek = ymkAdi.Text; kalori = kcal.Text; ogun = ogunsecimi.Text;
if (yemek == '') { ShowMessage('Yemek adı boş olamaz.'); exit; }
if (kalori == '') { ShowMessage('Kalori miktarı boş olamaz.'); exit; }
if (ogun == 'ÖĞÜN SEÇİNİZ') { ShowMessage('Lütfen bir öğün seçin.'); exit; }
try girilenDeger = StrToInt(kalori); except ShowMessage('Lütfen geçerli bir kalori değeri girin!'); exit; }
// Tarih ata bugun = Date;
// Satırı oluştur ve yaz satir = '[' + ogun + '] ' + yemek + ' - ' + IntToStr(girilenDeger) + ' kcal (' + DateToStr(bugun) + ')'; noteMemo.Lines.Add(satir);
// Kalori güncelle toplamKalori = toplamKalori + girilenDeger; lblToplam.Text = 'Toplam: ' + IntToStr(toplamKalori) + ' kcal';
// Veritabanına kaydet try Clomosy.DBSQLiteConnect(database, password); Clomosy.DBSQLiteQuery.Sql.Text = 'INSERT INTO YemekKayitlari (yemekAdi, kalori, ogun, tarih) VALUES (' + '''' + yemek + ''',' + kalori + ',' + '''' + ogun + ''',' + '''' + DateToStr(bugun) + ''')'; Clomosy.DBSQLiteQuery.OpenOrExecute; except ShowMessage('Veri eklenemedi: ' + LastExceptionMessage); exit; } // Alanları temizle ymkAdi.Text = ''; kcal.Text = ''; ogunsecimi.ItemIndex = 0;
ShowMessage('Yemek başarıyla eklendi!'); }
{ yemekEkle = TclForm.Create(Self); Qry = TclSQLiteQuery.Create(nil); database=Clomosy.AppFilesPath+'ClomosyDatabase.db3'; password='';
ogunsecimi = yemekEkle.AddNewComboBox(yemekEkle,'ogunsecimi'); ogunsecimi.Align = alTop; ogunsecimi.Height = 80; ogunsecimi.Margins.Top=10; ogunsecimi.AddItem('ÖĞÜN SEÇİNİZ',''); ogunsecimi.AddItem('SABAH',''); ogunsecimi.AddItem('İLK ARA ÖĞÜN',''); ogunsecimi.AddItem('ÖĞLE',''); ogunsecimi.AddItem('ARA ÖĞÜN',''); ogunsecimi.AddItem('AKŞAM',''); ymkAdi = yemekEkle.AddNewProEdit(yemekEkle,'ymkAdi','YEMEK ADI'); ymkAdi.Align = alTop; ymkAdi.Width = 250; ymkAdi.Height = 60; ymkAdi.margins.top=10; ymkAdi.clProSettings.BorderColor = clAlphaColor.clHexToColor('#90EE90'); ymkAdi.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000'); ymkAdi.clProSettings.RoundHeight = 15; ymkAdi.clProSettings.RoundWidth = 15; ymkAdi.clProSettings.BorderWidth = 3; ymkAdi.clProSettings.FontSize = 12; ymkAdi.clProSettings.FontVertAlign = palcenter; ymkAdi.clProSettings.FontHorzAlign = palCenter; ymkAdi.clProSettings.TextSettings.Font.Style = [fsBold,fsItalic]; ymkAdi.clProSettings.IsFill = True; ymkAdi.clProSettings.IsRound = True; ymkAdi.SetclProSettings(ymkAdi.clProSettings); kcal = yemekEkle.AddNewProEdit(yemekEkle,'kcal','KALORİ MİKTARI'); kcal.Align = alTop; kcal.Width = 250; kcal.Height = 60; kcal.margins.top=10; kcal.clProSettings.BorderColor = clAlphaColor.clHexToColor('#90EE90'); kcal.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000'); kcal.clProSettings.RoundHeight = 15; kcal.clProSettings.RoundWidth = 15; kcal.clProSettings.BorderWidth = 3; kcal.clProSettings.FontSize = 12; kcal.clProSettings.FontVertAlign = palcenter; kcal.clProSettings.FontHorzAlign = palCenter; kcal.clProSettings.TextSettings.Font.Style = [fsBold,fsItalic]; kcal.clProSettings.IsFill = True; kcal.clProSettings.IsRound = True; kcal.SetclProSettings(kcal.clProSettings); eklebtn = yemekEkle.AddNewProButton(yemekEkle,'eklebtn',''); eklebtn.Align = alTop; eklebtn.Width = 150; eklebtn.Height = 70; eklebtn.Margins.Top=10; eklebtn.clProSettings.FontColor = clAlphaColor.clDarkorchid; eklebtn.clProSettings.FontSize = 12; eklebtn.clProSettings.FontVertAlign = palcenter; eklebtn.clProSettings.FontHorzAlign = palCenter; eklebtn.clProSettings.TextSettings.Font.Style = [fsBold,fsItalic]; eklebtn.clProSettings.IsFill = True; eklebtn.clProSettings.PictureSource = ' https://resmim.net/cdn/2025/07/03/TnoYXI.png" rel="nofollow - https://resmim.net/cdn/2025/07/03/TnoYXI.png '; eklebtn.SetclProSettings(eklebtn.clProSettings); yemekEkle.AddNewEvent(eklebtn, tbeOnClick, 'BtnOnClick'); notelbl = yemekEkle.AddNewProLabel(yemekEkle,'notelbl','BUGÜN TÜKETİLEN YEMEKLER'); notelbl.Align = alBottom; notelbl.Width = 150; notelbl.Height = 20; notelbl.Margins.Left = 10; notelbl.Margins.Bottom = 20; notelbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#00FA9A'); notelbl.clProSettings.FontSize = 15; notelbl.clProSettings.FontVertAlign = palcenter; notelbl.clProSettings.FontHorzAlign = palLeading; notelbl.clProSettings.TextSettings.Font.Style = [fsBold]; notelbl.SetclProSettings(notelbl.clProSettings); noteMemo = yemekEkle.AddNewMemo(yemekEkle,'noteMemo',''); noteMemo.Align = alBottom; noteMemo.Height = 200; noteMemo.Width = 250; noteMemo.Margins.Left= 10; noteMemo.Margins.Right= 10; noteMemo.Margins.Bottom= 50; noteMemo.ReadOnly = true; noteMemo.TextSettings.WordWrap = True; TabloyuOlustur; yemekEkle.Run; }
|