Sayfayı Yazdır | Pencereyi Kapat

KOD DÜZELTME

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=1544
Tarih: 19 Mayıs 2026 Saat 21:49
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: KOD DÜZELTME
Mesajı Yazan: Nuran Özdemir
Konu: KOD DÜZELTME
Mesaj Tarihi: 19 Mayıs 2026 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" rel="nofollow - 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">



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