![]() |
| 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. |
KOD HATA |
Yanıt Yaz
|
| Yazar | |
Yasemin
Yeni Üye
Kayıt Tarihi: 4 Saat 17 Dakika Önce Konum: Konya Durum: Aktif Değil Puanlar: 2 |
Mesaj Seçenekleri
Teşekkürler(0)
Alıntı Cevapla
Konu: KOD HATAGönderim Zamanı: 1 saat 42 Dakika Önce Saat 14:06 |
|
8.sınıf müfredatında bulunan periyodik tablo konusundaki ilk 18 element ile ilgili sanal laboratuvar uygulaması hazırlamak istiyorum.Aynı zamada uygulama elementleri metal, ametal,soygaz olarak sınıflandıracak şekilde tasarlanmış olmalıdır.Bu uygulamanın çalışması için gerekli kodu yazmaya çalıştım ancak hata verdi.Hata nereden kaynaklanıyor olabilir.Yardımcı olabilir misiniz?
Var MyForm: TclForm; TitleLabel, InfoLabel: TclLabel; LayoutTop, LayoutTable, LayoutButtons: TclLayout; // Sınıflandırma Butonları BtnMetal, BtnAmetal, BtnYarimetal, BtnSoygaz: TclButton; SelectedElement: String; SelectedBtn: TclButton; // Periyodik Tablo Element Butonları (İlk 18 Element) Btn1, Btn2, Btn3, Btn4, Btn5, Btn6, Btn7, Btn8, Btn9, Btn10: TclButton; Btn11, Btn12, Btn13, Btn14, Btn15, Btn16, Btn17, Btn18: TclButton; // Element seçildiğinde çalışacak fonksiyon void ElementSelect; var ClickedBtn: TclButton; begin ClickedBtn := TclButton(MyForm.clSender); SelectedElement := ClickedBtn.Caption; SelectedBtn := ClickedBtn; InfoLabel.Text := 'Seçilen Element: ' + SelectedElement + ' -> Şimdi alttaki butonlardan sınıfını seçerek ETİKETLEYİN.'; InfoLabel.StyledSettings := []; InfoLabel.Font.Color := clAlphaColor.clHexToColor('#2c3e50'); end; // Sınıf seçildiğinde kontrol eden fonksiyon void CheckClassification; var ClickedClassBtn: TclButton; UserChoice, CorrectClass: String; begin if SelectedElement = '' then begin ShowMessage('Lütfen önce periyodik tablodan bir element seçiniz!'); Exit; end; ClickedClassBtn := TclButton(MyForm.clSender); UserChoice := ClickedClassBtn.Caption; CorrectClass := ''; // 1-18 Element Doğrulama Mantığı if (SelectedElement = 'H') or (SelectedElement = 'C') or (SelectedElement = 'N') or (SelectedElement = 'O') or (SelectedElement = 'F') or (SelectedElement = 'P') or (SelectedElement = 'S') or (SelectedElement = 'Cl') then CorrectClass := 'Ametal' else if (SelectedElement = 'He') or (SelectedElement = 'Ne') or (SelectedElement = 'Ar') then CorrectClass := 'Soy Gaz' else if (SelectedElement = 'Li') or (SelectedElement = 'Be') or (SelectedElement = 'Na') or (SelectedElement = 'Mg') or (SelectedElement = 'Al') then CorrectClass := 'Metal' else if (SelectedElement = 'B') or (SelectedElement = 'Si') then CorrectClass := 'Yarımetal'; // Sonuç ve Etiketleme Kontrolü if UserChoice = CorrectClass then begin InfoLabel.Text := 'Doğru! ' + SelectedElement + ' elementi bir ' + CorrectClass + 'dır.'; InfoLabel.Font.Color := clAlphaColor.clHexToColor('#27ae60'); // Doğru bilinince Tablo Üzerinde Renkli Gruplandırma yapılıyor if CorrectClass = 'Metal' then SelectedBtn.BackgroundColor := clAlphaColor.clHexToColor('#e74c3c') else if CorrectClass = 'Ametal' then SelectedBtn.BackgroundColor := clAlphaColor.clHexToColor('#3498db') else if CorrectClass = 'Yarımetal' then SelectedBtn.BackgroundColor := clAlphaColor.clHexToColor('#f1c40f') else if CorrectClass = 'Soy Gaz' then SelectedBtn.BackgroundColor := clAlphaColor.clHexToColor('#9b59b6'); end else begin InfoLabel.Text := 'Hatalı! ' + SelectedElement + ' elementi ' + UserChoice + ' değildir.'; InfoLabel.Font.Color := clAlphaColor.clHexToColor('#c0392b'); end; SelectedElement := ''; end; // Ana Kod Bloğu begin MyForm := TclForm.Create(Self); MyForm.Title := 'Periyodik Tablo Etiketleme Laboratuvarı'; SelectedElement := ''; // Üst Bilgilendirme Paneli LayoutTop := MyForm.AddNewLayout(MyForm, 'LayoutTop'); LayoutTop.Align := alTop; LayoutTop.Height := 100; TitleLabel := MyForm.AddNewLabel(LayoutTop, 'TitleLabel', 'FB.8.5.1.1 Periyodik Tablo Sanal Laboratuvarı'); TitleLabel.Align := alTop; TitleLabel.TextSettings.Font.Size := 15; TitleLabel.TextSettings.Font.Style := [fsBold]; TitleLabel.TextSettings.HorzAlign := txCenter; InfoLabel := MyForm.AddNewLabel(LayoutTop, 'InfoLabel', 'Tablodan bir element seçip alttaki gruplarla eşleştirin.'); InfoLabel.Align := alClient; InfoLabel.Margins.Left := 10; InfoLabel.Margins.Right := 10; InfoLabel.TextSettings.Font.Size := 12; InfoLabel.TextSettings.HorzAlign := txCenter; InfoLabel.TextSettings.WordWrap := True; // PERİYODİK TABLO ALANI (Koordinatlı Yerleşim) LayoutTable := MyForm.AddNewLayout(MyForm, 'LayoutTable'); LayoutTable.Align := alClient; LayoutTable.Margins.Left := 10; LayoutTable.Margins.Top := 10; // 1. Periyot (Satır 1) Btn1 := MyForm.AddNewButton(LayoutTable, 'Btn1', 'H'); Btn1.Width := 40; Btn1.Height := 40; Btn1.Position.X := 0; Btn1.Position.Y := 0; Btn2 := MyForm.AddNewButton(LayoutTable, 'Btn2', 'He'); Btn2.Width := 40; Btn2.Height := 40; Btn2.Position.X := 280; Btn2.Position.Y := 0; // 2. Periyot (Satır 2) Btn3 := MyForm.AddNewButton(LayoutTable, 'Btn3', 'Li'); Btn3.Width := 40; Btn3.Height := 40; Btn3.Position.X := 0; Btn3.Position.Y := 45; Btn4 := MyForm.AddNewButton(LayoutTable, 'Btn4', 'Be'); Btn4.Width := 40; Btn4.Height := 40; Btn4.Position.X := 45; Btn4.Position.Y := 45; Btn5 := MyForm.AddNewButton(LayoutTable, 'Btn5', 'B'); Btn5.Width := 40; Btn5.Height := 40; Btn5.Position.X := 120; Btn5.Position.Y := 45; Btn6 := MyForm.AddNewButton(LayoutTable, 'Btn6', 'C'); Btn6.Width := 40; Btn6.Height := 40; Btn6.Position.X := 160; Btn6.Position.Y := 45; Btn7 := MyForm.AddNewButton(LayoutTable, 'Btn7', 'N'); Btn7.Width := 40; Btn7.Height := 40; Btn7.Position.X := 200; Btn7.Position.Y := 45; Btn8 := MyForm.AddNewButton(LayoutTable, 'Btn8', 'O'); Btn8.Width := 40; Btn8.Height := 40; Btn8.Position.X := 240; Btn8.Position.Y := 45; Btn9 := MyForm.AddNewButton(LayoutTable, 'Btn9', 'F'); Btn9.Width := 40; Btn9.Height := 40; Btn9.Position.X := 280; Btn9.Position.Y := 45; Btn10 := MyForm.AddNewButton(LayoutTable, 'Btn10', 'Ne'); Btn10.Width := 40; Btn10.Height := 40; Btn10.Position.X := 320; Btn10.Position.Y := 45; // 3. Periyot (Satır 3) Btn11 := MyForm.AddNewButton(LayoutTable, 'Btn11', 'Na'); Btn11.Width := 40; Btn11.Height := 40; Btn11.Position.X := 0; Btn11.Position.Y := 90; Btn12 := MyForm.AddNewButton(LayoutTable, 'Btn12', 'Mg'); Btn12.Width := 40; Btn12.Height := 40; Btn12.Position.X := 45; Btn12.Position.Y := 90; Btn13 := MyForm.AddNewButton(LayoutTable, 'Btn13', 'Al'); Btn13.Width := 40; Btn13.Height := 40; Btn13.Position.X := 120; Btn13.Position.Y := 90; Btn14 := MyForm.AddNewButton(LayoutTable, 'Btn14', 'Si'); Btn14.Width := 40; Btn14.Height := 40; Btn14.Position.X := 160; Btn14.Position.Y := 90; Btn15 := MyForm.AddNewButton(LayoutTable, 'Btn15', 'P'); Btn15.Width := 40; Btn15.Height := 40; Btn15.Position.X := 200; Btn15.Position.Y := 90; Btn16 := MyForm.AddNewButton(LayoutTable, 'Btn16', 'S'); Btn16.Width := 40; Btn16.Height := 40; Btn16.Position.X := 240; Btn16.Position.Y := 90; Btn17 := MyForm.AddNewButton(LayoutTable, 'Btn17', 'Cl'); Btn17.Width := 40; Btn17.Height := 40; Btn17.Position.X := 280; Btn17.Position.Y := 90; Btn18 := MyForm.AddNewButton(LayoutTable, 'Btn18', 'Ar'); Btn18.Width := 40; Btn18.Height := 40; Btn18.Position.X := 320; Btn18.Position.Y := 90; // Tıklama Olaylarını Bağlama MyForm.AddNewEvent(Btn1, tclOnClick, 'ElementSelect'); MyForm.AddNewEvent(Btn2, tclOnClick, 'ElementSelect'); MyForm.AddNewEvent(Btn3, tclOnClick, 'ElementSelect'); MyForm.AddNewEvent(Btn4, tclOnClick, 'ElementSelect'); MyForm.AddNewEvent(Btn5, tclOnClick, 'ElementSelect'); MyForm.AddNewEvent(Btn6, tclOnClick, 'ElementSelect'); MyForm.AddNewEvent(Btn7, tclOnClick, 'ElementSelect'); MyForm.AddNewEvent(Btn8, tclOnClick, 'ElementSelect'); MyForm.AddNewEvent(Btn9, tclOnClick, 'ElementSelect'); MyForm.AddNewEvent(Btn10, tclOnClick, 'ElementSelect'); MyForm.AddNewEvent(Btn11, tclOnClick, 'ElementSelect'); MyForm.AddNewEvent(Btn12, tclOnClick, 'ElementSelect'); MyForm.AddNewEvent(Btn13, tclOnClick, 'ElementSelect'); MyForm.AddNewEvent(Btn14, tclOnClick, 'ElementSelect'); MyForm.AddNewEvent(Btn15, tclOnClick, 'ElementSelect'); MyForm.AddNewEvent(Btn16, tclOnClick, 'ElementSelect'); MyForm.AddNewEvent(Btn17, tclOnClick, 'ElementSelect'); MyForm.AddNewEvent(Btn18, tclOnClick, 'ElementSelect'); // ALT SINIFLANDIRMA BUTONLARI (Cevap Anahtarı Alanı) LayoutButtons := MyForm.AddNewLayout(MyForm, 'LayoutButtons'); LayoutButtons.Align := alBottom; LayoutButtons.Height := 80; LayoutButtons.Margins.Bottom := 10; BtnMetal := MyForm.AddNewButton(LayoutButtons, 'BtnMetal', 'Metal'); BtnMetal.Align := alLeft; BtnMetal.Width := 85; BtnMetal.Margins.Left := 5; BtnMetal.BackgroundColor := clAlphaColor.clHexToColor('#e74c3c'); // Kırmızı BtnAmetal := MyForm.AddNewButton(LayoutButtons, 'BtnAmetal', 'Ametal'); BtnAmetal.Align := alLeft; BtnAmetal.Width := 85; BtnAmetal.Margins.Left := 5; BtnAmetal.BackgroundColor := clAlphaColor.clHexToColor('#3498db'); // Mavi BtnYarimetal := MyForm.AddNewButton(LayoutButtons, 'BtnYarimetal', 'Yarımetal'); BtnYarimetal.Align := alLeft; BtnYarimetal.Width := 85; BtnYarimetal.Margins.Left := 5; BtnYarimetal.BackgroundColor := clAlphaColor.clHexToColor('#f1c40f'); // Sarı BtnSoygaz := MyForm.AddNewButton(LayoutButtons, 'BtnSoygaz', 'Soy Gaz'); BtnSoygaz.Align := alLeft; BtnSoygaz.Width := 85; BtnSoygaz.Margins.Left := 5; BtnSoygaz.BackgroundColor := clAlphaColor.clHexToColor('#9b59b6'); // Mor // Sınıf Buton Etkinlikleri MyForm.AddNewEvent(BtnMetal, tclOnClick, 'CheckClassification'); MyForm.AddNewEvent(BtnAmetal, tclOnClick, 'CheckClassification'); MyForm.AddNewEvent(BtnYarimetal, tclOnClick, 'CheckClassification'); MyForm.AddNewEvent(BtnSoygaz, tclOnClick, 'CheckClassification'); MyForm.Run; end; |
|
![]() |
|
Yanıt Yaz
|
|
| Tweet |
| Forum Atla | Forum İzinleri ![]() Kapalı Foruma Yeni Konu Gönderme Kapalı Forumdaki Konulara Cevap Yazma Kapalı Forumda Cevapları Silme Kapalı Forumdaki Cevapları Düzenleme Kapalı Forumda Anket Açma Kapalı Forumda Anketlerde Oy Kullanma |