|
Bir kaç {} hatasına ek olarak OnKonuClick methodunda geçici bir buton oluşturarak problemini çözdüm
var GirisForm: TclForm; LogoImg : TclImage; BaslaBtn: TClProButton; HeaderPanel: TClProPanel; HeaderLogo: TclImage; // konu butonları Buton1, Buton2, Buton3, Buton4, Buton5 : TClProButton; // soru nesneleri SoruLabel, SoruNoLabel: TclLabel; BtnA, BtnB, BtnC, BtnD: TClProButton; SoruPanel: TClProPanel; Seckonu: String; Sorusira: Integer; Dcevap: String; BasariYuzdesi: Float; DogruSayisi: Integer; void SoruGetir; { if (Seckonu == 'ÇARPANLAR VE KATLAR') { SoruNoLabel.Text = 'Soru: ' + IntToStr(Sorusira); if (Sorusira == 1) { SoruLabel.Text = '24 sayısının kaç tane pozitif tam sayı çarpanı vardır?'; BtnA.Text = '4'; BtnB.Text = '6'; BtnC.Text = '8'; BtnD.Text = '10'; Dcevap = '8'; } else if (Sorusira == 2) { SoruLabel.Text = 'Aşağıdakilerden hangisi 60 sayısının asal çarpanlarından biri değildir?'; BtnA.Text = '5'; BtnB.Text = '4'; BtnC.Text = '2'; BtnD.Text = '3'; Dcevap = '4'; } else if (Sorusira == 3) { SoruLabel.Text = 'Aralarında asal olan iki sayının EBOBu her zaman kaçtır?'; BtnA.Text = 'Sayıların toplamı'; BtnB.Text = 'Sayıların çarpımı'; BtnC.Text = '1'; BtnD.Text = '0'; Dcevap = '1'; } else if (Sorusira == 4) { SoruLabel.Text = '9 ve 15 sayılarının EKOKu kaçtır?'; BtnA.Text = '3'; BtnB.Text = '30'; BtnC.Text = '45'; BtnD.Text = '90'; Dcevap = '45'; } else if (Sorusira == 5) { SoruLabel.Text = 'Aşağıdaki sayı çiftlerinden hangisi aralarında asaldır?'; BtnA.Text = '8 ve 25'; BtnB.Text = '14 ve 21'; BtnC.Text = '10 ve 20'; BtnD.Text = '6 ve 51'; Dcevap = '8 ve 25'; } } else if (Seckonu == 'ÜSLÜ İFADELER') { SoruNoLabel.Text = 'Soru: ' + IntToStr(Sorusira); if (Sorusira == 1) { SoruLabel.Text = '(-2)⁴ ifadesinin eşiti nedir?'; BtnA.Text = '-8'; BtnB.Text = '16'; BtnC.Text = '-8'; BtnD.Text = '-16'; Dcevap = '16'; } else if (Sorusira == 2) { SoruLabel.Text = '10⁰ + 1¹⁰⁰ + 0⁵ işleminin sonucu nedir?'; BtnA.Text = '0'; BtnB.Text = '1'; BtnC.Text = '2'; BtnD.Text = '11'; Dcevap = '2'; } else if (Sorusira == 3) { SoruLabel.Text = '(2³)² ifadesi aşağıdakilerden hangisine eşittir?'; BtnA.Text = '8²'; BtnB.Text = '4²'; BtnC.Text = '64²'; BtnD.Text = '2⁵'; Dcevap = '8²'; } else if (Sorusira == 4) { SoruLabel.Text = '3⁵.3³ işleminin sonucu nedir?'; BtnA.Text = '9⁸'; BtnB.Text = '3⁸'; BtnC.Text = '3¹⁵'; BtnD.Text = '6⁸'; Dcevap = '3⁸'; } else if (Sorusira == 5) { SoruLabel.Text = 'Aşağıdaki üslü ifadelerden hangisinin değeri sayı doğrusunda 0 ile 1 arasında değildir?'; BtnA.Text = '(-3)⁻²'; BtnB.Text = '3⁻²'; BtnC.Text = '(-2)⁻³'; BtnD.Text = '2⁻³'; Dcevap = '(-2)⁻³'; } } else if (Seckonu == 'KAREKÖKLÜ İFADELER') { SoruNoLabel.Text = 'Soru: ' + IntToStr(Sorusira); if (Sorusira == 1) { SoruLabel.Text = '√28 sayısı a√b şeklinde nasıl ifade edilir?'; BtnA.Text = '2√7'; BtnB.Text = '4√7'; BtnC.Text = '7√2'; BtnD.Text = '2√14'; Dcevap = '2√7'; } else if (Sorusira == 2) { SoruLabel.Text = '2√5 sayısı √a şeklinde nasıl ifade edilir?'; BtnA.Text = '√10'; BtnB.Text = '√20'; BtnC.Text = '√7'; BtnD.Text = '√50'; Dcevap = '√20'; } else if (Sorusira == 3) { SoruLabel.Text = '√80 - √20 işleminin sonucu kaçtır?'; BtnA.Text = '√60'; BtnB.Text = '2√5'; BtnC.Text = '2√15'; BtnD.Text = '√40'; Dcevap = '2√5'; } else if (Sorusira == 4) { SoruLabel.Text = '√1,21 ifadesinin değeri aşağıdakilerden hangisidir?'; BtnA.Text = '11'; BtnB.Text = '121'; BtnC.Text = '0,11'; BtnD.Text = '1,1'; Dcevap = '1,1'; } else if (Sorusira == 5) { SoruLabel.Text = 'Aşağıdaki sayılardan hangisi bir tam kare sayı değildir?'; BtnA.Text = '289'; BtnB.Text = '256'; BtnC.Text = '150'; BtnD.Text = '144'; Dcevap = '150'; } } else if (Seckonu == 'OLASILIK') { SoruNoLabel.Text = 'Soru: ' + IntToStr(Sorusira); if (Sorusira == 1) { SoruLabel.Text = 'Bir torbada 4 kırmızı, 5 mavi ve 3 sarı bilye vardır. Torbadan rastgele çekilen bir bilyenin sarı olmama olasılığı kaçtır?'; BtnA.Text = '1/2'; BtnB.Text = '1/4'; BtnC.Text = '3/4'; BtnD.Text = '5/12'; Dcevap = '3/4'; } else if (Sorusira == 2) { SoruLabel.Text = 'Bir olayın olma olasılığı x ise, olmama olasılığı aşağıdakilerden hangisidir?'; BtnA.Text = '1-x'; BtnB.Text = 'x'; BtnC.Text = '0'; BtnD.Text = '1/x'; Dcevap = '1-x'; } else if (Sorusira == 3) { SoruLabel.Text = '20 kişilik bir sınıfta rastgele seçilen bir öğrencinin erkek olma olasılığı 2/5 tir. Bu sınıfta kaç kız öğrenci vardır?'; BtnA.Text = '8'; BtnB.Text = '10'; BtnC.Text = '12'; BtnD.Text = '15'; Dcevap = '12'; } else if (Sorusira == 4) { SoruLabel.Text = 'MATEMATİK kelimesinin harfleri kartlara yazılıp bir kutuya atılıyor. Çekilen bir kartın üzerinde M harfi yazma olasılığı kaçtır?'; BtnA.Text = '1/3'; BtnB.Text = '2/9'; BtnC.Text = '2/8'; BtnD.Text = '1'; Dcevap = '2/9'; } else if (Sorusira == 5) { SoruLabel.Text = 'Aşağıdaki değerlerden hangisi bir olayın gerçekleşme olasılığı olamaz?'; BtnA.Text = '3/4'; BtnB.Text = '0'; BtnC.Text = '%49,5'; BtnD.Text = '1,2'; Dcevap = '1,2'; } } else if (Seckonu == 'CEBİRSEL İFADELER VE ÖZDEŞLİKLER') { SoruNoLabel.Text = 'Soru: ' + IntToStr(Sorusira); if (Sorusira == 1) { SoruLabel.Text = '3x²−5x+7 cebirsel ifadesinin katsayılar toplamı kaçtır?'; BtnA.Text = '15'; BtnB.Text = '-2'; BtnC.Text = '10'; BtnD.Text = '5'; Dcevap = '5'; } else if (Sorusira == 2) { SoruLabel.Text = '(x + 4)² ifadesinin özdeşliği aşağıdakilerden hangisidir?'; BtnA.Text = 'x²+4x+8'; BtnB.Text = 'x²+8x+16'; BtnC.Text = 'x²+8x+8'; BtnD.Text = 'x²+16'; Dcevap = 'x²+8x+16'; } else if (Sorusira == 3) { SoruLabel.Text = 'a² - 49 cebirsel ifadesinin çarpanlarına ayrılmış hali hangisidir?'; BtnA.Text = '(a−7)⋅(a−7)'; BtnB.Text = '(a+7)⋅(a+7)'; BtnC.Text = '(a−7)⋅(a−7)'; BtnD.Text = 'a(a-49)'; Dcevap = '(a+7)⋅(a−7)'; } else if (Sorusira == 4) { SoruLabel.Text = '12x²y - 18xy² ifadesinin çarpanlarından biri aşağıdakilerden hangisidir?'; BtnA.Text = '4x'; BtnB.Text = '3y²'; BtnC.Text = '2x-3y'; BtnD.Text = '6x²'; Dcevap = '2x-3y'; } else if (Sorusira == 5) { SoruLabel.Text = 'a = 105 ve b = 100 için a² - 2ab + b² ifadesinin değeri kaçtır?'; BtnA.Text = '5'; BtnB.Text = '100'; BtnC.Text = '42025'; BtnD.Text = '25'; Dcevap = '25'; } } //renk sıfırla BtnA.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#5c679c'); BtnA.SetclProSettings(BtnA.clProSettings); BtnB.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#5c679c'); BtnB.SetclProSettings(BtnB.clProSettings); BtnC.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#5c679c'); BtnC.SetclProSettings(BtnC.clProSettings); BtnD.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#5c679c'); BtnD.SetclProSettings(BtnD.clProSettings); } void Cevap; { if (TClProButton(GirisForm.ClSender).Text == Dcevap) { DogruSayisi = DogruSayisi + 1; ShowMessage('Tebrikler! Doğru Cevap.'); } else { ShowMessage('Hatalı Cevap! Doğru cevap: ' + Dcevap); } if (Sorusira < 5) { Sorusira = Sorusira + 1; SoruGetir; } else { ShowMessage('Sorular Bitti! Harikaydın.'); SoruPanel.Visible = False; LogoImg.Visible = True; BaslaBtn.Visible = True; } /* else { ShowMessage('Hatalı Cevap, tekrar dene!'); } */ if (Sorusira < 5) { Sorusira = Sorusira + 1; SoruGetir; } else { BasariYuzdesi = (DogruSayisi / 5.0) * 100; ShowMessage('Sınav Bitti! Doğru Sayısı: '+IntToStr(DogruSayisi)+'Başarı Yüzdesi: %'+ FloatToStr(BasariYuzdesi)); SoruPanel.Visible = False; LogoImg.Visible = True; BaslaBtn.Visible = True; HeaderPanel.Visible = False; } }
//baslama void OnBaslaClick; { // İlk sayfadaki nesneleri gizle LogoImg.Visible = False; BaslaBtn.Visible = False; // 2. Sayfa nesneleri görünür yap HeaderPanel.Visible = True; Buton1.Visible = True; Buton2.Visible = True; Buton3.Visible = True; Buton4.Visible = True; Buton5.Visible = True; GirisForm.SetFormColor('#FFFFFF', '#E2E8F0', clGVertical); }
// Konu butonuna tıklandığında çalışacak bölüm void OnKonuClick; var LTempBtn : TClProButton; { //ShowMessage('konu seçildi') LTempBtn = TClProButton(GirisForm.ClSender); // Burada tıklanmış butonu geçici bir butona atamasını yaptım. if(LTempBtn == nil ) Exit; ShowMessage(LTempBtn.Text + ' konusuna ait alıştırma soruları hazırlanıyor...'); Seckonu = LTempBtn.Text; Buton1.Visible = False; Buton2.Visible = False; Buton3.Visible = False; Buton4.Visible = False; Buton5.Visible = False; SoruPanel.Visible = True; Sorusira = 1; SoruGetir; }
{ GirisForm = TclForm.Create(Self); GirisForm.LytTopBar.Visible = False; GirisForm.SetFormColor('#F8FAFC', '#F8FAFC', clGVertical); HeaderPanel = GirisForm.AddNewProPanel(GirisForm, 'HeaderPanel'); HeaderPanel.Align = alTop; HeaderPanel.Height = 95; HeaderPanel.Margins.Top = 1; HeaderPanel.Margins.Left = 1; HeaderPanel.Margins.Right = 1; HeaderPanel.Visible = False; clComponent.SetupComponent(HeaderPanel, '{"BorderColor":"#0CB492", "BorderWidth":2, "BackgroundColor":"#F8FAFC"}');
HeaderLogo = GirisForm.AddNewImage(HeaderPanel, 'HeaderLogo'); HeaderLogo.Align = alCenter; HeaderLogo.Width = 300; HeaderLogo.Height = 90; GirisForm.setImage(HeaderLogo, ' https://i.ibb.co/b5GkB1yn/logo.png" rel="nofollow - https://i.ibb.co/b5GkB1yn/logo.png '); // Sayfa 1 LogoImg = GirisForm.AddNewImage(GirisForm,'LogoImg'); LogoImg.Width = 500; LogoImg.Height = 500; GirisForm.setImage(LogoImg,' https://i.ibb.co/b5GkB1yn/logo.png" rel="nofollow - https://i.ibb.co/b5GkB1yn/logo.png ');
BaslaBtn = GirisForm.AddNewProButton(GirisForm, 'BaslaBtn', 'Hadi Başlayalım!'); BaslaBtn.Align = alBottom; BaslaBtn.Margins.Bottom = 100; BaslaBtn.Margins.Left = 200; BaslaBtn.Margins.Right = 200; BaslaBtn.Height = 50; BaslaBtn.clProSettings.FontSize = 16; BaslaBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0CB492'); BaslaBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff'); BaslaBtn.clProSettings.IsRound = True; BaslaBtn.clProSettings.RoundHeight = 10; BaslaBtn.clProSettings.RoundWidth = 10; BaslaBtn.SetclProSettings(BaslaBtn.clProSettings); // Sayfa 2 // 1. çarpanlar ve katlar butonu Buton5 = GirisForm.AddNewProButton(GirisForm, 'Buton5', 'ÇARPANLAR VE KATLAR'); Buton5.Align = alTop; Buton5.Margins.Top = 15; Buton5.Margins.Left = 1; Buton5.Margins.Right = 1; Buton5.Height = 60; Buton5.Visible = False;
Buton5.clProSettings.FontSize = 18; Buton5.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#5c679c'); Buton5.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff'); Buton5.clProSettings.IsRound = True; Buton5.clProSettings.RoundHeight = 10; Buton5.clProSettings.RoundWidth = 10; Buton5.SetclProSettings(Buton5.clProSettings); // 2. üslü ifadeler butonu Buton4 = GirisForm.AddNewProButton(GirisForm, 'Buton4', 'ÜSLÜ İFADELER'); Buton4.Align = alTop; Buton4.Margins.Top = 15; Buton4.Margins.Left = 1; Buton4.Margins.Right = 1; Buton4.Height = 60; Buton4.Visible = False; Buton4.clProSettings.FontSize = 18; Buton4.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#6d597a'); Buton4.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff'); Buton4.clProSettings.IsRound = True; Buton4.clProSettings.RoundHeight = 10; Buton4.clProSettings.RoundWidth = 10; Buton4.SetclProSettings(Buton4.clProSettings); // 3. kareköklü ifadeler butonu Buton3 = GirisForm.AddNewProButton(GirisForm, 'Buton3', 'KAREKÖKLÜ İFADELER'); Buton3.Align = alTop; Buton3.Margins.Top = 15; Buton3.Margins.Left = 1; Buton3.Margins.Right = 1; Buton3.Height = 60; Buton3.Visible = False; Buton3.clProSettings.FontSize = 18; Buton3.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#b56576'); Buton3.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff'); Buton3.clProSettings.IsRound = True; Buton3.clProSettings.RoundHeight = 10; Buton3.clProSettings.RoundWidth = 10; Buton3.SetclProSettings(Buton3.clProSettings);
// 4. olasılık butonu Buton2 = GirisForm.AddNewProButton(GirisForm, 'Buton2', 'OLASILIK'); Buton2.Align = alTop; Buton2.Margins.Top = 15; Buton2.Margins.Left = 1; Buton2.Margins.Right = 1; Buton2.Height = 60; Buton2.Visible = False; Buton2.clProSettings.FontSize = 18; Buton2.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#c27a69'); Buton2.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff'); Buton2.clProSettings.IsRound = True; Buton2.clProSettings.RoundHeight = 10; Buton2.clProSettings.RoundWidth = 10; Buton2.SetclProSettings(Buton2.clProSettings);
// 5. cebirsel ifadeler butonu Buton1 = GirisForm.AddNewProButton(GirisForm, 'Buton1', 'CEBİRSEL İFADELER VE ÖZDEŞLİKLER'); Buton1.Align = alTop; Buton1.Margins.Top = 15; Buton1.Margins.Left = 1; Buton1.Margins.Right = 1; Buton1.Height = 60; Buton1.Visible = False; Buton1.clProSettings.FontSize = 18; Buton1.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#eaac8b'); Buton1.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff'); Buton1.clProSettings.IsRound = True; Buton1.clProSettings.RoundHeight = 10; Buton1.clProSettings.RoundWidth = 10; Buton1.SetclProSettings(Buton1.clProSettings); // Sayfa 3 SoruPanel = GirisForm.AddNewProPanel(GirisForm, 'SoruPanel'); SoruPanel.Align = alClient; SoruPanel.Visible = False;
SoruNoLabel = GirisForm.AddNewLabel(SoruPanel, 'SoruNoLabel', 'Soru: 1'); SoruNoLabel.Align = alTop; SoruNoLabel.Height = 30;
SoruLabel = GirisForm.AddNewLabel(SoruPanel, 'SoruLabel', '-'); SoruLabel.Align = alTop; SoruLabel.Height = 80; SoruLabel.TextSettings.WordWrap = True;
//Seçenek butonları BtnA = GirisForm.AddNewProButton(SoruPanel, 'BtnA', 'A'); BtnA.Align = alTop; BtnA.Height = 50; BtnA.Margins.Top = 10; BtnA.clProSettings.FontSize = 18; BtnA.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#c1c4d6'); BtnA.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff'); BtnA.clProSettings.IsRound = True; BtnA.clProSettings.RoundHeight = 5; BtnA.clProSettings.RoundWidth = 5; BtnA.SetclProSettings(BtnA.clProSettings); BtnB = GirisForm.AddNewProButton(SoruPanel, 'BtnB', 'B'); BtnB.Align = alTop; BtnB.Height = 50; BtnB.Margins.Top = 10; BtnB.clProSettings.FontSize = 18; BtnB.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#c1c4d6'); BtnB.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff'); BtnB.clProSettings.IsRound = True; BtnB.clProSettings.RoundHeight = 5; BtnB.clProSettings.RoundWidth = 5; BtnB.SetclProSettings(BtnB.clProSettings); BtnC = GirisForm.AddNewProButton(SoruPanel, 'BtnC', 'C'); BtnC.Align = alTop; BtnC.Height = 50; BtnC.Margins.Top = 10; BtnC.clProSettings.FontSize = 18; BtnC.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#c1c4d6'); BtnC.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff'); BtnC.clProSettings.IsRound = True; BtnC.clProSettings.RoundHeight = 5; BtnC.clProSettings.RoundWidth = 5; BtnC.SetclProSettings(BtnC.clProSettings); BtnD = GirisForm.AddNewProButton(SoruPanel, 'BtnD', 'D'); BtnD.Align = alTop; BtnD.Height = 50; BtnD.Margins.Top = 10; BtnD.clProSettings.FontSize = 18; BtnD.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#c1c4d6'); BtnD.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff'); BtnD.clProSettings.IsRound = True; BtnD.clProSettings.RoundHeight = 5; BtnD.clProSettings.RoundWidth = 5; BtnD.SetclProSettings(BtnD.clProSettings);
// Butonlar GirisForm.AddNewEvent(BaslaBtn, tbeOnClick, 'OnBaslaClick'); GirisForm.AddNewEvent(Buton1, tbeOnClick, 'OnKonuClick'); GirisForm.AddNewEvent(Buton2, tbeOnClick, 'OnKonuClick'); GirisForm.AddNewEvent(Buton3, tbeOnClick, 'OnKonuClick'); GirisForm.AddNewEvent(Buton4, tbeOnClick, 'OnKonuClick'); GirisForm.AddNewEvent(Buton5, tbeOnClick, 'OnKonuClick'); /* GirisForm.AddNewEvent(BtnA, tbeOnClick, 'OnKonuClick'); GirisForm.AddNewEvent(BtnB, tbeOnClick, 'OnKonuClick'); GirisForm.AddNewEvent(BtnC, tbeOnClick, 'OnKonuClick'); GirisForm.AddNewEvent(BtnD, tbeOnClick, 'OnKonuClick'); */ GirisForm.Run; }
. https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" rel="nofollow - https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
|