Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - HATA
  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.

HATA

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
  Konu Arama Konu Arama  Topic Seçenekleri Topic Seçenekleri
Canan Çakar Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: 2 Saat 20 Dakika Önce
Durum: Aktif Değil
Puanlar: 4
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Canan Çakar Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: HATA
    Gönderim Zamanı: 1 saat 42 Dakika Önce Saat 10:57

var
  MainForm: TclForm;
  MainScroll: TclVertScrollBox;

  PnlHeader, PnlBoard, PnlLeft, PnlRight, PnlBottom: TclProPanel;
  LblTitle, LblSubTitle, LblInfo, LblScore: TclProLabel;

  BtnReset: TclProButton;

  ElemBtns, SymBtns: TclArrayObject;
  ElemNames, SymTexts: TclArrayString;
  MatchMap, ElemMatched, SymMatched: TclArrayInteger;

  SelectedElemIdx, SelectedSymIdx, Score: Integer;

const
  C_Bg = '#0F172A';
  C_Panel = '#1E293B';
  C_Border = '#334155';
  C_Text = '#E2E8F0';
  C_Muted = '#94A3B8';
  C_Green = '#22C55E';
  C_Red = '#EF4444';
  C_Yellow = '#FACC15';
  C_Blue = '#3B82F6';

void SetBtnStyle(Btn: TclProButton; BgHex, BorderHex, FontHex: String);
{
  Btn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor(BgHex);
  Btn.clProSettings.BorderColor = clAlphaColor.clHexToColor(BorderHex);
  Btn.clProSettings.BorderWidth = 1;
  Btn.clProSettings.FontColor = clAlphaColor.clHexToColor(FontHex);
  Btn.clProSettings.RoundWidth = 12;
  Btn.clProSettings.RoundHeight = 12;
  Btn.clProSettings.FontSize = 12;
  Btn.SetclProSettings(Btn.clProSettings);
}

void RefreshScore;
{
  LblScore.Text = 'Skor: ' + IntToStr(Score) + ' / 6';
}

void ClearSelections;
var
  i: Integer;
  B: TclProButton;
{
  SelectedElemIdx = -1;
  SelectedSymIdx = -1;

  for i = 0 to 5 {
    B = TclProButton(ElemBtns.GetItem(i));
    if (ElemMatched.GetItem(i) == 1)
      SetBtnStyle(B, '#14532D', '#166534', C_Text)
    else
      SetBtnStyle(B, C_Panel, C_Border, C_Text);

    B = TclProButton(SymBtns.GetItem(i));
    if (SymMatched.GetItem(i) == 1)
      SetBtnStyle(B, '#14532D', '#166534', C_Text)
    else
      SetBtnStyle(B, C_Panel, C_Border, C_Text);
  }
}

void CheckMatch;
var
  ElemExpected, i: Integer;
  ElemBtn, SymBtn: TclProButton;
{
  if ((SelectedElemIdx < 0) || (SelectedSymIdx < 0)) Exit;

  ElemExpected = MatchMap.GetItem(SelectedElemIdx);
  ElemBtn = TclProButton(ElemBtns.GetItem(SelectedElemIdx));
  SymBtn = TclProButton(SymBtns.GetItem(SelectedSymIdx));

  if (ElemExpected == SelectedSymIdx)
  {
    ElemMatched.SetItem(SelectedElemIdx, 1);
    SymMatched.SetItem(SelectedSymIdx, 1);

    SetBtnStyle(ElemBtn, '#14532D', '#16A34A', C_Text);
    SetBtnStyle(SymBtn, '#14532D', '#16A34A', C_Text);

    Score = Score + 1;
    RefreshScore;

    if (Score == 6)
      LblInfo.Text = 'Tebrikler. Tum eslestirmeleri dogru yaptin.'
    else
      LblInfo.Text = 'Dogru eslesme. Devam et.';
  }
  else
  {
    SetBtnStyle(ElemBtn, '#7F1D1D', '#B91C1C', C_Text);
    SetBtnStyle(SymBtn, '#7F1D1D', '#B91C1C', C_Text);
    LblInfo.Text = 'Bu ikili dogru degil. Tekrar dene.';

    for i = 0 to 5 {
      if (i <> SelectedElemIdx) {
        if (ElemMatched.GetItem(i) == 1)
          SetBtnStyle(TclProButton(ElemBtns.GetItem(i)), '#14532D', '#166534', C_Text)
        else
          SetBtnStyle(TclProButton(ElemBtns.GetItem(i)), C_Panel, C_Border, C_Text);
      }
      if (i <> SelectedSymIdx) {
        if (SymMatched.GetItem(i) == 1)
          SetBtnStyle(TclProButton(SymBtns.GetItem(i)), '#14532D', '#166534', C_Text)
        else
          SetBtnStyle(TclProButton(SymBtns.GetItem(i)), C_Panel, C_Border, C_Text);
      }
    }
  }

  SelectedElemIdx = -1;
  SelectedSymIdx = -1;
}

void OnElemClick;
var
  Btn: TclProButton;
  i: Integer;
{
  Btn = TclProButton(MainForm.clSender);
  i = Btn.clTagInt;

  if (ElemMatched.GetItem(i) == 1) Exit;

  SelectedElemIdx = i;
  SetBtnStyle(Btn, '#1D4ED8', '#3B82F6', C_Text);
  LblInfo.Text = 'Simdi sag taraftan sembol sec.';

  if (SelectedSymIdx >= 0) CheckMatch;
}

void OnSymClick;
var
  Btn: TclProButton;
  i: Integer;
{
  Btn = TclProButton(MainForm.clSender);
  i = Btn.clTagInt;

  if (SymMatched.GetItem(i) == 1) Exit;

  SelectedSymIdx = i;
  SetBtnStyle(Btn, '#1D4ED8', '#3B82F6', C_Text);
  LblInfo.Text = 'Simdi sol taraftan eleman sec.';

  if (SelectedElemIdx >= 0) CheckMatch;
}

void ResetGame;
var
  i: Integer;
{
  Score = 0;
  SelectedElemIdx = -1;
  SelectedSymIdx = -1;

  for i = 0 to 5 {
    ElemMatched.SetItem(i, 0);
    SymMatched.SetItem(i, 0);
  }

  LblInfo.Text = 'Soldan eleman, sagdan sembol secerek eslestir.';
  RefreshScore;
  ClearSelections;
}

void SetupData;
{
  ElemNames = TclArrayString.Create;
  SymTexts = TclArrayString.Create;
  MatchMap = TclArrayInteger.Create;
  ElemMatched = TclArrayInteger.Create;
  SymMatched = TclArrayInteger.Create;

  ElemNames.Add('Pil');
  ElemNames.Add('Ampul');
  ElemNames.Add('Anahtar');
  ElemNames.Add('Direnc');
  ElemNames.Add('Kablo');
  ElemNames.Add('Zil');

  SymTexts.Add('+ | | -');
  SymTexts.Add('(X)');
  SymTexts.Add('-o/ o-');
  SymTexts.Add('-/\/\/-');
  SymTexts.Add('--------');
  SymTexts.Add('-( )-');

  MatchMap.Add(0);
  MatchMap.Add(1);
  MatchMap.Add(2);
  MatchMap.Add(3);
  MatchMap.Add(4);
  MatchMap.Add(5);

  ElemMatched.Add(0); ElemMatched.Add(0); ElemMatched.Add(0);
  ElemMatched.Add(0); ElemMatched.Add(0); ElemMatched.Add(0);

  SymMatched.Add(0); SymMatched.Add(0); SymMatched.Add(0);
  SymMatched.Add(0); SymMatched.Add(0); SymMatched.Add(0);

  ElemBtns = TclArrayObject.Create;
  SymBtns = TclArrayObject.Create;
}

void SetupUI;
var
  i, TopPos: Integer;
  BtnE, BtnS: TclProButton;
{
  MainForm = TclForm.Create(Self);
  MainForm.SetFormColor(C_Bg, C_Bg, clGCross);

  MainScroll = MainForm.AddNewVertScrollBox(MainForm, 'MainScroll');
  MainScroll.Align = alClient;

  PnlHeader = MainForm.AddNewProPanel(MainScroll, 'PnlHeader');
  PnlHeader.Align = alTop; PnlHeader.Height = 90;
  PnlHeader.clProSettings.IsTransparent = True;
  PnlHeader.SetclProSettings(PnlHeader.clProSettings);

  LblTitle = MainForm.AddNewProLabel(PnlHeader, 'LblTitle', 'Basit Elektrik Devre Elemanlari');
  LblTitle.Align = alTop; LblTitle.Height = 40; LblTitle.Margins.Top = 16;
  LblTitle.clProSettings.FontSize = 22; LblTitle.clProSettings.FontHorzAlign = palCenter;
  LblTitle.clProSettings.TextSettings.Font.Style = [fsBold];
  LblTitle.clProSettings.FontColor = clAlphaColor.clHexToColor(C_Yellow);
  LblTitle.SetclProSettings(LblTitle.clProSettings);

  LblSubTitle = MainForm.AddNewProLabel(PnlHeader, 'LblSubTitle', 'Eleman - Sembol Eslestirme');
  LblSubTitle.Align = alTop; LblSubTitle.Height = 20;
  LblSubTitle.clProSettings.FontSize = 12; LblSubTitle.clProSettings.FontHorzAlign = palCenter;
  LblSubTitle.clProSettings.FontColor = clAlphaColor.clHexToColor(C_Muted);
  LblSubTitle.SetclProSettings(LblSubTitle.clProSettings);

  PnlBoard = MainForm.AddNewProPanel(MainScroll, 'PnlBoard');
  PnlBoard.Align = alTop; PnlBoard.Height = 420;
  PnlBoard.Margins.Left = 10; PnlBoard.Margins.Right = 10; PnlBoard.Margins.Top = 10;
  PnlBoard.clProSettings.BackgroundColor = clAlphaColor.clHexToColor(C_Panel);
  PnlBoard.clProSettings.BorderColor = clAlphaColor.clHexToColor(C_Border);
  PnlBoard.clProSettings.BorderWidth = 1;
  PnlBoard.clProSettings.RoundWidth = 16; PnlBoard.clProSettings.RoundHeight = 16;
  PnlBoard.SetclProSettings(PnlBoard.clProSettings);

  PnlLeft = MainForm.AddNewProPanel(PnlBoard, 'PnlLeft');
  PnlLeft.Align = alLeft; PnlLeft.Width = (MainForm.clWidth div 2) - 20;
  PnlLeft.clProSettings.IsTransparent = True;
  PnlLeft.SetclProSettings(PnlLeft.clProSettings);

  PnlRight = MainForm.AddNewProPanel(PnlBoard, 'PnlRight');
  PnlRight.Align = alRight; PnlRight.Width = (MainForm.clWidth div 2) - 20;
  PnlRight.clProSettings.IsTransparent = True;
  PnlRight.SetclProSettings(PnlRight.clProSettings);

  for i = 0 to 5 {
    TopPos = 12 + (i * 64);

    BtnE = MainForm.AddNewProButton(PnlLeft, 'BtnElem_' + IntToStr(i), ElemNames.GetItem(i));
    BtnE.Align = alNone; BtnE.Left = 10; BtnE.Top = TopPos; BtnE.Width = PnlLeft.Width - 20; BtnE.Height = 54;
    BtnE.clTagInt = i;
    SetBtnStyle(BtnE, C_Panel, C_Border, C_Text);
    MainForm.AddNewEvent(BtnE, tbeOnClick, 'OnElemClick');
    ElemBtns.Add(BtnE);

    BtnS = MainForm.AddNewProButton(PnlRight, 'BtnSym_' + IntToStr(i), SymTexts.GetItem(i));
    BtnS.Align = alNone; BtnS.Left = 10; BtnS.Top = TopPos; BtnS.Width = PnlRight.Width - 20; BtnS.Height = 54;
    BtnS.clTagInt = i;
    SetBtnStyle(BtnS, C_Panel, C_Border, C_Text);
    MainForm.AddNewEvent(BtnS, tbeOnClick, 'OnSymClick');
    SymBtns.Add(BtnS);
  }

  PnlBottom = MainForm.AddNewProPanel(MainScroll, 'PnlBottom');
  PnlBottom.Align = alTop; PnlBottom.Height = 130;
  PnlBottom.Margins.Left = 10; PnlBottom.Margins.Right = 10; PnlBottom.Margins.Top = 10; PnlBottom.Margins.Bottom = 10;
  PnlBottom.clProSettings.BackgroundColor = clAlphaColor.clHexToColor(C_Panel);
  PnlBottom.clProSettings.BorderColor = clAlphaColor.clHexToColor(C_Border);
  PnlBottom.clProSettings.BorderWidth = 1;
  PnlBottom.clProSettings.RoundWidth = 16; PnlBottom.clProSettings.RoundHeight = 16;
  PnlBottom.SetclProSettings(PnlBottom.clProSettings);

  LblInfo = MainForm.AddNewProLabel(PnlBottom, 'LblInfo', 'Soldan eleman, sagdan sembol secerek eslestir.');
  LblInfo.Align = alTop; LblInfo.Height = 40; LblInfo.Margins.Top = 10; LblInfo.Margins.Left = 10; LblInfo.Margins.Right = 10;
  LblInfo.clProSettings.FontColor = clAlphaColor.clHexToColor(C_Text);
  LblInfo.clProSettings.FontSize = 12; LblInfo.clProSettings.FontHorzAlign = palCenter;
  LblInfo.SetclProSettings(LblInfo.clProSettings);

  LblScore = MainForm.AddNewProLabel(PnlBottom, 'LblScore', 'Skor: 0 / 6');
  LblScore.Align = alTop; LblScore.Height = 28;
  LblScore.clProSettings.FontColor = clAlphaColor.clHexToColor(C_Blue);
  LblScore.clProSettings.FontSize = 14; LblScore.clProSettings.TextSettings.Font.Style = [fsBold];
  LblScore.clProSettings.FontHorzAlign = palCenter;
  LblScore.SetclProSettings(LblScore.clProSettings);

  BtnReset = MainForm.AddNewProButton(PnlBottom, 'BtnReset', 'Sifirla');
  BtnReset.Align = alBottom; BtnReset.Height = 42; BtnReset.Margins.Left = 30; BtnReset.Margins.Right = 30; BtnReset.Margins.Bottom = 12;
  SetBtnStyle(BtnReset, '#334155', '#475569', C_Text);
  MainForm.AddNewEvent(BtnReset, tbeOnClick, 'ResetGame');

  ResetGame;

  MainForm.Run;
}

{
  SetupData;
  SetupUI;
}

BURADAKİ HATAYI BULAMIYORUM

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">
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.