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;
 englishList = TStringList.Create(''); turkishList = TStringList.Create(''); karisikTurkish = TStringList.Create(''); usedIndexes = TStringList.Create(''); 
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; }
|