Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - null hatası
  SSS SSS  Forumu Ara   Etkinlikler   Kayıt Ol Kayıt Ol  Giriş Giriş

Clomosy Resmi Forum Sitesidir. Amacımız kullanıcılarımıza, iş ortaklarımıza, danışmanlara, yazılımcılara programlarımız hakkında destek ve bilgi vermektir.

null hatası

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
  Konu Arama Konu Arama  Topic Seçenekleri Topic Seçenekleri
dilarayaprak Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: 07 Temmuz 2025
Durum: Aktif Değil
Puanlar: 29
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı dilarayaprak Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: null hatası
    Gönderim Zamanı: 12 Saat 24 Dakika Önce Saat 17:42
sql ile listeden kelime alıp eşleştirme oyunu yapmaya çalısıyorum ama create kısmı null döndürüyor, ne yazıcağımı bilemedim yardımcı olur musunuz teşekkürler şimdidenn

var
  matchForm: TclForm;
  pnlEnglish, pnlTurkish: TclProPanel;
  selectedEnglish, selectedTurkish: String;
  lblSelectedEnglish, lblSelectedTurkish: TclProLabel;
  lblEN, lblTR: TclProLabel;
  englishList, turkishList, karisikTurkish, usedIndexes: TStringList;
  id, correctMatch: String;
  i, index: Integer;

void EnglishClicked;
{
  lblSelectedEnglish = TclProLabel(matchForm.ClSender);
  selectedEnglish = lblSelectedEnglish.Caption;
  lblSelectedEnglish.ClProSettings.BorderColor = clAlphaColor.clBlue;
  lblSelectedEnglish.SetclProSettings(lblSelectedEnglish.ClProSettings);
}

void TurkishClicked;
{
  lblSelectedTurkish = TclProLabel(matchForm.ClSender);
  selectedTurkish = lblSelectedTurkish.Caption;
  lblSelectedTurkish.ClProSettings.BorderColor = clAlphaColor.clGreen;
  lblSelectedTurkish.SetclProSettings(lblSelectedTurkish.ClProSettings);

  Clomosy.DBSQLiteQuery.Close;
  Clomosy.DBSQLiteQuery.SQL.Text = 'SELECT turkish FROM kartlar WHERE english = ' + QuotedStr(selectedEnglish);
  Clomosy.DBSQLiteQuery.OpenOrExecute;

  if not Clomosy.DBSQLiteQuery.Eof {
    correctMatch = Clomosy.DBSQLiteQuery.FieldByName('turkish').AsString;

    if (correctMatch == selectedTurkish) {
      ShowMessage('✅ Doğru Eşleşme!');
      lblSelectedEnglish.Enabled = False;
      lblSelectedTurkish.Enabled = False;
    } else {
      ShowMessage('❌ Yanlış eşleştirme.');
    }
  }

  lblSelectedEnglish.ClProSettings.BorderColor = clAlphaColor.clBlack;
  lblSelectedTurkish.ClProSettings.BorderColor = clAlphaColor.clBlack;
  lblSelectedEnglish.SetclProSettings(lblSelectedEnglish.ClProSettings);
  lblSelectedTurkish.SetclProSettings(lblSelectedTurkish.ClProSettings);
}

{
  matchForm = TclForm.Create(Self);
  matchForm.clSetCaption('Eşleştirme Oyunu');
  matchForm.SetFormBGImage('https://i.imgur.com/fPwWs0H.jpeg');

  pnlEnglish = matchForm.AddNewProPanel(matchForm, 'pnlEnglish');
  pnlEnglish.Align = alLeft;
  pnlEnglish.Width = 180;

  pnlTurkish = matchForm.AddNewProPanel(matchForm, 'pnlTurkish');
  pnlTurkish.Align = alRight;
  pnlTurkish.Width = 180;

  SmileenglishList = TStringList.Create('');
  turkishList = TStringList.Create('');
  karisikTurkish = TStringList.Create('');
  usedIndexes = TStringList.Create('');Smile

  Clomosy.DBSQLiteConnect(Clomosy.AppFilesPath + 'YeniKelimeDB.db3', '');
  Clomosy.DBSQLiteQuery.Close;
  Clomosy.DBSQLiteQuery.SQL.Text = 'SELECT english, turkish FROM kartlar ORDER BY RANDOM()';
  Clomosy.DBSQLiteQuery.OpenOrExecute;

  if Clomosy.DBSQLiteQuery.Eof {
    ShowMessage('Veritabanında kelime yok!');
  }

  while (not Clomosy.DBSQLiteQuery.Eof) {
    englishList.Add(Clomosy.DBSQLiteQuery.FieldByName('english').AsString);
    turkishList.Add(Clomosy.DBSQLiteQuery.FieldByName('turkish').AsString);
    Clomosy.DBSQLiteQuery.Next;
  }

 
  usedIndexes.Clear;
  i = 0;
  while (i < turkishList.Count) {
    index = clMath.GenerateRandom(0, turkishList.Count);
    if (usedIndexes.IndexOf(index.ToString) == -1) {
      usedIndexes.Add(index.ToString);
      karisikTurkish.Add(turkishList.Strings[index]);
      i = i + 1;
    }
  }


  i = 0;
  while (i < englishList.Count) {
    lblEN = matchForm.AddNewProLabel(pnlEnglish, 'lblEN_' + i.ToString, englishList.Strings);
    lblEN.Align = alTop;
    lblEN.Height = 40;
    lblEN.Margins.Top = 5;
    lblEN.ClProSettings.BorderColor = clAlphaColor.clBlack;
    lblEN.ClProSettings.BorderWidth = 2;
    lblEN.ClProSettings.IsTransparent = False;
    lblEN.ClProSettings.BackGroundColor = clAlphaColor.clHexToColor('#ddeeff');
    lblEN.ClProSettings.RoundWidth = 10;
    lblEN.ClProSettings.RoundHeight = 10;
    lblEN.SetclProSettings(lblEN.ClProSettings);
    matchForm.AddNewEvent(lblEN, tbeOnClick, 'EnglishClicked');
    i = i + 1;
  }


  i = 0;
  while (i < karisikTurkish.Count) {
    lblTR = matchForm.AddNewProLabel(pnlTurkish, 'lblTR_' + i.ToString, karisikTurkish.Strings);
    lblTR.Align = alTop;
    lblTR.Height = 40;
    lblTR.Margins.Top = 5;
    lblTR.ClProSettings.BorderColor = clAlphaColor.clBlack;
    lblTR.ClProSettings.BorderWidth = 2;
    lblTR.ClProSettings.IsTransparent = False;
    lblTR.ClProSettings.BackGroundColor = clAlphaColor.clHexToColor('#ffdddd');
    lblTR.ClProSettings.RoundWidth = 10;
    lblTR.ClProSettings.RoundHeight = 10;
    lblTR.SetclProSettings(lblTR.ClProSettings);
    matchForm.AddNewEvent(lblTR, tbeOnClick, 'TurkishClicked');
    i = i + 1;
  }

  matchForm.Run;
}

Yukarı Dön
dilarayaprak Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: 07 Temmuz 2025
Durum: Aktif Değil
Puanlar: 29
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı dilarayaprak Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 12 Saat 24 Dakika Önce Saat 17:42
daha doğrusu üçlü parametre istiyor ama yazdığımda da null döndürüyor
Yukarı Dön
Emr.Erkmn Açılır Kutu İzle
Moderatör
Moderatör


Kayıt Tarihi: 28 Şubat 2025
Durum: Aktif Değil
Puanlar: 163
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Emr.Erkmn Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 11 Saat 35 Dakika Önce Saat 18:31
Merhaba Dilara,
Öncelikle aldığım hata bu; 
Unit Main: Unknown identifier or variable is not declared: 'SmileenglishList'.
Source position: 61,20
TStringList yerine linkte bıraktığım TclStringList dener misin? 
https://www.docs.clomosy.com/index.php?title=TclStringList
Yukarı Dön
 Yanıt Yaz Yanıt Yaz

Forum Atla Forum İzinleri Açılır Kutu İzle

Forum Software by Web Wiz Forums® version 12.07
Copyright ©2001-2024 Web Wiz Ltd.

Bu Sayfa 0,018 Saniyede Yüklendi.