Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Clomosy ile değişken kullanımı
  Aktif Konular Aktif Konular RSS - kod hatası
  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 hatası

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
  Konu Arama Konu Arama  Topic Seçenekleri Topic Seçenekleri
Hüseyin_Sadik Açılır Kutu İzle
Yeni Üye
Yeni Üye
Simge

Kayıt Tarihi: 03 Aralık 2025
Durum: Aktif Değil
Puanlar: 12
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Hüseyin_Sadik Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: kod hatası
    Gönderim Zamanı: 3 Saat 55 Dakika Önce 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">
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,047 Saniyede Yüklendi.