Sayfayı Yazdır | Pencereyi Kapat

panel açılmıyor

Nereden Yazdırıldığı: Clomosy | Forum
Kategori: Genel Programlama
Forum Adı: Genel İşlemler
Forum Tanımlaması: TRObject dili ile programlama yaparken karşılaşılan genel işlemler
URL: https://forum.clomosy.com.tr/forum_posts.asp?TID=1143
Tarih: 29 Temmuz 2025 Saat 00:15
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: panel açılmıyor
Mesajı Yazan: dilarayaprak
Konu: panel açılmıyor
Mesaj Tarihi: 28 Temmuz 2025 Saat 11:44
kullanıcının kendi eklediği kelime listesinden kelimeleri alıp ai ile karıştırıp türkçe karşılığı ile kullancıya veriyorum, ingilizcesini yazması için bir edit kısmıda veriyorum ancak kontrol et dediğimde sadece yenikelimeyükle yapıyor , sonuc paneli açıp doğru olup olmadıgını göstermiyor
Cry



var
  oyunForm: TclForm;
  vertBox: TclVertScrollBox;
  panel,bottomPanel  : TclProPanel;
  lblKarisik, lblTurkish, lblSonuc: TclProLabel;
  txtTahmin: TclProEdit;
  dogruKelime, karisikKelime: String;
  btnKontrol, btnYeniKelime,btnHome, btnIstatistik,btnOyun,btnAdd: TclProButton;
  restKaristir, restCeviri: TclRest;
  ortakPanel: TclProPanel;
  tahminPanel: TclProPanel;
  kontrolPanel: TclProPanel;
  yeniKelimePanel: TclProPanel;
  ustPanel: TclProPanel;
  imgLogo: TclProImage;
 sonucPanel : TclProPanel;
void Addtiklandi;
{
  Clomosy.RunUnit('Addbtn');
}

void hometiklandi;
{
  Clomosy.RunUnit('Homebtn');
}

void istatistiktiklandi;
{
  Clomosy.RunUnit('Istatistikbtn');
}


void btnoyuntiklandi;
{
  Clomosy.RunUnit('Oyunbtn');
}

 
void TahminKontrol;

{
  sonucPanel.visible=True;
  if (txtTahmin.Text == dogruKelime) {
    lblSonuc.Caption = '✅ Doğru!';
    lblSonuc.ClProSettings.FontColor = clAlphaColor.clGreen;
  } else {
    lblSonuc.Caption = '❌ Yanlış';
    lblSonuc.ClProSettings.FontColor = clAlphaColor.clRed;
  }
  lblSonuc.SetclProSettings(lblSonuc.ClProSettings);

 
}

void GetKaristirmaResponse;

  var veri: String;
  {
  veri = restKaristir.Response;
  karisikKelime = Clomosy.CLParseJson(veri, 'candidates.0.content.parts.0.text');

  restCeviri.Body =
    '{' +
    '  "contents": [' +
    '    {' +
    '      "parts": [' +
    '        {' +
    '          "text": "' + dogruKelime + ' kelimesinin Türkçe karşılığını ver, sadece çeviriyi yaz. Açıklama yapma."' +
    '        }' +
    '      ]' +
    '    }' +
    '  ]' +
    '}';
  restCeviri.ExecuteAsync;
}

void GetCeviriResponse;

  var veri: String;
  {
  veri = restCeviri.Response;

  lblKarisik.Caption = 'Kelime: ' + karisikKelime;
  lblTurkish.Caption = 'Türkçesi: ' + Clomosy.CLParseJson(veri, 'candidates.0.content.parts.0.text');

  txtTahmin.Text = '';
  lblSonuc.Caption = '';
}

void YeniKelimeYukle;
{
  Clomosy.DBSQLiteQuery.Close;
  Clomosy.DBSQLiteQuery.SQL.Text = 'SELECT english FROM kartlar ORDER BY RANDOM() LIMIT 1';
  Clomosy.DBSQLiteQuery.OpenOrExecute;
  dogruKelime = Clomosy.DBSQLiteQuery.FieldByName('english').AsString;

  restKaristir.Body =
    '{' +
    '  "contents": [' +
    '    {' +
    '      "parts": [' +
    '        {' +
    '          "text": "' + dogruKelime + ' kelimesinin harflerini karıştır ve sadece karışık halini ver."' +
    '        }' +
    '      ]' +
    '    }' +
    '  ]' +
    '}';
  restKaristir.ExecuteAsync;
}

{
  
  restKaristir = TclRest.Create;
  restKaristir.OnCompleted = 'GetKaristirmaResponse';
  restKaristir.BaseUrl = 'https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
  restKaristir.Method = rmPost;
  restKaristir.ContentType = 'application/json';

  restCeviri = TclRest.Create;
  restCeviri.OnCompleted = 'GetCeviriResponse';
  restCeviri.BaseUrl = 'https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
  restCeviri.Method = rmPost;
  restCeviri.ContentType = 'application/json';

 
  oyunForm = TclForm.Create(Self);
  oyunForm.clSetCaption('Kelime Tahmin Oyunu');
  oyunForm.SetFormBGImage('https://i.imgur.com/fPwWs0H.jpeg');

  panel = oyunForm.AddNewProPanel(oyunForm, 'panel');
  panel.Align=alClient;
  panel.Height=800;
  panel.Width=800;
  panel.clProSettings.RoundHeight=40;
  panel.clProSettings.Roundwidth=40;
  panel.clProSettings.IsTransparent =False;
  panel.SetclProSettings(panel.clProSettings);



ustPanel = oyunForm.AddNewProPanel(panel, 'ustPanel');
ustPanel.Align = alMostTop;
ustPanel.Margins.top = 30;
ustPanel.Height = 100;
ustPanel.Margins.Top =100;
ustPanel.clProSettings.IsTransparent = True;
ustPanel.SetclProSettings(ustPanel.clProSettings);


imgLogo = oyunForm.AddNewProImage(ustPanel, 'imgLogo');
imgLogo.Align = alCenter;
imgLogo.Height = 100;
imgLogo.Width = 100;
imgLogo.ClProSettings.PictureSource = 'https://i.imgur.com/LjOx6Em.png'; 
imgLogo.SetclProSettings(imgLogo.ClProSettings);

 

 ortakPanel = oyunForm.AddNewProPanel(panel, 'ortakPanel');
 ortakPanel.Align = altop;
 ortakPanel.Margins.top = 30;
 ortakPanel.Height = 120;
 ortakPanel.Margins.left = 50;
 ortakPanel.Margins.right = 50 ;
 ortakPanel.clProSettings.BackGroundColor = clAlphaColor.clHexToColor('#660000');  
 ortakPanel.clProSettings.RoundHeight = 20;
 ortakPanel.clProSettings.RoundWidth = 20;
 ortakPanel.clProSettings.IsTransparent = False;
 ortakPanel.SetclProSettings(ortakPanel.clProSettings);


lblKarisik = oyunForm.AddNewProLabel(ortakPanel, 'lblKarisik', '');
lblKarisik.Align = alTop;
lblKarisik.Margins.Top = 20;
lblKarisik.ClProSettings.FontSize = 18;
lblKarisik.ClProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff');
lblKarisik.ClProSettings.IsTransparent = True;
lblKarisik.SetclProSettings(lblKarisik.ClProSettings);


 lblTurkish = oyunForm.AddNewProLabel(ortakPanel, 'lblTurkish', '');
 lblTurkish.Align = alTop;
 lblTurkish.Margins.Bottom = 10;
 lblTurkish.Margins.Top = 25;
 lblTurkish.ClProSettings.FontSize = 18;
 lblTurkish.ClProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff');
 lblTurkish.ClProSettings.IsTransparent = True;
 lblTurkish.SetclProSettings(lblTurkish.ClProSettings);
 
  
  tahminPanel = oyunForm.AddNewProPanel(panel, 'tahminPanel');
  tahminPanel.Align = altop;
  tahminPanel.Margins.top = 20;
  tahminPanel.Height = 100;
  tahminPanel.Margins.Top = 30;
  tahminPanel.clProSettings.IsTransparent = True;
  tahminPanel.SetclProSettings(tahminPanel.clProSettings);

txtTahmin = oyunForm.AddNewProEdit(tahminPanel, 'txtTahmin', 'kelimeyi yaz');
txtTahmin.Align = alCenter;
txtTahmin.Width = 290;
txtTahmin.Height = 70;
txtTahmin.clProSettings.BackGroundColor = clAlphaColor.clHextoColor('#11212d');
txtTahmin.clProSettings.IsTransparent = True;
txtTahmin.clProSettings.IsFill = False;
txtTahmin.clProSettings.IsRound = True;
txtTahmin.clProSettings.RoundHeight = 20;
txtTahmin.clProSettings.Roundwidth = 20;
txtTahmin.clProSettings.FontSize = 20;
txtTahmin.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff');
txtTahmin.clProSettings.BorderColor = clAlphaColor.clHexToColor('#000000');
txtTahmin.SetclProSettings(txtTahmin.clProSettings);

kontrolPanel = oyunForm.AddNewProPanel(panel, 'kontrolPanel');
kontrolPanel.Align = altop;
kontrolPanel.Height = 80;
kontrolPanel.Margins.top = 50;
kontrolPanel.Margins.Top = 20;
kontrolPanel.Margins.right = 100;
kontrolPanel.Margins. left = 100 ;
kontrolPanel.clProSettings.IsTransparent = True;
kontrolPanel.SetclProSettings(kontrolPanel.clProSettings);

btnKontrol = oyunForm.AddNewProButton(kontrolPanel, '', 'Kontrol Et');
btnKontrol.Align = altop;
btnKontrol.Width = 180;
btnKontrol.Height = 60;
btnKontrol.clProSettings.RoundHeight = 20;
btnKontrol.clProSettings.Roundwidth = 20;
btnKontrol.ClProSettings.BackGroundColor = clAlphaColor.clHexToColor('#f4bcbc');
btnKontrol.SetclProSettings(btnKontrol.ClProSettings);
oyunForm.AddNewEvent(btnKontrol, tbeOnClick, 'TahminKontrol');
 
sonucPanel = oyunForm.AddNewProPanel(panel, 'sonucPanel');
sonucPanel.Align = alCenter;
sonucPanel.Height = 80;
sonucPanel.Margins.Top = 10;
sonucPanel.Visible = False;
sonucPanel.clProSettings.IsTransparent = True;
sonucPanel.SetclProSettings(sonucPanel.clProSettings);

// Sonuç Label
lblSonuc = oyunForm.AddNewProLabel(sonucPanel, '', '');
lblSonuc.Align = alCenter;
lblSonuc.clProSettings.FontSize = 22;
lblSonuc.clProSettings.FontColor = clAlphaColor.clBlack;
lblSonuc.clProSettings.TextSettings.Font.Style = [fsBold];
lblSonuc.clProSettings.IsTransparent = True;
lblSonuc.SetclProSettings(lblSonuc.clProSettings);


yeniKelimePanel = oyunForm.AddNewProPanel(panel, 'yeniKelimePanel');
yeniKelimePanel.Align = altop;
yeniKelimePanel.Margins.top = 50 ; 
yeniKelimePanel.Height = 80;
yeniKelimePanel.Margins.Top = 10;
yeniKelimePanel.clProSettings.IsTransparent = True;
yeniKelimePanel.SetclProSettings(yeniKelimePanel.clProSettings);

btnYeniKelime = oyunForm.AddNewProButton(yeniKelimePanel, '', 'Yeni Kelime');
btnYeniKelime.Align = alCenter;
btnYeniKelime.Width = 180;
btnYeniKelime.Height = 60;
btnYeniKelime.clProSettings.RoundHeight = 20;
btnYeniKelime.clProSettings.Roundwidth = 20;
btnYeniKelime.ClProSettings.BackGroundColor = clAlphaColor.clHexToColor('#f4bcbc');
btnYeniKelime.SetclProSettings(btnYeniKelime.ClProSettings);
oyunForm.AddNewEvent(btnYeniKelime, tbeOnClick, 'YeniKelimeYukle');
  
 
bottomPanel=oyunForm.AddNewProPanel(panel,'bottomPanel');
bottomPanel.Align=alMostBottom;
bottomPanel.Align=alHorizontal;
bottomPanel.Height=50;
bottomPanel.Width=300;
bottomPanel.clProSettings.RoundHeight=20;
bottomPanel.clProSettings.Roundwidth=20;
bottomPanel.clProSettings.IsTransparent =False;
bottomPanel.clProSettings.BorderColor = clAlphaColor.clHexToColor('#ffffff');
bottomPanel.clProSettings.BorderWidth = 2;
bottomPanel.SetclProSettings(bottomPanel.clProSettings);
// home
btnHome = oyunForm.AddNewProButton(bottomPanel, 'btnHome', '');
btnHome.Align = alLeft;
btnHome.margins.left=20;
btnHome.margins.bottom=10;
btnHome.Width = 70;
btnHome.Height = 70;
btnHome.clProSettings.IsRound = True;
btnHome.clProSettings.RoundHeight = 10;
btnHome.clProSettings.RoundWidth = 10;
btnHome.SetclProSettings(btnHome.clProSettings);
oyunForm.SetImage(btnHome,'https://i.imgur.com/FfEKaFY.png'); 
oyunForm.AddNewEvent(btnHome, tbeOnClick, 'hometiklandi');
 
 // 🟥 ADD
btnAdd = oyunForm.AddNewProButton(bottomPanel, 'btnAdd', '');
btnAdd.Align = alLeft;
btnAdd.margins.left=20;
btnAdd.margins.bottom=10;
btnAdd.Width = 70;
btnAdd.Height = 70;
btnAdd.clProSettings.IsRound = True;
btnAdd.clProSettings.RoundHeight = 10;
btnAdd.clProSettings.RoundWidth = 10;
btnAdd.SetclProSettings(btnHome.clProSettings);
oyunForm.SetImage(btnAdd,'https://i.imgur.com/bB8i9zb.png'); 
oyunForm.AddNewEvent(btnAdd, tbeOnClick, 'Addtiklandi');



// 🟥 OYUN
btnOyun = oyunForm.AddNewProButton(bottomPanel, 'btnOyun', '');
btnOyun.Align = alLeft;
btnOyun.margins.left=20;
btnOyun.margins.bottom=10;
btnOyun.Width = 70;
btnOyun.Height = 70;
btnOyun.clProSettings.IsRound = True;
btnOyun.clProSettings.RoundHeight = 10;
btnOyun.clProSettings.RoundWidth = 10;
btnOyun.SetclProSettings(btnOyun.clProSettings);
oyunForm.SetImage(btnOyun,'https://i.imgur.com/ewHakWR.png');
oyunForm.AddNewEvent(btnOyun, tbeOnClick, 'btnoyuntiklandi');

// 🟥 İSTATİSTİK
btnIstatistik = oyunForm.AddNewProButton(bottomPanel, 'btnIstatistik', '');
btnIstatistik.Align = alLeft;
btnIstatistik.margins.left=20;
btnIstatistik.margins.bottom=10;
btnIstatistik.Width = 70;
btnIstatistik.Height = 70;
btnIstatistik.clProSettings.IsRound = True;
btnIstatistik.clProSettings.RoundHeight = 10;
btnIstatistik.clProSettings.RoundWidth = 10;
btnIstatistik.SetclProSettings(btnIstatistik.clProSettings);
oyunForm.SetImage(btnIstatistik,'https://i.imgur.com/n0uCd4p.png');
oyunForm.AddNewEvent(btnIstatistik, tbeOnClick, 'istatistiktiklandi');


  // İlk kelime yükle
 
  YeniKelimeYukle;

 oyunForm.Run;
}



Cevaplar:
Mesajı Yazan: haletr
Mesaj Tarihi: 28 Temmuz 2025 Saat 12:53
Merhaba,

öncelikle veritabanı bağlantısının sorgudan önce yapılması gerekiyor.

void YeniKelimeYukle;
{
  // Veritabanı bağlantısı
  Clomosy.DBSQLiteConnect(Clomosy.AppFilesPath + 'kelime_kartlari.db3', '');
  Clomosy.DBSQLiteQuery.Close;
  Clomosy.DBSQLiteQuery.SQL.Text = 'SELECT english FROM kartlar ORDER BY RANDOM() LIMIT 1';
  Clomosy.DBSQLiteQuery.OpenOrExecute;
  dogruKelime = Clomosy.DBSQLiteQuery.FieldByName('english').AsString;

Sonuc panelinin gözükmemesinin sebebi yerleştirmeden dolayı olabilir.
Align=alTop; yapıp butona tıklanınca gözüküyor mu dener misin? Umarım yardımcı olur. İyi çalışmalar.



Sayfayı Yazdır | Pencereyi Kapat

Forum Software by Web Wiz Forums® version 12.07 - https://www.webwizforums.com
Copyright ©2001-2024 Web Wiz Ltd. - https://www.webwiz.net