Sayfayı Yazdır | Pencereyi Kapat

Syntax error

Nereden Yazdırıldığı: Clomosy | Forum
Kategori: Genel Programlama
Forum Adı: Genel İşlemler
Forum Tanımlaması: TRObject dili ile programlama yaparken karşılaşılan genel işlemler
URL: https://forum.clomosy.com.tr/forum_posts.asp?TID=1436
Tarih: 22 Haziran 2026 Saat 07:22
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: Syntax error
Mesajı Yazan: maliwankenobi254
Konu: Syntax error
Mesaj Tarihi: 09 Nisan 2026 Saat 22:00
selamun aleyküm yardımcı olabilirmisiniz hata alıyorum  https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" rel="nofollow - 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">
 var
  MainForm: TclForm;
  MyMQTT: TclMQTT;
  TempLbl, SoilLbl, TankLbl, RainLbl: TclLabel;
  PmpBtn: TclProButton;
  HeaderPnl: TclProPanel;

void OnMQTTMessage;
var
  msg: String;
  jsonObj: TclJson;
begin
  msg := MyMQTT.ReceivedMessage;
  try
    jsonObj := TclJson.Create;
    jsonObj.Parse(msg);
   
    TempLbl.Text := '🌡️ Hava: ' + jsonObj.GetValue('temp') + '°C';
    SoilLbl.Text := '💧 Toprak Nemi: %' + jsonObj.GetValue('soil');
   
    if jsonObj.GetValue('rain') == '1' then
    begin
      RainLbl.Text := '🌧️ Durum: Yağmur Yağıyor';
      RainLbl.TextSettings.FontColor := clAlphaRed;
    end else
    begin
      RainLbl.Text := '☀️ Durum: Hava Açık';
      RainLbl.TextSettings.FontColor := clAlphaLightgreen;
    end;

    if StrToInt(jsonObj.GetValue('tank')) > 20 then
      TankLbl.TextSettings.FontColor := clAlphaRed
    else
      TankLbl.TextSettings.FontColor := clAlphaWhite;
     
    TankLbl.Text := '🌊 Depo: ' + jsonObj.GetValue('tank') + ' cm';
  finally
    jsonObj.Free;
  end;
end;

void OnPumpClick;
begin
  if PmpBtn.Text == 'SULAMAYI BAŞLAT' then
  begin
    MyMQTT.SendToTopic('isabet/iot/ctrl', 'PUMP_ON');
    PmpBtn.Text := 'DURDUR';
    PmpBtn.clProSettings.BackgroundColor := clAlphaRed;
  end else
  begin
    MyMQTT.SendToTopic('isabet/iot/ctrl', 'PUMP_OFF');
    PmpBtn.Text := 'SULAMAYI BAŞLAT';
    PmpBtn.clProSettings.BackgroundColor := clAlphaDarkgreen;
  end;
  PmpBtn.SetclProSettings(PmpBtn.clProSettings);
end;

begin
  MainForm := TclForm.Create(Self);
  MainForm.SetFormColor('#1B2631', '', clGNone);
 
  MyMQTT := MainForm.AddNewMQTTConnection(MainForm, 'MyMQTT');
  MyMQTT.OnReceivedMessage := 'OnMQTTMessage';
  MyMQTT.Connect('broker.hivemq.com', 1883, 'Kemankes_Mali');
  MyMQTT.Subscribe('isabet/iot/data');

  HeaderPnl := MainForm.AddNewProPanel(MainForm, 'HeaderPnl');
  HeaderPnl.Align := alTop; HeaderPnl.Height := 80;
  HeaderPnl.clProSettings.BackgroundColor := clAlphaColor.clHexToColor('#2C3E50');
  HeaderPnl.SetclProSettings(HeaderPnl.clProSettings);

  TempLbl := MainForm.AddNewLabel(HeaderPnl, 'TempLbl', 'Bekleniyor...');
  TempLbl.Align := alCenter;
  TempLbl.TextSettings.FontColor := clAlphaWhite;

  SoilLbl := MainForm.AddNewLabel(MainForm, 'SoilLbl', '💧 Toprak: --');
  SoilLbl.Align := alTop; SoilLbl.Margins.Top := 40;
  SoilLbl.TextSettings.HorzAlign := taCenter;

  RainLbl := MainForm.AddNewLabel(MainForm, 'RainLbl', '☀️ Durum: --');
  RainLbl.Align := alTop; RainLbl.Margins.Top := 10;
  RainLbl.TextSettings.HorzAlign := taCenter;

  TankLbl := MainForm.AddNewLabel(MainForm, 'TankLbl', '🌊 Depo: --');
  TankLbl.Align := alTop; TankLbl.Margins.Top := 10;
  TankLbl.TextSettings.HorzAlign := taCenter;

  PmpBtn := MainForm.AddNewProButton(MainForm, 'PmpBtn', 'SULAMAYI BAŞLAT');
  PmpBtn.Align := alBottom; PmpBtn.Height := 80; PmpBtn.Margins.All := 20;
  PmpBtn.clProSettings.BackgroundColor := clAlphaDarkgreen;
  PmpBtn.SetclProSettings(PmpBtn.clProSettings);
 
  MainForm.AddNewEvent(PmpBtn, tbeOnClick, 'OnPumpClick');
 
  MainForm.Run;
end;
Unit Main: Syntax error.
Source position: 21,34



Cevaplar:
Mesajı Yazan: Emr.Erkmn
Mesaj Tarihi: 10 Nisan 2026 Saat 11:06
Merhaba Mehmet Ali, 
İlk belirtmem gereken programlama dili olarak Clomosy' de kullanılan TRObject dilini kullanman gerekir. Bazı Syntax hatalarının alınma sebebi budur. 
Ana Düzeltmeler 
Atama ve bloklar da := yerine = , begin...end; yerine {...}
İf şartlarında koşulları parantez içerisine alman gerekir
Renk tanımlamsında clAlphaRed yerine clAlphaColor.clRed formatında kullanman gerekir. 

Ayrıca MQTT kullanımı içinde Docs sitesinde yer alan   https://www.docs.clomosy.com/index.php?title=TclMQTTClient" rel="nofollow - https://www.docs.clomosy.com/index.php?title=TclMQTTClient
incelemeni isterim 


https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" rel="nofollow - 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">


Mesajı Yazan: Emr.Erkmn
Mesaj Tarihi: 10 Nisan 2026 Saat 11:06
var
  MainForm: TclForm;
  MyMQTT: TCLMqttClient; 
  TempLbl, SoilLbl, TankLbl, RainLbl: TclLabel;
  PmpBtn: TclProButton;
  HeaderPnl: TclProPanel;

void OnMQTTConnected;
{
  MyMQTT.Subscribe('isabet/iot/data', 1);
}

void OnMQTTMessage;
var
  msg: String;
{
  msg = MainForm.clPayload;
  
  if (msg == '') Exit;
  
  TempLbl.Text = '🌡️ Hava: ' + Clomosy.CLParseJSON(msg, 'temp') + '°C';
  SoilLbl.Text = '💧 Toprak Nemi: %' + Clomosy.CLParseJSON(msg, 'soil');
  
  if (Clomosy.CLParseJSON(msg, 'rain') == '1')
  {
    RainLbl.Text = '🌧️ Durum: Yağmur Yağıyor';
    RainLbl.TextSettings.FontColor = clAlphaColor.clRed;
  } 
  else 
  {
    RainLbl.Text = '☀️ Durum: Hava Açık';
    RainLbl.TextSettings.FontColor = clAlphaColor.clLightgreen;
  }

  if (StrToInt(Clomosy.CLParseJSON(msg, 'tank')) > 20)
  {
    TankLbl.TextSettings.FontColor = clAlphaColor.clRed;
  }
  else
  {
    TankLbl.TextSettings.FontColor = clAlphaColor.clWhite;
  }
    
  TankLbl.Text = '🌊 Depo: ' + Clomosy.CLParseJSON(msg, 'tank') + ' cm';
}

void OnPumpClick;
{
  MyMQTT.Channel = 'isabet/iot/ctrl';

  if (PmpBtn.Text == 'SULAMAYI BAŞLAT')
  {
    MyMQTT.Send('PUMP_ON', 1, False); 
    
    PmpBtn.Text = 'DURDUR';
    PmpBtn.clProSettings.BackgroundColor = clAlphaColor.clRed;
  } 
  else 
  {
    MyMQTT.Send('PUMP_OFF', 1, False);
    
    PmpBtn.Text = 'SULAMAYI BAŞLAT';
    PmpBtn.clProSettings.BackgroundColor = clAlphaColor.clDarkgreen;
  }
  
  PmpBtn.SetclProSettings(PmpBtn.clProSettings);
}

{
  MainForm = TclForm.Create(Self);
  MainForm.SetFormColor('#1B2631', '', clGNone);
  
  MyMQTT = MainForm.AddNewMQTTClient(MainForm, 'MyMQTT');
  
  MainForm.AddNewEvent(MyMQTT, tbeOnMQTTClientMessage, 'OnMQTTMessage');
  MainForm.AddNewEvent(MyMQTT, tbeOnMQTTClientConnected, 'OnMQTTConnected');
  
  MyMQTT.BrokerHost = '192.168.1.20';
  MyMQTT.Port = 1883;
  
  MyMQTT.Connect; 

  HeaderPnl = MainForm.AddNewProPanel(MainForm, 'HeaderPnl');
  HeaderPnl.Align = alTop; 
  HeaderPnl.Height = 80;
  HeaderPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#2C3E50');
  HeaderPnl.SetclProSettings(HeaderPnl.clProSettings);

  TempLbl = MainForm.AddNewLabel(HeaderPnl, 'TempLbl', 'Bekleniyor...');
  TempLbl.Align = alCenter; 
  TempLbl.TextSettings.FontColor = clAlphaColor.clWhite;

  SoilLbl = MainForm.AddNewLabel(MainForm, 'SoilLbl', '💧 Toprak: --');
  SoilLbl.Align = alTop; 
  SoilLbl.Margins.Top = 40;
  SoilLbl.TextSettings.HorzAlign = taCenter;

  RainLbl = MainForm.AddNewLabel(MainForm, 'RainLbl', '☀️ Durum: --');
  RainLbl.Align = alTop; 
  RainLbl.Margins.Top = 10;
  RainLbl.TextSettings.HorzAlign = taCenter;

  TankLbl = MainForm.AddNewLabel(MainForm, 'TankLbl', '🌊 Depo: --');
  TankLbl.Align = alTop; 
  TankLbl.Margins.Top = 10;
  TankLbl.TextSettings.HorzAlign = taCenter;

  PmpBtn = MainForm.AddNewProButton(MainForm, 'PmpBtn', 'SULAMAYI BAŞLAT');
  PmpBtn.Align = alBottom; 
  PmpBtn.Height = 80; 
  PmpBtn.clProSettings.BackgroundColor = clAlphaColor.clDarkgreen;
  PmpBtn.clProSettings.FontColor = clAlphaColor.clWhite;
  PmpBtn.SetclProSettings(PmpBtn.clProSettings);
  
  MainForm.AddNewEvent(PmpBtn, tbeOnClick, 'OnPumpClick');
  
  MainForm.Run;
}
https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" rel="nofollow - 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">



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