Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - KOD DÜZELTME
  SSS SSS  Forumu Ara   Etkinlikler   Kayıt Ol Kayıt Ol  Giriş Giriş

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 DÜZELTME

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
  Konu Arama Konu Arama  Topic Seçenekleri Topic Seçenekleri
Nuran Özdemir Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: 14 Mayıs 2026
Durum: Aktif Değil
Puanlar: 8
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Nuran Özdemir Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: KOD DÜZELTME
    Gönderim Zamanı: 7 Saat 19 Dakika Önce Saat 18:58
Merhaba, aşağıda verilmiş olan periyodik tablo sanal laboratuvar uygulaması arka planına renklendirme ve metal,ametal,yarımetal,soygaz elementlerinin özelliklerini de eklemek istiyorum.Ancak denemelerim sonuç vermedi.Yardımcı olabilir misiniz?

MyForm: TclForm;
  TitleLabel, InfoLabel, ScoreLabel: TclLabel;
  LayoutTop, LayoutInfo, LayoutTable, LayoutButtons, LayoutBottomBar: TclLayout;
  LayoutRow1, LayoutRow2, LayoutRow3: TclLayout;
  LayoutAns1, LayoutAns2: TclLayout;
  
  BtnMetal, BtnAmetal, BtnYarimetal, BtnSoygaz, BtnReset: TclButton;
  SelectedElement: String;
  SelectedBtn: TclButton;
  CorrectCount: Integer;
  
  Btn1, Btn2, Btn3, Btn4, Btn5, Btn6, Btn7, Btn8, Btn9, Btn10: TclButton;
  Btn11, Btn12, Btn13, Btn14, Btn15, Btn16, Btn17, Btn18: TclButton;

void ElementSelect;
var
  ClickedBtn: TclButton;
{
  ClickedBtn = TclButton(MyForm.clSender);
  SelectedElement = ClickedBtn.Caption; 
  SelectedBtn = ClickedBtn; 
  
  InfoLabel.Text = 'SECILEN: ' + SelectedElement + ' -> Grubunu asagidan seciniz.';
}

void CheckClassification;
var
  ClickedClassBtn: TclButton;
  UserChoice, CorrectClass, SearchStr: String;
{
  if (SelectedElement == '')
  {
    InfoLabel.Text = 'UYARI: Lutfen once yukaridan bir element seciniz!';
  }
  else
  {
    ClickedClassBtn = TclButton(MyForm.clSender);
    UserChoice = ClickedClassBtn.Caption;
    CorrectClass = '';
    
    SearchStr = ',' + SelectedElement + ',';
    
    if (Pos(SearchStr, ',H,C,N,O,F,P,S,Cl,') > 0) 
    {
      CorrectClass = 'Ametal';
    }
    else if (Pos(SearchStr, ',He,Ne,Ar,') > 0) 
    {
      CorrectClass = 'Soy Gaz';
    }
    else if (Pos(SearchStr, ',Li,Be,Na,Mg,Al,') > 0) 
    {
      CorrectClass = 'Metal';
    }
    else if (Pos(SearchStr, ',B,Si,') > 0) 
    {
      CorrectClass = 'Yarimetal';
    }
    
    if (UserChoice == CorrectClass)
    {
      CorrectCount = CorrectCount + 1;
      InfoLabel.Text = 'DOGRU! ' + SelectedElement + ' elementi ' + CorrectClass + ' grubundadir.';
      SelectedBtn.Enabled = False; 
      SelectedElement = ''; 
      ScoreLabel.Text = 'Skor: ' + IntToStr(CorrectCount) + ' / 18';
      
      if (CorrectCount == 18)
      {
        InfoLabel.Text = 'TEBRIKLER! Tum elementleri basariyla tamamladiniz!';
      }
    }
    else
    {
      InfoLabel.Text = 'YANLIS! ' + SelectedElement + ' bir ' + UserChoice + ' degildir. Tekrar dene!';
    }
  }
}

void ResetGame;
{
  Btn1.Enabled = True; Btn2.Enabled = True; Btn3.Enabled = True; Btn4.Enabled = True;
  Btn5.Enabled = True; Btn6.Enabled = True; Btn7.Enabled = True; Btn8.Enabled = True;
  Btn9.Enabled = True; Btn10.Enabled = True; Btn11.Enabled = True; Btn12.Enabled = True;
  Btn13.Enabled = True; Btn14.Enabled = True; Btn15.Enabled = True; Btn16.Enabled = True;
  Btn17.Enabled = True; Btn18.Enabled = True;
  
  SelectedElement = '';
  CorrectCount = 0;
  InfoLabel.Text = 'Laboratuvar sifirlandi. Bir element secerek baslayin.';
  ScoreLabel.Text = 'Skor: 0 / 18';
}

{
  MyForm = TclForm.Create(Self);
  SelectedElement = '';
  CorrectCount = 0;

  // --- 1. UST BASLIK ALANI ---
  LayoutTop = MyForm.AddNewLayout(MyForm, 'LayoutTop');
  LayoutTop.Align = alTop;
  LayoutTop.Height = 50;

  TitleLabel = MyForm.AddNewLabel(LayoutTop, 'TitleLabel', '8. Sinif Ilk 18 Element Laboratuvari');
  TitleLabel.Align = alClient;
  TitleLabel.Margins.Top = 10;
  TitleLabel.Margins.Left = 10;

  // --- 2. BILGI VE SKOR PANELI ---
  LayoutInfo = MyForm.AddNewLayout(MyForm, 'LayoutInfo');
  LayoutInfo.Align = alTop;
  LayoutInfo.Height = 40;
  LayoutInfo.Margins.Left = 10;
  LayoutInfo.Margins.Right = 10;

  ScoreLabel = MyForm.AddNewLabel(LayoutInfo, 'ScoreLabel', 'Skor: 0 / 18');
  ScoreLabel.Align = alRight;
  ScoreLabel.Width = 80;

  InfoLabel = MyForm.AddNewLabel(LayoutInfo, 'InfoLabel', 'Tablodan bir element seciniz.');
  InfoLabel.Align = alClient;

  // --- 3. MUTLAK UYUMLU PERIYODIK TABLO ALANI ---
  LayoutTable = MyForm.AddNewLayout(MyForm, 'LayoutTable');
  LayoutTable.Align = alClient;
  LayoutTable.Margins.Left = 10;
  LayoutTable.Margins.Right = 10;
  LayoutTable.Margins.Top = 15;

  // 1. Periyot (H solda, He sagda - Gercek duzen)
  LayoutRow1 = MyForm.AddNewLayout(LayoutTable, 'LayoutRow1');
  LayoutRow1.Align = alTop; LayoutRow1.Height = 42; LayoutRow1.Margins.Bottom = 6;
  
  Btn1 = MyForm.AddNewButton(LayoutRow1, 'Btn1', 'H');  Btn1.Align = alLeft; Btn1.Width = 38;
  Btn2 = MyForm.AddNewButton(LayoutRow1, 'Btn2', 'He'); Btn2.Align = alRight; Btn2.Width = 38;

  // 2. Periyot (8 Element eksiksiz yan yana)
  LayoutRow2 = MyForm.AddNewLayout(LayoutTable, 'LayoutRow2');
  LayoutRow2.Align = alTop; LayoutRow2.Height = 42; LayoutRow2.Margins.Bottom = 6;
  
  Btn3 = MyForm.AddNewButton(LayoutRow2, 'Btn3', 'Li'); Btn3.Align = alLeft; Btn3.Width = 38; Btn3.Margins.Right = 2;
  Btn4 = MyForm.AddNewButton(LayoutRow2, 'Btn4', 'Be'); Btn4.Align = alLeft; Btn4.Width = 38; Btn4.Margins.Right = 2;
  Btn5 = MyForm.AddNewButton(LayoutRow2, 'Btn5', 'B');  Btn5.Align = alLeft; Btn5.Width = 38; Btn5.Margins.Right = 2;
  Btn6 = MyForm.AddNewButton(LayoutRow2, 'Btn6', 'C');  Btn6.Align = alLeft; Btn6.Width = 38; Btn6.Margins.Right = 2;
  Btn7 = MyForm.AddNewButton(LayoutRow2, 'Btn7', 'N');  Btn7.Align = alLeft; Btn7.Width = 38; Btn7.Margins.Right = 2;
  Btn8 = MyForm.AddNewButton(LayoutRow2, 'Btn8', 'O');  Btn8.Align = alLeft; Btn8.Width = 38; Btn8.Margins.Right = 2;
  Btn9 = MyForm.AddNewButton(LayoutRow2, 'Btn9', 'F');  Btn9.Align = alLeft; Btn9.Width = 38; Btn9.Margins.Right = 2;
  Btn10 = MyForm.AddNewButton(LayoutRow2, 'Btn10', 'Ne'); Btn10.Align = alLeft; Btn10.Width = 38;

  // 3. Periyot (8 Element eksiksiz yan yana)
  LayoutRow3 = MyForm.AddNewLayout(LayoutTable, 'LayoutRow3');
  LayoutRow3.Align = alTop; LayoutRow3.Height = 42;
  
  Btn11 = MyForm.AddNewButton(LayoutRow3, 'Btn11', 'Na'); Btn11.Align = alLeft; Btn11.Width = 38; Btn11.Margins.Right = 2;
  Btn12 = MyForm.AddNewButton(LayoutRow3, 'Btn12', 'Mg'); Btn12.Align = alLeft; Btn12.Width = 38; Btn12.Margins.Right = 2;
  Btn13 = MyForm.AddNewButton(LayoutRow3, 'Btn13', 'Al'); Btn13.Align = alLeft; Btn13.Width = 38; Btn13.Margins.Right = 2;
  Btn14 = MyForm.AddNewButton(LayoutRow3, 'Btn14', 'Si'); Btn14.Align = alLeft; Btn14.Width = 38; Btn14.Margins.Right = 2;
  Btn15 = MyForm.AddNewButton(LayoutRow3, 'Btn15', 'P');  Btn15.Align = alLeft; Btn15.Width = 38; Btn15.Margins.Right = 2;
  Btn16 = MyForm.AddNewButton(LayoutRow3, 'Btn16', 'S');  Btn16.Align = alLeft; Btn16.Width = 38; Btn16.Margins.Right = 2;
  Btn17 = MyForm.AddNewButton(LayoutRow3, 'Btn17', 'Cl'); Btn17.Align = alLeft; Btn17.Width = 38; Btn17.Margins.Right = 2;
  Btn18 = MyForm.AddNewButton(LayoutRow3, 'Btn18', 'Ar'); Btn18.Align = alLeft; Btn18.Width = 38;

  // Element Butonlari Tiklama Olaylari
  MyForm.AddNewEvent(Btn1, tbeOnClick, 'ElementSelect'); MyForm.AddNewEvent(Btn2, tbeOnClick, 'ElementSelect');
  MyForm.AddNewEvent(Btn3, tbeOnClick, 'ElementSelect'); MyForm.AddNewEvent(Btn4, tbeOnClick, 'ElementSelect');
  MyForm.AddNewEvent(Btn5, tbeOnClick, 'ElementSelect'); MyForm.AddNewEvent(Btn6, tbeOnClick, 'ElementSelect');
  MyForm.AddNewEvent(Btn7, tbeOnClick, 'ElementSelect'); MyForm.AddNewEvent(Btn8, tbeOnClick, 'ElementSelect');
  MyForm.AddNewEvent(Btn9, tbeOnClick, 'ElementSelect'); MyForm.AddNewEvent(Btn10, tbeOnClick, 'ElementSelect');
  MyForm.AddNewEvent(Btn11, tbeOnClick, 'ElementSelect'); MyForm.AddNewEvent(Btn12, tbeOnClick, 'ElementSelect');
  MyForm.AddNewEvent(Btn13, tbeOnClick, 'ElementSelect'); MyForm.AddNewEvent(Btn14, tbeOnClick, 'ElementSelect');
  MyForm.AddNewEvent(Btn15, tbeOnClick, 'ElementSelect'); MyForm.AddNewEvent(Btn16, tbeOnClick, 'ElementSelect');
  MyForm.AddNewEvent(Btn17, tbeOnClick, 'ElementSelect'); MyForm.AddNewEvent(Btn18, tbeOnClick, 'ElementSelect');

  // --- 4. EN ALT ALAN: SIFIRLAMA BARBARI ---
  LayoutBottomBar = MyForm.AddNewLayout(MyForm, 'LayoutBottomBar');
  LayoutBottomBar.Align = alBottom;
  LayoutBottomBar.Height = 50;
  LayoutBottomBar.Margins.Left = 15;
  LayoutBottomBar.Margins.Right = 15;
  LayoutBottomBar.Margins.Bottom = 10;

  BtnReset = MyForm.AddNewButton(LayoutBottomBar, 'BtnReset', 'Laboratuvari Yeniden Baslat');
  BtnReset.Align = alClient;
  MyForm.AddNewEvent(BtnReset, tbeOnClick, 'ResetGame');

  // --- 5. SINIFLANDIRMA SECENEKLERI (2x2 Genis Butonlar) ---
  LayoutButtons = MyForm.AddNewLayout(MyForm, 'LayoutButtons');
  LayoutButtons.Align = alBottom; 
  LayoutButtons.Height = 110;
  LayoutButtons.Margins.Left = 15;
  LayoutButtons.Margins.Right = 15;
  LayoutButtons.Margins.Bottom = 5;

  // Cevap Grubu 1. Satir
  LayoutAns1 = MyForm.AddNewLayout(LayoutButtons, 'LayoutAns1');
  LayoutAns1.Align = alTop; LayoutAns1.Height = 50; LayoutAns1.Margins.Bottom = 6;

  BtnMetal = MyForm.AddNewButton(LayoutAns1, 'BtnMetal', 'Metal');
  BtnMetal.Align = alLeft; BtnMetal.Width = 140;

  BtnAmetal = MyForm.AddNewButton(LayoutAns1, 'BtnAmetal', 'Ametal');
  BtnAmetal.Align = alRight; BtnAmetal.Width = 140;

  // Cevap Grubu 2. Satir
  LayoutAns2 = MyForm.AddNewLayout(LayoutButtons, 'LayoutAns2');
  LayoutAns2.Align = alTop; LayoutAns2.Height = 50;

  BtnYarimetal = MyForm.AddNewButton(LayoutAns2, 'BtnYarimetal', 'Yarimetal');
  BtnYarimetal.Align = alLeft; BtnYarimetal.Width = 140;

  BtnSoygaz = MyForm.AddNewButton(LayoutAns2, 'BtnSoygaz', 'Soy Gaz');
  BtnSoygaz.Align = alRight; BtnSoygaz.Width = 140;

  // Sınıflandırma Butonları Event Atamaları
  MyForm.AddNewEvent(BtnMetal, tbeOnClick, 'CheckClassification');
  MyForm.AddNewEvent(BtnAmetal, tbeOnClick, 'CheckClassification');
  MyForm.AddNewEvent(BtnYarimetal, tbeOnClick, 'CheckClassification');
  MyForm.AddNewEvent(BtnSoygaz, tbeOnClick, 'CheckClassification');

  MyForm.Run;
}
https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" 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">
Yukarı Dön
 Yanıt Yaz Yanıt Yaz

Forum Atla Forum İzinleri Açılır Kutu İzle

Forum Software by Web Wiz Forums® version 12.07
Copyright ©2001-2024 Web Wiz Ltd.

Bu Sayfa 0,031 Saniyede Yüklendi.