Sayfayı Yazdır | Pencereyi Kapat

kod hatası

Nereden Yazdırıldığı: Clomosy | Forum
Kategori: Genel Programlama
Forum Adı: Clomosy ile değişken kullanımı
Forum Tanımlaması: TRObject dili ile değişken tanımlaması ve ekranda gösterme
URL: https://forum.clomosy.com.tr/forum_posts.asp?TID=1452
Tarih: 24 Nisan 2026 Saat 15:58
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: kod hatası
Mesajı Yazan: Hüseyin_Sadik
Konu: kod hatası
Mesaj Tarihi: 24 Nisan 2026 Saat 12:26
    var
      MyForm: TclForm;
      CanliMQTT: TclMQTT;
      PnlMain, PnlHeader, PnlContent, PnlLeft, PnlRight: TclProPanel;
      PnlStatus, PnlControls, PnlAnswers, PnlWinner: TclProPanel;
      LblTitle, LblSubTitle, LblKirmiziDurum, LblMaviDurum: TclProLabel;
      LblSoruText, LblKirmiziCevap, LblMaviCevap, LblWinner: TclProLabel;
      BtnBaslat, BtnKontrolEt, BtnYonlendir, BtnSonrakiSoru: TclProButton;
      MemoLog: TclMemo;
      KirmiziHazir, MaviHazir: Boolean;
      KirmiziCevap, MaviCevap: String;
      KirmiziDogru, MaviDogru: Boolean;
      KirmiziSure, MaviSure: Integer;
      KazananRengi: String;
      SoruAktif: Boolean;
      SoruMetni, SecenekA, SecenekB, SecenekC, SecenekD, DogruCevap: String;
      GelenMesaj, Komut, GelenRenk, GelenCevap, GelenSureStr: String;

{
  if (Clomosy.PlatformIsMobile)
  {
    Clomosy.RunUnit('renksec');
  }
  else
  {
    void MQTTMesajGelince;
    {
      if (CanliMQTT.ReceivedAlright)
      {
        GelenMesaj = CanliMQTT.ReceivedMessage;
        Komut = clGetStringTo(GelenMesaj, '|');
        
        if (Komut == 'RENK_SEC')
        {
          GelenRenk = clGetStringAfter(GelenMesaj, '|');
          if (GelenRenk == 'Kirmizi')
          {
            KirmiziHazir = True;
            LblKirmiziDurum.Text = '🔴 KIRMIZI: HAZIR';
            LblKirmiziDurum.clProSettings.FontColor = clAlphaColor.clLime;
            LblKirmiziDurum.SetclProSettings(LblKirmiziDurum.clProSettings);
            MemoLog.Lines.Add('✓ Kırmızı oyuncu hazır');
          }
          else if (GelenRenk == 'Mavi')
          {
            MaviHazir = True;
            LblMaviDurum.Text = '🔵 MAVİ: HAZIR';
            LblMaviDurum.clProSettings.FontColor = clAlphaColor.clLime;
            LblMaviDurum.SetclProSettings(LblMaviDurum.clProSettings);
            MemoLog.Lines.Add('✓ Mavi oyuncu hazır');
          }
          
          if (KirmiziHazir and MaviHazir)
          {
            BtnBaslat.Enabled = True;
          }
        }
        
        if (Komut == 'CEVAP')
        {
          GelenRenk = clGetStringTo(clGetStringAfter(GelenMesaj, '|'), '|');
          GelenCevap = clGetStringAfter(clGetStringAfter(GelenMesaj, '|'), '|');
          GelenSureStr = clGetStringAfter(clGetStringAfter(clGetStringAfter(GelenMesaj, '|'), '|'), '|');
          
          if (GelenRenk == 'Kirmizi')
          {
            KirmiziCevap = GelenCevap;
            KirmiziSure = StrToInt(GelenSureStr);
            LblKirmiziCevap.Text = '🔴 Kırmızı: ' + GelenCevap + ' (' + GelenSureStr + ' sn)';
            MemoLog.Lines.Add('📝 Kırmızı cevap verdi: ' + GelenCevap + ' (' + GelenSureStr + ' sn)');
          }
          else if (GelenRenk == 'Mavi')
          {
            MaviCevap = GelenCevap;
            MaviSure = StrToInt(GelenSureStr);
            LblMaviCevap.Text = '🔵 Mavi: ' + GelenCevap + ' (' + GelenSureStr + ' sn)';
            MemoLog.Lines.Add('📝 Mavi cevap verdi: ' + GelenCevap + ' (' + GelenSureStr + ' sn)');
          }
          
          if (KirmiziCevap <> '' and MaviCevap <> '')
          {
            BtnKontrolEt.Enabled = True;
          }
        }
      }
    }

    void YarismayiBaslat;
    {
      if (not KirmiziHazir)
      {
        ShowMessage('Kırmızı oyuncu hazır değil!');
        return;
      }
      if (not MaviHazir)
      {
        ShowMessage('Mavi oyuncu hazır değil!');
        return;
      }
      
      SoruMetni = 'Türkiye''nin başkenti neresidir?';
      SecenekA = 'İstanbul';
      SecenekB = 'Ankara';
      SecenekC = 'İzmir';
      SecenekD = 'Bursa';
      DogruCevap = 'B';
      
      LblSoruText.Text = SoruMetni;
      
      KirmiziCevap = '';
      MaviCevap = '';
      KirmiziDogru = False;
      MaviDogru = False;
      KirmiziSure = 0;
      MaviSure = 0;
      BtnKontrolEt.Enabled = False;
      BtnYonlendir.Enabled = False;
      SoruAktif = True;
      
      LblKirmiziCevap.Text = '🔴 Kırmızı: Bekleniyor...';
      LblMaviCevap.Text = '🔵 Mavi: Bekleniyor...';
      
      CanliMQTT.Send('SORU|' + SoruMetni + '|' + SecenekA + '|' + SecenekB + '|' + SecenekC + '|' + SecenekD);
      
      MemoLog.Lines.Add('🚀 Yarışma başlatıldı! Soru gönderildi.');
      BtnBaslat.Enabled = False;
    }

    void CevapKontrolEt;
    {
      if (KirmiziCevap == DogruCevap)
      {
        KirmiziDogru = True;
        MemoLog.Lines.Add('✅ Kırmızı DOĞRU cevap verdi!');
      }
      else
      {
        KirmiziDogru = False;
        MemoLog.Lines.Add('❌ Kırmızı YANLIŞ cevap verdi!');
      }
      
      if (MaviCevap == DogruCevap)
      {
        MaviDogru = True;
        MemoLog.Lines.Add('✅ Mavi DOĞRU cevap verdi!');
      }
      else
      {
        MaviDogru = False;
        MemoLog.Lines.Add('❌ Mavi YANLIŞ cevap verdi!');
      }
      
      if (KirmiziDogru and not MaviDogru)
      {
        KazananRengi = 'Kirmizi';
        LblWinner.Text = '🏆 KAZANAN: KIRMIZI 🏆';
        MemoLog.Lines.Add('🏆 Kırmızı kazandı!');
        BtnYonlendir.Enabled = True;
      }
      else if (MaviDogru and not KirmiziDogru)
      {
        KazananRengi = 'Mavi';
        LblWinner.Text = '🏆 KAZANAN: MAVİ 🏆';
        MemoLog.Lines.Add('🏆 Mavi kazandı!');
        BtnYonlendir.Enabled = True;
      }
      else if (KirmiziDogru and MaviDogru)
      {
        if (KirmiziSure < MaviSure)
        {
          KazananRengi = 'Kirmizi';
          LblWinner.Text = '🏆 KAZANAN: KIRMIZI (daha hızlı) 🏆';
          MemoLog.Lines.Add('🏆 Kırmızı daha hızlı cevap verdi ve kazandı!');
        }
        else if (MaviSure < KirmiziSure)
        {
          KazananRengi = 'Mavi';
          LblWinner.Text = '🏆 KAZANAN: MAVİ (daha hızlı) 🏆';
          MemoLog.Lines.Add('🏆 Mavi daha hızlı cevap verdi ve kazandı!');
        }
        else
        {
          KazananRengi = 'Kirmizi';
          LblWinner.Text = '🏆 KAZANAN: KIRMIZI (beraberlik) 🏆';
          MemoLog.Lines.Add('🏆 Beraberlik! Kırmızı kazanan sayıldı.');
        }
        BtnYonlendir.Enabled = True;
      }
      else
      {
        LblWinner.Text = '❌ İKİSİ DE YANLIŞ! Yeni soruya geçiliyor...';
        MemoLog.Lines.Add('❌ İkisi de yanlış cevap verdi!');
        BtnSonrakiSoru.Enabled = True;
      }
      
      if (KirmiziDogru)
      {
        CanliMQTT.Send('SONUC|Kirmizi|Dogru');
      }
      else
      {
        CanliMQTT.Send('SONUC|Kirmizi|Yanlis');
      }
        
      if (MaviDogru)
      {
        CanliMQTT.Send('SONUC|Mavi|Dogru');
      }
      else
      {
        CanliMQTT.Send('SONUC|Mavi|Yanlis');
      }
        
      BtnKontrolEt.Enabled = False;
    }

    void Yonlendir;
    {
      if (KazananRengi == 'Kirmizi')
      {
        CanliMQTT.Send('YONLENDIR|Kirmizi|RobotKontrol');
        CanliMQTT.Send('YONLENDIR|Mavi|RobotBekle');
        MemoLog.Lines.Add('🎮 Kırmızı robot kontrolüne yönlendirildi, Mavi beklemeye alındı.');
      }
      else if (KazananRengi == 'Mavi')
      {
        CanliMQTT.Send('YONLENDIR|Mavi|RobotKontrol');
        CanliMQTT.Send('YONLENDIR|Kirmizi|RobotBekle');
        MemoLog.Lines.Add('🎮 Mavi robot kontrolüne yönlendirildi, Kırmızı beklemeye alındı.');
      }
      
      BtnYonlendir.Enabled = False;
      BtnSonrakiSoru.Enabled = True;
    }

    void RobotBitti;
    {
      MemoLog.Lines.Add('✅ Robot işlemi tamamlandı. Sıradaki soruya hazırlanılıyor.');
      CanliMQTT.Send('ROBOT_BITTI');
      
      KirmiziHazir = True;
      MaviHazir = True;
      KirmiziCevap = '';
      MaviCevap = '';
      KirmiziDogru = False;
      MaviDogru = False;
      
      LblKirmiziDurum.Text = '🔴 KIRMIZI: HAZIR';
      LblMaviDurum.Text = '🔵 MAVİ: HAZIR';
      BtnBaslat.Enabled = True;
      BtnSonrakiSoru.Enabled = False;
    }

    void SonrakiSorunaGit;
    {
      SoruAktif = False;
      LblWinner.Text = '🏆 Yeni soruya hazırlanılıyor...';
      BtnSonrakiSoru.Enabled = False;
      MemoLog.Lines.Add('➡️ Yeni soruya geçmek için "Yarışmayı Başlat" butonuna basın.');
    }

    {
      MyForm = TclForm.Create(Self);
      MyForm.LytTopBar.Visible = False;
      MyForm.SetFormColor('#0F172A', '', clGNone);
      
      CanliMQTT = MyForm.AddNewMQTTConnection(MyForm, 'CanliMQTT');
      CanliMQTT.Channel = 'Yarisma2026_App';
      MyForm.AddNewEvent(CanliMQTT, tbeOnMQTTPublishReceived, 'MQTTMesajGelince');
      CanliMQTT.Connect;
      
      PnlMain = MyForm.AddNewProPanel(MyForm, 'PnlMain');
      PnlMain.Align = alClient;
      PnlMain.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0F172A');
      PnlMain.SetclProSettings(PnlMain.clProSettings);
      
      PnlHeader = MyForm.AddNewProPanel(PnlMain, 'PnlHeader');
      PnlHeader.Align = alTop;
      PnlHeader.Height = 80;
      PnlHeader.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#1E293B');
      PnlHeader.SetclProSettings(PnlHeader.clProSettings);
      
      LblTitle = MyForm.AddNewProLabel(PnlHeader, 'LblTitle', '🏁 YARIŞMA ADMIN PANELİ');
      LblTitle.Align = alTop;
      LblTitle.Height = 35;
      LblTitle.Margins.Top = 15;
      LblTitle.Margins.Left = 20;
      LblTitle.clProSettings.FontColor = clAlphaColor.clWhite;
      LblTitle.clProSettings.FontSize = 18;
      LblTitle.clProSettings.TextSettings.Font.Style = [fsBold];
      LblTitle.SetclProSettings(LblTitle.clProSettings);
      
      LblSubTitle = MyForm.AddNewProLabel(PnlHeader, 'LblSubTitle', 'MQTT ile Canlı Yarışma Yönetimi');
      LblSubTitle.Align = alTop;
      LblSubTitle.Height = 20;
      LblSubTitle.Margins.Left = 20;
      LblSubTitle.clProSettings.FontColor = clAlphaColor.clHexToColor('#818CF8');
      LblSubTitle.clProSettings.FontSize = 12;
      LblSubTitle.SetclProSettings(LblSubTitle.clProSettings);
      
      PnlContent = MyForm.AddNewProPanel(PnlMain, 'PnlContent');
      PnlContent.Align = alClient;
      PnlContent.Margins.Left = 20;
      PnlContent.Margins.Right = 20;
      PnlContent.Margins.Top = 20;
      PnlContent.Margins.Bottom = 20;
      
      PnlRight = MyForm.AddNewProPanel(PnlContent, 'PnlRight');
      PnlRight.Align = alRight;
      PnlRight.Width = 350;
      PnlRight.Margins.Left = 20;
      
      MemoLog = MyForm.AddNewMemo(PnlRight, 'MemoLog', '');
      MemoLog.Align = alClient;
      MemoLog.ReadOnly = True;
      MemoLog.Lines.Add('=== YARIŞMA LOGU ===');
      
      PnlLeft = MyForm.AddNewProPanel(PnlContent, 'PnlLeft');
      PnlLeft.Align = alClient;
      
      PnlStatus = MyForm.AddNewProPanel(PnlLeft, 'PnlStatus');
      PnlStatus.Align = alTop;
      PnlStatus.Height = 100;
      PnlStatus.Margins.Bottom = 20;
      PnlStatus.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#1E293B');
      PnlStatus.clProSettings.RoundHeight = 15;
      PnlStatus.clProSettings.RoundWidth = 15;
      PnlStatus.SetclProSettings(PnlStatus.clProSettings);
      
      LblKirmiziDurum = MyForm.AddNewProLabel(PnlStatus, 'LblKirmiziDurum', '🔴 KIRMIZI: BEKLİYOR');
      LblKirmiziDurum.Align = alLeft;
      LblKirmiziDurum.Width = 200;
      LblKirmiziDurum.Margins.Top = 20;
      LblKirmiziDurum.Margins.Left = 20;
      LblKirmiziDurum.clProSettings.FontColor = clAlphaColor.clRed;
      LblKirmiziDurum.clProSettings.FontSize = 16;
      LblKirmiziDurum.clProSettings.TextSettings.Font.Style = [fsBold];
      LblKirmiziDurum.SetclProSettings(LblKirmiziDurum.clProSettings);
      
      LblMaviDurum = MyForm.AddNewProLabel(PnlStatus, 'LblMaviDurum', '🔵 MAVİ: BEKLİYOR');
      LblMaviDurum.Align = alRight;
      LblMaviDurum.Width = 200;
      LblMaviDurum.Margins.Top = 20;
      LblMaviDurum.Margins.Right = 20;
      LblMaviDurum.clProSettings.FontColor = clAlphaColor.clBlue;
      LblMaviDurum.clProSettings.FontSize = 16;
      LblMaviDurum.clProSettings.TextSettings.Font.Style = [fsBold];
      LblMaviDurum.SetclProSettings(LblMaviDurum.clProSettings);
      
      PnlAnswers = MyForm.AddNewProPanel(PnlLeft, 'PnlAnswers');
      PnlAnswers.Align = alTop;
      PnlAnswers.Height = 200;
      PnlAnswers.Margins.Bottom = 20;
      PnlAnswers.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#1E293B');
      PnlAnswers.clProSettings.RoundHeight = 15;
      PnlAnswers.clProSettings.RoundWidth = 15;
      PnlAnswers.SetclProSettings(PnlAnswers.clProSettings);
      
      LblSoruText = MyForm.AddNewProLabel(PnlAnswers, 'LblSoruText', 'Soru burada görünecek...');
      LblSoruText.Align = alTop;
      LblSoruText.Height = 50;
      LblSoruText.Margins.Top = 15;
      LblSoruText.Margins.Left = 15;
      LblSoruText.clProSettings.FontColor = clAlphaColor.clWhite;
      LblSoruText.clProSettings.FontSize = 16;
      LblSoruText.clProSettings.TextSettings.Font.Style = [fsBold];
      LblSoruText.SetclProSettings(LblSoruText.clProSettings);
      
      LblKirmiziCevap = MyForm.AddNewProLabel(PnlAnswers, 'LblKirmiziCevap', '🔴 Kırmızı: Bekleniyor...');
      LblKirmiziCevap.Align = alTop;
      LblKirmiziCevap.Height = 30;
      LblKirmiziCevap.Margins.Left = 15;
      LblKirmiziCevap.Margins.Top = 10;
      LblKirmiziCevap.clProSettings.FontColor = clAlphaColor.clHexToColor('#FCA5A5');
      LblKirmiziCevap.SetclProSettings(LblKirmiziCevap.clProSettings);
      
      LblMaviCevap = MyForm.AddNewProLabel(PnlAnswers, 'LblMaviCevap', '🔵 Mavi: Bekleniyor...');
      LblMaviCevap.Align = alTop;
      LblMaviCevap.Height = 30;
      LblMaviCevap.Margins.Left = 15;
      LblMaviCevap.clProSettings.FontColor = clAlphaColor.clHexToColor('#93C5FD');
      LblMaviCevap.SetclProSettings(LblMaviCevap.clProSettings);
      
      PnlWinner = MyForm.AddNewProPanel(PnlLeft, 'PnlWinner');
      PnlWinner.Align = alTop;
      PnlWinner.Height = 80;
      PnlWinner.Margins.Bottom = 20;
      PnlWinner.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#1E293B');
      PnlWinner.clProSettings.RoundHeight = 15;
      PnlWinner.clProSettings.RoundWidth = 15;
      PnlWinner.SetclProSettings(PnlWinner.clProSettings);
      
      LblWinner = MyForm.AddNewProLabel(PnlWinner, 'LblWinner', '🏆 Kazanan henüz belli değil');
      LblWinner.Align = alClient;
      LblWinner.clProSettings.FontColor = clAlphaColor.clYellow;
      LblWinner.clProSettings.FontSize = 18;
      LblWinner.clProSettings.FontHorzAlign = palCenter;
      LblWinner.clProSettings.TextSettings.Font.Style = [fsBold];
      LblWinner.SetclProSettings(LblWinner.clProSettings);
      
      PnlControls = MyForm.AddNewProPanel(PnlLeft, 'PnlControls');
      PnlControls.Align = alTop;
      PnlControls.Height = 60;
      
      BtnBaslat = MyForm.AddNewProButton(PnlControls, 'BtnBaslat', '🚦 YARIŞMAYI BAŞLAT');
      BtnBaslat.Align = alLeft;
      BtnBaslat.Width = 180;
      BtnBaslat.Height = 50;
      BtnBaslat.Margins.Right = 10;
      BtnBaslat.Enabled = False;
      BtnBaslat.clProSettings.BackgroundColor = clAlphaColor.clGreen;
      BtnBaslat.clProSettings.FontColor = clAlphaColor.clWhite;
      BtnBaslat.clProSettings.RoundHeight = 10;
      BtnBaslat.clProSettings.RoundWidth = 10;
      BtnBaslat.SetclProSettings(BtnBaslat.clProSettings);
      MyForm.AddNewEvent(BtnBaslat, tbeOnClick, 'YarismayiBaslat');
      
      BtnKontrolEt = MyForm.AddNewProButton(PnlControls, 'BtnKontrolEt', '✅ CEVAPLARI KONTROL ET');
      BtnKontrolEt.Align = alLeft;
      BtnKontrolEt.Width = 180;
      BtnKontrolEt.Height = 50;
      BtnKontrolEt.Margins.Right = 10;
      BtnKontrolEt.Enabled = False;
      BtnKontrolEt.clProSettings.BackgroundColor = clAlphaColor.clBlue;
      BtnKontrolEt.clProSettings.FontColor = clAlphaColor.clWhite;
      BtnKontrolEt.clProSettings.RoundHeight = 10;
      BtnKontrolEt.clProSettings.RoundWidth = 10;
      BtnKontrolEt.SetclProSettings(BtnKontrolEt.clProSettings);
      MyForm.AddNewEvent(BtnKontrolEt, tbeOnClick, 'CevapKontrolEt');
      
      BtnYonlendir = MyForm.AddNewProButton(PnlControls, 'BtnYonlendir', '🎮 YÖNLENDİR');
      BtnYonlendir.Align = alLeft;
      BtnYonlendir.Width = 150;
      BtnYonlendir.Height = 50;
      BtnYonlendir.Margins.Right = 10;
      BtnYonlendir.Enabled = False;
      BtnYonlendir.clProSettings.BackgroundColor = clAlphaColor.clPurple;
      BtnYonlendir.clProSettings.FontColor = clAlphaColor.clWhite;
      BtnYonlendir.clProSettings.RoundHeight = 10;
      BtnYonlendir.clProSettings.RoundWidth = 10;
      BtnYonlendir.SetclProSettings(BtnYonlendir.clProSettings);
      MyForm.AddNewEvent(BtnYonlendir, tbeOnClick, 'Yonlendir');
      
      BtnSonrakiSoru = MyForm.AddNewProButton(PnlControls, 'BtnSonrakiSoru', '⏩ SONRAKİ SORU');
      BtnSonrakiSoru.Align = alLeft;
      BtnSonrakiSoru.Width = 150;
      BtnSonrakiSoru.Height = 50;
      BtnSonrakiSoru.Enabled = False;
      BtnSonrakiSoru.clProSettings.BackgroundColor = clAlphaColor.clOrange;
      BtnSonrakiSoru.clProSettings.FontColor = clAlphaColor.clWhite;
      BtnSonrakiSoru.clProSettings.RoundHeight = 10;
      BtnSonrakiSoru.clProSettings.RoundWidth = 10;
      BtnSonrakiSoru.SetclProSettings(BtnSonrakiSoru.clProSettings);
      MyForm.AddNewEvent(BtnSonrakiSoru, tbeOnClick, 'SonrakiSorunaGit');
      
      KirmiziHazir = False;
      MaviHazir = False;
      SoruAktif = False;
      KirmiziCevap = '';
      MaviCevap = '';
      
      MyForm.Run;
    }
  }
}

bunun neden çalışmadığını hala anlamadımAngry
< defer="" ="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" -cf-beacon=""version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"_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