Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - Sınıf atama
  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.

Sınıf atama

 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: 6
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: Sınıf atama
    Gönderim Zamanı: 14 Mayıs 2026 Saat 22:44
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
  AnaForm: TclForm;
  UstPanel, DetayPanel: TclProPanel;
  ElementListe: TClProListView;
  BilgiEtiketi: TclProLabel;
  // Veri yapıları için TclArray kullanımı (Kitap Bölüm 7'ye uygun)
  ElementAdlari, ElementSiniflari, ElementBilgileri: TclArray;

procedure ElementSecildi;
begin
  // Seçilen elementin detaylarını alt panelde göster
  BilgiEtiketi.Text := '📌 Element: ' + ElementAdlari.ItemValue(ElementListe.ItemIndex) + #13 +
                       '🧪 Sınıf: ' + ElementSiniflari.ItemValue(ElementListe.ItemIndex) + #13 +
                       '📝 Özellik: ' + ElementBilgileri.ItemValue(ElementListe.ItemIndex);
  DetayPanel.Visible := True;
end;

begin
  [span_0](start_span)// Form Oluşturma (Kitap Kod 75 referans alındı)[span_0](end_span)
  AnaForm := TclForm.Create(Self);
  AnaForm.SetFormColor('#2C3E50', '#4CA1AF', clGVertical); [span_1](start_span)// Kitap Tablo 14'e uygun geçiş[span_1](end_span)

  [span_2](start_span)// Verilerin Hazırlanması (TclArray kullanımı)[span_2](end_span)
  ElementAdlari := ClsetupArray;
  ElementAdlari.Add('Hidrojen (H)'); ElementAdlari.Add('Helyum (He)');
  ElementAdlari.Add('Lityum (Li)'); ElementAdlari.Add('Berilyum (Be)');

  ElementSiniflari := ClsetupArray;
  ElementSiniflari.Add('Ametal'); ElementSiniflari.Add('Soygaz');
  ElementSiniflari.Add('Metal'); ElementSiniflari.Add('Metal');

  ElementBilgileri := ClsetupArray;
  ElementBilgileri.Add('Evrenin en hafif ve en bol elementidir.');
  ElementBilgileri.Add('Güneş ve yıldızların temel enerji kaynağıdır.');
  ElementBilgileri.Add('En hafif metaldir, şarj edilebilir pillerde kullanılır.');
  ElementBilgileri.Add('Hafif ve serttir, uzay teknolojilerinde tercih edilir.');

  // Başlık Paneli
  UstPanel := AnaForm.AddNewProPanel(AnaForm, 'UstPanel');
  UstPanel.Align := alTop;
  UstPanel.Height := 50;
  UstPanel.Color := clAlphaColor.clHexToColor('#34495E');

  // Liste Bileşeni (ProListView)
  ElementListe := AnaForm.AddNewProListView(AnaForm, 'ElementListe');
  ElementListe.Align := alClient;
  ElementListe.Margins.Top := 5;
  ElementListe.Margins.Bottom := 5;
  
  [span_3](start_span)// Detay Paneli (Bilgi Ekranı)[span_3](end_span)
  DetayPanel := AnaForm.AddNewProPanel(AnaForm, 'DetayPanel');
  DetayPanel.Align := alBottom;
  DetayPanel.Height := 180;
  DetayPanel.Visible := False; [span_4](start_span)// Başlangıçta gizli[span_4](end_span)
  DetayPanel.Color := clAlphaColor.clHexToColor('#ECF0F1');

  [span_5](start_span)// Bilgi Etiketi (TclProLabel)[span_5](end_span)
  BilgiEtiketi := AnaForm.AddNewProLabel(DetayPanel, 'BilgiEtiketi', 'İncelemek için bir element seçin.');
  BilgiEtiketi.Align := alClient;
  BilgiEtiketi.Margins.Left := 20;
  BilgiEtiketi.Margins.Top := 20;
  BilgiEtiketi.TextSettings.Font.Size := 15;
  BilgiEtiketi.TextSettings.Font.Color := clAlphaColor.clHexToColor('#2C3E50');

  [span_6](start_span)// Listeyi Verilerle Doldur ve Olayı Bağla (Bölüm 12 referansı)[span_6](end_span)
  ElementListe.Properties.Items := ElementAdlari;
  AnaForm.AddNewEvent(ElementListe, tbeOnItemClick, 'ElementSecildi');

  [span_7](start_span)// Uygulamayı Çalıştır[span_7](end_span)
  AnaForm.Run;
end;
Yukarı Dön
kayra.55 Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: 17 Kasım 2025
Durum: Aktif Değil
Puanlar: 32
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı kayra.55 Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 3 Saat 22 Dakika Önce Saat 11:45

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
kayra.55 Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: 17 Kasım 2025
Durum: Aktif Değil
Puanlar: 32
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı kayra.55 Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 3 Saat 21 Dakika Önce Saat 11:46
 Merhaba Nuran kodunu inceledim ve hatalarını düzelttim hatasız olan kodun aşağıda bulunmaktadır iyi çalışmalar dilerim
var
  AnaForm: TclForm;
  UstPanel, TabloPaneli, SolKolon, SagKolon, DetayPanel, RenkPaneli: TclProPanel;
  BaslikEtiketi, SembolEtiketi, SinifEtiketi, BilgiEtiketi: TclProLabel;
  ElementAdlari, ElementSiniflari, ElementBilgileri: TclArrayString;

// --- ANA GÖSTERİM PROSEDÜRÜ ---
void Sec(Index: Integer);
var
  sinifBilgisi: String;
{
  sinifBilgisi = ElementSiniflari.GetItem(Index);
  
  SembolEtiketi.Text = ElementAdlari.GetItem(Index);
  SinifEtiketi.Text = '🧪 Sınıfı: ' + sinifBilgisi;
  BilgiEtiketi.Text = '📝 Bilgi: ' + ElementBilgileri.GetItem(Index);
  
  RenkPaneli.clProSettings.BorderColor = clAlphaColor.clHexToColor('#FFFFFF');
  RenkPaneli.clProSettings.BorderWidth = 2;
  RenkPaneli.clProSettings.IsRound = True;
  RenkPaneli.clProSettings.RoundHeight = 15;
  RenkPaneli.clProSettings.RoundWidth = 15;

  // Renkler sadece detay panelinde ortaya çıkacak
  if (sinifBilgisi == 'Ametal') { RenkPaneli.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#D4AC0D'); } // Koyu Sarı
  else if (sinifBilgisi == 'Metal') { RenkPaneli.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#2980B9'); } // Koyu Mavi
  else if (sinifBilgisi == 'Soygaz') { RenkPaneli.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#8E44AD'); } // Koyu Mor
  else if (sinifBilgisi == 'Yarı Metal') { RenkPaneli.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#27AE60'); } // Koyu Yeşil
  
  RenkPaneli.SetclProSettings(RenkPaneli.clProSettings);
  DetayPanel.Visible = True;
}

// --- 18 BUTON İÇİN GÜVENLİ OLAY TETİKLEYİCİLERİ ---
void Sec0; { Sec(0); }   void Sec1; { Sec(1); }   void Sec2; { Sec(2); }
void Sec3; { Sec(3); }   void Sec4; { Sec(4); }   void Sec5; { Sec(5); }
void Sec6; { Sec(6); }   void Sec7; { Sec(7); }   void Sec8; { Sec(8); }
void Sec9; { Sec(9); }   void Sec10; { Sec(10); } void Sec11; { Sec(11); }
void Sec12; { Sec(12); } void Sec13; { Sec(13); } void Sec14; { Sec(14); }
void Sec15; { Sec(15); } void Sec16; { Sec(16); } void Sec17; { Sec(17); }

// --- BUTON OLUŞTURMA YARDIMCISI (RENK PARAMETRESİ KALDIRILDI) ---
void ButonEkle(KolonSecim: Integer; AName, AText, AEvent: String);
var
  Btn: TclProButton;
{
  if (KolonSecim == 1) { Btn = AnaForm.AddNewProButton(SolKolon, AName, AText); }
  else { Btn = AnaForm.AddNewProButton(SagKolon, AName, AText); }
  
  Btn.Align = alTop;
  Btn.Height = 35;
  Btn.Margins.Top = 2; Btn.Margins.Bottom = 2; Btn.Margins.Left = 5; Btn.Margins.Right = 5;
  
  // Tüm butonlar tek tip, sade ve şık bir renge büründü
  Btn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#34495E'); 
  Btn.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF'); 
  Btn.clProSettings.IsRound = True;
  Btn.clProSettings.RoundHeight = 8; Btn.clProSettings.RoundWidth = 8;
  Btn.SetclProSettings(Btn.clProSettings);
  
  AnaForm.AddNewEvent(Btn, tbeOnClick, AEvent);
}

{
  AnaForm = TclForm.Create(Self);
  AnaForm.SetFormColor('#1E2A38', '#2C3E50', clGVertical); // Daha yumuşak bir arka plan geçişi

  ElementAdlari = TclArrayString.Create;
  ElementAdlari.Add('1. Hidrojen (H)'); ElementAdlari.Add('2. Helyum (He)'); ElementAdlari.Add('3. Lityum (Li)');
  ElementAdlari.Add('4. Berilyum (Be)'); ElementAdlari.Add('5. Bor (B)'); ElementAdlari.Add('6. Karbon (C)');
  ElementAdlari.Add('7. Azot (N)'); ElementAdlari.Add('8. Oksijen (O)'); ElementAdlari.Add('9. Flor (F)');
  ElementAdlari.Add('10. Neon (Ne)'); ElementAdlari.Add('11. Sodyum (Na)'); ElementAdlari.Add('12. Magnezyum (Mg)');
  ElementAdlari.Add('13. Alüminyum (Al)'); ElementAdlari.Add('14. Silisyum (Si)'); ElementAdlari.Add('15. Fosfor (P)');
  ElementAdlari.Add('16. Kükürt (S)'); ElementAdlari.Add('17. Klor (Cl)'); ElementAdlari.Add('18. Argon (Ar)');

  ElementSiniflari = TclArrayString.Create;
  ElementSiniflari.Add('Ametal'); ElementSiniflari.Add('Soygaz'); ElementSiniflari.Add('Metal');
  ElementSiniflari.Add('Metal'); ElementSiniflari.Add('Yarı Metal'); ElementSiniflari.Add('Ametal');
  ElementSiniflari.Add('Ametal'); ElementSiniflari.Add('Ametal'); ElementSiniflari.Add('Ametal');
  ElementSiniflari.Add('Soygaz'); ElementSiniflari.Add('Metal'); ElementSiniflari.Add('Metal');
  ElementSiniflari.Add('Metal'); ElementSiniflari.Add('Yarı Metal'); ElementSiniflari.Add('Ametal');
  ElementSiniflari.Add('Ametal'); ElementSiniflari.Add('Ametal'); ElementSiniflari.Add('Soygaz');

  ElementBilgileri = TclArrayString.Create;
  ElementBilgileri.Add('Evrenin en hafif ve en bol elementidir. 1A grubundadır ama METAL DEĞİLDİR!');
  ElementBilgileri.Add('Balonlarda kullanılır, yanıcı değildir. Değerlik elektronu 2 olmasına rağmen 8A grubundadır!');
  ElementBilgileri.Add('Cep telefonu pillerinin vazgeçilmez hafif metalidir.');
  ElementBilgileri.Add('Uzay araçlarında ve uçaklarda hafifliği sebebiyle kullanılır.');
  ElementBilgileri.Add('Türkiye rezervinde dünya birincisidir. Isıya dayanıklı cam yapımında kullanılır.');
  ElementBilgileri.Add('Canlıların temel taşıdır. Kömür, grafit ve elmasın ana maddesidir.');
  ElementBilgileri.Add('Soluduğumuz havanın %78''ini oluşturur. Gübre yapımında kullanılır.');
  ElementBilgileri.Add('Havanın %21''ini oluşturur. Solunum ve yanma olayları için şarttır.');
  ElementBilgileri.Add('Diş macunlarının yapısında bulunur, çürümeyi önler. En reaktif ametaldir.');
  ElementBilgileri.Add('Renkli ışıklı tabelalarda (neon lambalar) bolca kullanılır.');
  ElementBilgileri.Add('Sofra tuzunun (NaCl) yapısında bulunur. Suda patlayarak tepkime verir.');
  ElementBilgileri.Add('Hafif alaşımlarda ve fotoğraf flaşlarında kullanılır.');
  ElementBilgileri.Add('İçecek kutularında ve mutfak folyolarında kullanılan yaygın metaldir.');
  ElementBilgileri.Add('Kumun ve akıllı telefon çiplerinin/işlemcilerinin ana maddesidir.');
  ElementBilgileri.Add('DNA''nın yapısında ve kibrit uçlarında bulunur.');
  ElementBilgileri.Add('Sarı renklidir. Barut ve tarım ilaçları yapımında kullanılır.');
  ElementBilgileri.Add('Havuz sularının ve dezenfeksiyon ürünlerinin temelidir.');
  ElementBilgileri.Add('Ampullerin içinde ve kaynak işlemlerinde koruyucu gaz olarak kullanılır.');

  UstPanel = AnaForm.AddNewProPanel(AnaForm, 'UstPanel');
  UstPanel.Align = alTop;
  UstPanel.Height = 50;
  
  BaslikEtiketi = AnaForm.AddNewProLabel(UstPanel, 'BaslikEtiketi', '🔬 İlk 18 Element Dashboard');
  BaslikEtiketi.Align = alCenter;
  BaslikEtiketi.clProSettings.FontSize = 16;
  BaslikEtiketi.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  BaslikEtiketi.clProSettings.FontVertAlign = palCenter;
  BaslikEtiketi.SetclProSettings(BaslikEtiketi.clProSettings);

  TabloPaneli = AnaForm.AddNewProPanel(AnaForm, 'TabloPaneli');
  TabloPaneli.Align = alTop;
  TabloPaneli.Height = 360; 
  
  SolKolon = AnaForm.AddNewProPanel(TabloPaneli, 'SolKolon');
  SolKolon.Align = alLeft;
  SolKolon.Width = 180; 

  SagKolon = AnaForm.AddNewProPanel(TabloPaneli, 'SagKolon');
  SagKolon.Align = alClient; 

  // Renk karmaşası bitti, tüm butonlar standart eklendi
  ButonEkle(1, 'Btn0', '1. H (Hidrojen)', 'Sec0');
  ButonEkle(1, 'Btn1', '2. He (Helyum)', 'Sec1');
  ButonEkle(1, 'Btn2', '3. Li (Lityum)', 'Sec2');
  ButonEkle(1, 'Btn3', '4. Be (Berilyum)', 'Sec3');
  ButonEkle(1, 'Btn4', '5. B (Bor)', 'Sec4');
  ButonEkle(1, 'Btn5', '6. C (Karbon)', 'Sec5');
  ButonEkle(1, 'Btn6', '7. N (Azot)', 'Sec6');
  ButonEkle(1, 'Btn7', '8. O (Oksijen)', 'Sec7');
  ButonEkle(1, 'Btn8', '9. F (Flor)', 'Sec8');

  ButonEkle(2, 'Btn9', '10. Ne (Neon)', 'Sec9');
  ButonEkle(2, 'Btn10', '11. Na (Sodyum)', 'Sec10');
  ButonEkle(2, 'Btn11', '12. Mg (Magnezyum)', 'Sec11');
  ButonEkle(2, 'Btn12', '13. Al (Alüminyum)', 'Sec12');
  ButonEkle(2, 'Btn13', '14. Si (Silisyum)', 'Sec13');
  ButonEkle(2, 'Btn14', '15. P (Fosfor)', 'Sec14');
  ButonEkle(2, 'Btn15', '16. S (Kükürt)', 'Sec15');
  ButonEkle(2, 'Btn16', '17. Cl (Klor)', 'Sec16');
  ButonEkle(2, 'Btn17', '18. Ar (Argon)', 'Sec17');

  DetayPanel = AnaForm.AddNewProPanel(AnaForm, 'DetayPanel');
  DetayPanel.Align = alClient;
  DetayPanel.Margins.Top = 10; DetayPanel.Margins.Bottom = 10;
  DetayPanel.Margins.Left = 10; DetayPanel.Margins.Right = 10;
  DetayPanel.Visible = False; 

  RenkPaneli = AnaForm.AddNewProPanel(DetayPanel, 'RenkPaneli');
  RenkPaneli.Align = alClient;
  
  SembolEtiketi = AnaForm.AddNewProLabel(RenkPaneli, 'SembolEtiketi', '');
  SembolEtiketi.Align = alTop;
  SembolEtiketi.Height = 40;
  SembolEtiketi.clProSettings.FontSize = 20;
  SembolEtiketi.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  SembolEtiketi.SetclProSettings(SembolEtiketi.clProSettings);

  SinifEtiketi = AnaForm.AddNewProLabel(RenkPaneli, 'SinifEtiketi', '');
  SinifEtiketi.Align = alTop;
  SinifEtiketi.Height = 35;
  SinifEtiketi.clProSettings.FontSize = 16;
  SinifEtiketi.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  SinifEtiketi.SetclProSettings(SinifEtiketi.clProSettings);

  BilgiEtiketi = AnaForm.AddNewProLabel(RenkPaneli, 'BilgiEtiketi', '');
  BilgiEtiketi.Align = alClient;
  BilgiEtiketi.Margins.Top = 10; BilgiEtiketi.Margins.Left = 10; BilgiEtiketi.Margins.Right = 10;
  BilgiEtiketi.clProSettings.FontSize = 14;
  BilgiEtiketi.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  BilgiEtiketi.SetclProSettings(BilgiEtiketi.clProSettings);

  AnaForm.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,016 Saniyede Yüklendi.