Soru ve seçeneklerden oluşan bir sayfa oluşturuyorum. Soru cevaplandıktan sonra diğer soruya geçilecek, seçenekler sabit kalacak şekilde yapmak istiyorum. Sorularımı yazdığım kısımda sürekli hata alıyorum. Yardımcı olabilir misiniz?
var
Form1: TclForm;
SkorLbl, BaslikLbl, SureLbl: TClProLabel;
SoruLbl: TClProLabel;
MetalBtn, YmetalBtn, AmetalBtn, SoygazBtn: TClProButton;
Timer, SureTimer: TClTimer;
Skor, HataSayisi, KalanSure: Integer;
Grup: String;
SurePnl, SureIcPnl: TClProPanel;
void SureGuncelle;
{
KalanSure = KalanSure - 1;
SureLbl.Text = 'Kalan Sure: ' + IntToStr(KalanSure) + ' sn';
// Panel genişliğini süreye göre güncelle
SureIcPnl.Width = (KalanSure * SurePnl.Width) div 60;
if (KalanSure <= 10) {
// Son 10 saniye kırmızı renk
SureLbl.ClProSettings.FontColor = ClAlphaColor.ClHextoColor('#ff0000');
SureLbl.SetclProSettings(SureLbl.ClProSettings);
SureIcPnl.ClProSettings.BackgroundColor = ClAlphaColor.ClHextoColor('#ff0000');
SureIcPnl.SetclProSettings(SureIcPnl.ClProSettings);
}
if (KalanSure <= 0) {
ShowMessage('Sure Doldu! Toplam Puan: ' + IntToStr(Skor));
SureTimer.Enabled = False;
}
}
void YeniAtik;
var
RastgeleSayi: Integer;
{
RastgeleSayi = Random(4);
if (RastgeleSayi == 0) {
Grup = 'Ametal';
Form1.SoruLbl.Text (SoruLbl, '18. grupta, renksiz, kokusuz, inert (tepkimeye girmeyen) bir gazdır. Hangi gruptadır?');
} else if (RastgeleSayi == 1) {
Grup = 'Yarı Metal';
Form1.SoruLbl.Text (SoruLbl, '16. grupta bulunur, sarı renkli katı, kötü iletken ve kokulu bir elementtir. Hangi gruptadır?');
} else if (RastgeleSayi == 2) {
Grup = 'Soygaz';
Form1.SoruLbl.Text (SoruLbl, 'Elektrik ve ısı iletkenliği yüksektir, 11. grupta bulunur. Hangi gruba aittir?');
} else {
Grup = 'Metal';
Form1.SoruLbl.Text (SoruLbl, '15. grupta yarı iletken özellikleri gösterir, hem metal hem ametal özellikler taşır. Hangi gruba girer?');
}
SoruLbl.Visible = True;
}
void KontrolEt;
var
SecilenKutu: String;
{
SecilenKutu = TClProButton(Form1.ClSender).ClTagStr;
if (SecilenKutu == AtikTipi) {
Skor = Skor + 10;
ShowMessage('Dogru! +10 puan');
} else {
HataSayisi = HataSayisi + 1;
ShowMessage('Yanlis! Dogru kutu: ' + AtikTipi);
if (HataSayisi >= 3) {
ShowMessage('Oyun Bitti! Toplam Puan: ' + IntToStr(Skor));
SureTimer.Enabled = False;
Exit;
}
}
SkorLbl.Text = 'Skor: ' + IntToStr(Skor) + ' Hata: ' + IntToStr(HataSayisi);
YeniAtik;
}
{
Form1 = TclForm.Create(self);
Form1.SetFormColor('#e8f5e9', '#81c784', clGVertical);
BaslikLbl = Form1.AddNewProLabel(Form1, 'BaslikLbl', 'ELEMENTLERİ SINIFLANDIRALIM');
BaslikLbl.Align = alTop;
BaslikLbl.Height = 50;
BaslikLbl.ClProSettings.FontSize = 24;
BaslikLbl.ClProSettings.FontColor = ClAlphaColor.ClHextoColor('#1b5e20');
BaslikLbl.ClProSettings.FontHorzAlign = palCenter;
BaslikLbl.SetclProSettings(BaslikLbl.ClProSettings);
SureLbl = Form1.AddNewProLabel(Form1, 'SureLbl', 'Kalan Sure: 60 sn');
SureLbl.Align = alTop;
SureLbl.Height = 30;
SureLbl.ClProSettings.FontSize = 18;
SureLbl.ClProSettings.FontHorzAlign = palCenter;
SureLbl.SetclProSettings(SureLbl.ClProSettings);
SurePnl = Form1.AddNewProPanel(Form1, 'SurePnl');
SurePnl.Align = alTop;
SurePnl.Height = 10;
SurePnl.Margins.Left = 20;
SurePnl.Margins.Right = 20;
SurePnl.ClProSettings.BackgroundColor = ClAlphaColor.ClHextoColor('#e0e0e0');
SurePnl.SetclProSettings(SurePnl.ClProSettings);
SureIcPnl = Form1.AddNewProPanel(SurePnl, 'SureIcPnl');
SureIcPnl.Align = alLeft;
SureIcPnl.Width = SurePnl.Width;
SureIcPnl.Height = 10;
SureIcPnl.ClProSettings.BackgroundColor = ClAlphaColor.ClHextoColor('#4caf50');
SureIcPnl.SetclProSettings(SureIcPnl.ClProSettings);
SkorLbl = Form1.AddNewProLabel(Form1, 'SkorLbl', 'Skor: 0 Hata: 0');
SkorLbl.Align = alTop;
SkorLbl.Height = 30;
SkorLbl.ClProSettings.FontSize = 18;
SkorLbl.ClProSettings.FontHorzAlign = palCenter;
SkorLbl.SetclProSettings(SkorLbl.ClProSettings);
SoruLbl = Form1.AddNewProLabel(Form1, 'SoruLbl');
SoruLbl.Align = alTop;
SoruLbl.Margins.Top = 20;
SoruLbl.Width = 150;
SoruLbl.Height = 150;
SoruLbl.ClProSettings.PictureAutoFit = True;
SoruLbl.SetclProSettings(SoruLbl.ClProSettings);
YmetalBtn = Form1.AddNewProButton(Form1, 'YmetalBtn', 'Yarı Metal');
YmetalBtn.Align = alBottom;
YmetalBtn.Height = 60;
YmetalBtn.Margins.Bottom = 10;
YmetalBtn.ClProSettings.FontSize = 18;
YmetalBtn.ClProSettings.BackgroundColor = ClAlphaColor.ClHextoColor('#2196f3');
YmetalBtn.ClProSettings.FontColor = ClAlphaColor.clWhite;
YmetalBtn.clTagStr = 'Yarı Metal';
YmetalBtn.SetclProSettings(YmetalBtn.ClProSettings);
AmetalBtn = Form1.AddNewProButton(Form1, 'AmetalBtn', 'Ametal');
AmetalBtn.Align = alBottom;
AmetalBtn.Height = 60;
AmetalBtn.Margins.Bottom = 10;
AmetalBtn.ClProSettings.FontSize = 18;
AmetalBtn.ClProSettings.BackgroundColor = ClAlphaColor.ClHextoColor('#4caf50');
AmetalBtn.ClProSettings.FontColor = ClAlphaColor.clWhite;
AmetalBtn.clTagStr = 'Ametal';
AmetalBtn.SetclProSettings(AmetalBtn.ClProSettings);
SoygazBtn = Form1.AddNewProButton(Form1, 'SoygazBtn', 'Soygaz (Asal Gaz)');
SoygazBtn.Align = alBottom;
SoygazBtn.Height = 60;
SoygazBtn.Margins.Bottom = 10;
SoygazBtn.ClProSettings.FontSize = 18;
SoygazBtn.ClProSettings.BackgroundColor = ClAlphaColor.ClHextoColor('#ff9800');
SoygazBtn.ClProSettings.FontColor = ClAlphaColor.clWhite;
SoygazBtn.clTagStr = 'Soygaz';
SoygazBtn.SetclProSettings(SoygazBtn.ClProSettings);
MetalBtn = Form1.AddNewProButton(Form1, 'MetalBtn', 'Metal');
MetalBtn.Align = alBottom;
MetalBtn.Height = 60;
MetalBtn.Margins.Bottom = 10;
MetalBtn.ClProSettings.FontSize = 18;
MetalBtn.ClProSettings.BackgroundColor = ClAlphaColor.ClHextoColor('#f44336');
MetalBtn.ClProSettings.FontColor = ClAlphaColor.clWhite;
MetalBtn.clTagStr = 'Metal';
MetalBtn.SetclProSettings(MetalBtn.ClProSettings);
Form1.AddNewEvent(YmetalBtn, tbeOnClick, 'KontrolEt');
Form1.AddNewEvent(AmetalBtn, tbeOnClick, 'KontrolEt');
Form1.AddNewEvent(SoygazBtn, tbeOnClick, 'KontrolEt');
Form1.AddNewEvent(MetalBtn, tbeOnClick, 'KontrolEt');
SureTimer = Form1.AddNewTimer(Form1, 'SureTimer', 1000);
SureTimer.Enabled = True;
Form1.AddNewEvent(SureTimer, tbeOnTimer, 'SureGuncelle');
KalanSure = 60;
Skor = 0;
HataSayisi = 0;
YeniAtik;
Form1.Run;
}