![]() |
| 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
|
| Yazar | |
Hüseyin_Sadik
Yeni Üye
Kayıt Tarihi: 03 Aralık 2025 Durum: Aktif Değil Puanlar: 12 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Hüseyin_Sadik
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Teşekkürler(0)
Alıntı Cevapla
Konu: kod hatasıGönderim Zamanı: Dün 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; } } } < 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">
bunun neden çalışmadığını hala anlamadım ![]() |
|
![]() |
|
kaanl0
Kıdemli Üye
Kayıt Tarihi: 16 Eylül 2025 Konum: konya Durum: Aktif Değil Puanlar: 188 |
Mesaj Seçenekleri
Teşekkürler(0)
Alıntı Cevapla
Gönderim Zamanı: 21 Saat 43 Dakika Önce Saat 16:44 |
|
Merhaba birkaç hatan var.
MQTTMesajGelince prosedürünü else bloğunun içine yazmışsın. 2. hata if sorgularında and yerine && kullanıyoruz. Hataları düzeltip iletiyorum şuanda hata almıyoruz.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; // ============================================================================ // FONKSİYON TANIMLAMALARI // ============================================================================ 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'); } // DÜZELTME: and yerine && if ((KirmiziHazir == True) && (MaviHazir == True)) { 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)'); } // DÜZELTME: and yerine && if ((KirmiziCevap <> '') && (MaviCevap <> '')) { BtnKontrolEt.Enabled = True; } } } } void YarismayiBaslat; { // DÜZELTME: not yerine == False if (KirmiziHazir == False) { ShowMessage('Kırmızı oyuncu hazır değil!'); Exit; } if (MaviHazir == False) { ShowMessage('Mavi oyuncu hazır değil!'); Exit; } 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!'); } // DÜZELTMELER: and yerine &&, not yerine == False if ((KirmiziDogru == True) && (MaviDogru == False)) { KazananRengi = 'Kirmizi'; LblWinner.Text = '🏆 KAZANAN: KIRMIZI 🏆'; MemoLog.Lines.Add('🏆 Kırmızı kazandı!'); BtnYonlendir.Enabled = True; } else if ((MaviDogru == True) && (KirmiziDogru == False)) { KazananRengi = 'Mavi'; LblWinner.Text = '🏆 KAZANAN: MAVİ 🏆'; MemoLog.Lines.Add('🏆 Mavi kazandı!'); BtnYonlendir.Enabled = True; } else if ((KirmiziDogru == True) && (MaviDogru == True)) { 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 == True) CanliMQTT.Send('SONUC|Kirmizi|Dogru'); else CanliMQTT.Send('SONUC|Kirmizi|Yanlis'); if (MaviDogru == True) 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.'); } // ============================================================================ // ANA PROGRAM BLOĞU // ============================================================================ { if (Clomosy.PlatformIsMobile) { Clomosy.RunUnit('renksec'); } else { 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; } } 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">
|
|
![]() |
|
Yanıt Yaz
|
|
| Tweet |
| Forum Atla | Forum İzinleri ![]() Kapalı Foruma Yeni Konu Gönderme Kapalı Forumdaki Konulara Cevap Yazma Kapalı Forumda Cevapları Silme Kapalı Forumdaki Cevapları Düzenleme Kapalı Forumda Anket Açma Kapalı Forumda Anketlerde Oy Kullanma |