Sayfayı Yazdır | Pencereyi Kapat

proje

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=1478
Tarih: 07 Mayıs 2026 Saat 00:25
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: proje
Mesajı Yazan: yagmur
Konu: proje
Mesaj Tarihi: 06 Mayıs 2026 Saat 21:15
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
  Form1 : TclForm;
  searchEdt : TClProSearchEdit;
  titleLbl : TclProLabel;
  tempLbl : TClProLabel;
  descLbl : TClProLabel;
  city : String;

// ==========================================
// HAVA DURUMU API ISTEGI (GÜNCELLENDI)
// ==========================================
void getWeatherRequest;
var
  MyHttp : TclHttp;
  str : String;
  JSONNesnesi : TCLJSONObject;
  WeatherArr : TCLJSONArray;
  WeatherObj : TCLJSONObject;
  ApiDurumKodu, WeatherMetni : String;
{
  MyHttp = TclHttp.Create(nil);
  Try
    str = MyHttp.GetRequest(' https://api.openweathermap.org/data/2.5/weather?q=" rel="nofollow - https://api.openweathermap.org/data/2.5/weather?q= ' + city + '&appid=df699d8c75653e80730faa440e938a26&units=metric&lang=tr');
    
    if (str <> '')
    {
      JSONNesnesi = TCLJSON.ParseToJSONObject(str);
      Try
        ApiDurumKodu = JSONNesnesi.GetValue('cod').AsString;
        
        if (ApiDurumKodu == '200')
        {
          tempLbl.Text = JSONNesnesi.GetValueByPath('main.temp').AsString + ' °C';
          
          WeatherMetni = Clomosy.CLParseJSON(str, 'weather');
          
          WeatherArr = TCLJSON.ParseToJSONArray(WeatherMetni);
          
          if (WeatherArr.Count > 0)
          {
            WeatherObj = TCLJSONObject(WeatherArr.GetItem(0));
            descLbl.Text = WeatherObj.GetValue('description').AsString;
            descLbl.Text = UpperCase(descLbl.Text); 
          }
        }
        else
        {
          tempLbl.Text = 'Sehir Bulunamadi!';
          descLbl.Text = 'Lütfen kontrol edip tekrar deneyin.';
        }
      Finally
        JSONNesnesi.Free;
      }
    }
    else
    {
      tempLbl.Text = 'Baglanti Hatasi!';
      descLbl.Text = 'Lütfen internetinizi kontrol edin.';
    }
  Finally
    MyHttp.Free;
  }
}

void BtnOnClick;
{
  city = searchEdt.Text;
  
  if (city <> '')
  {
    tempLbl.Text = 'Yükleniyor...';
    descLbl.Text = '';
    getWeatherRequest; // Istegi baslat
  }
}

{
  Form1 = TclForm.Create(Self);
  Form1.SetFormColor('#F8FAFC', '', clGNone);

  titleLbl = Form1.AddNewProLabel(Form1,'titleLbl','HAVA DURUMU');
  titleLbl.Align = alTop;
  titleLbl.Height = 80;
  titleLbl.clProSettings.FontHorzAlign = palCenter;
  titleLbl.clProSettings.FontVertAlign = palCenter;
  titleLbl.clProSettings.TextSettings.Font.Style = [fsBold];
  titleLbl.clProSettings.FontSize = 24;
  titleLbl.SetclProSettings(titleLbl.clProSettings);

  searchEdt = Form1.AddNewProSearchEdit(Form1,'searchEdt','Sehir girip Enter''a basiniz...');
  searchEdt.Align = alTop;
  searchEdt.Height = 50;
  searchEdt.Margins.Left = 30;
  searchEdt.Margins.Right = 30;
  Form1.AddNewEvent(searchEdt,tbeOnEnter,'BtnOnClick'); 

  tempLbl = Form1.AddNewProLabel(Form1,'tempLbl','');
  tempLbl.Align = alTop;
  tempLbl.Height = 100;
  tempLbl.Margins.Top = 50;
  tempLbl.clProSettings.FontHorzAlign = palCenter;
  tempLbl.clProSettings.FontVertAlign = palCenter;
  tempLbl.clProSettings.FontSize = 45;
  tempLbl.clProSettings.TextSettings.Font.Style = [fsBold];
  tempLbl.SetclProSettings(tempLbl.clProSettings);

  descLbl = Form1.AddNewProLabel(Form1,'descLbl','');
  descLbl.Align = alTop;
  descLbl.Height = 50;
  descLbl.clProSettings.FontHorzAlign = palCenter;
  descLbl.clProSettings.FontSize = 18;
  descLbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#64748B'); 
  descLbl.SetclProSettings(descLbl.clProSettings);

  Form1.Run;
}  
kod çalışıyor ama apı çekemiyor




-------------
4GWTRS



Cevaplar:
Mesajı Yazan: Emr.Erkmn
Mesaj Tarihi: 06 Mayıs 2026 Saat 21:32
Merhaba Yağmur 
var
  Form1 : TclForm;
  searchEdt : TclProEdit;
  titleLbl : TclProLabel;
  tempLbl : TClProLabel;
  descLbl : TClProLabel;
  city : String;

void getWeatherRequest;
var
  MyHttp : TclHttp;
  str : String;
  JSONNesnesi : TCLJSONObject;
  WeatherArr : TCLJSONArray;
  WeatherObj : TCLJSONObject;
  ApiDurumKodu, WeatherMetni : String;
{
  MyHttp = TclHttp.Create(nil);
  try
    str = MyHttp.GetRequest(' https://api.openweathermap.org/data/2.5/weather?q=" rel="nofollow - https://api.openweathermap.org/data/2.5/weather?q= ' + city + '&appid=df699d8c75653e80730faa440e938a26&units=metric&lang=tr');
    
    if (str <> '')
    {
      JSONNesnesi = TCLJSON.ParseToJSONObject(str);
      try
        ApiDurumKodu = JSONNesnesi.GetValue('cod').AsString;
        
        if (ApiDurumKodu == '200')
        {
          tempLbl.Text = JSONNesnesi.GetValueByPath('main.temp').AsString + ' °C';
          
          WeatherMetni = Clomosy.CLParseJSON(str, 'weather');
          
          WeatherArr = TCLJSON.ParseToJSONArray(WeatherMetni);
          
          if (WeatherArr.Count > 0)
          {
            WeatherObj = TCLJSONObject(WeatherArr.GetItem(0));
            descLbl.Text = WeatherObj.GetValue('description').AsString;
            descLbl.Text = UpperCase(descLbl.Text); 
          }
        }
        else
        {
          tempLbl.Text = 'Sehir Bulunamadi!';
          descLbl.Text = 'Lütfen kontrol edip tekrar deneyin.';
        }
      finally
        JSONNesnesi.Free;
      }
    }
    else
    {
      tempLbl.Text = 'Baglanti Hatasi!';
      descLbl.Text = 'Lütfen internetinizi kontrol edin.';
    }
  finally
    MyHttp.Free;
  }
}

void BtnOnClick;
{
  city = searchEdt.Text;
  
  if (city <> '')
  {
    tempLbl.Text = 'Yükleniyor...';
    descLbl.Text = '';
    getWeatherRequest;
  }
}

{
  Form1 = TclForm.Create(Self);
  Form1.SetFormColor('#F8FAFC', '', clGNone);

  titleLbl = Form1.AddNewProLabel(Form1,'titleLbl','HAVA DURUMU');
  titleLbl.Align = alTop;
  titleLbl.Height = 80;
  titleLbl.clProSettings.FontHorzAlign = palCenter;
  titleLbl.clProSettings.FontVertAlign = palCenter;
  titleLbl.clProSettings.TextSettings.Font.Style = [fsBold];
  titleLbl.clProSettings.FontSize = 24;
  titleLbl.SetclProSettings(titleLbl.clProSettings);

  searchEdt = Form1.AddNewProEdit(Form1,'searchEdt','Sehir girip Enter''a basiniz...');
  searchEdt.Align = alTop;
  searchEdt.Height = 50;
  searchEdt.Margins.Left = 30;
  searchEdt.Margins.Right = 30;
  Form1.AddNewEvent(searchEdt,tbeOnEnter,'BtnOnClick'); 

  tempLbl = Form1.AddNewProLabel(Form1,'tempLbl','');
  tempLbl.Align = alTop;
  tempLbl.Height = 100;
  tempLbl.Margins.Top = 50;
  tempLbl.clProSettings.FontHorzAlign = palCenter;
  tempLbl.clProSettings.FontVertAlign = palCenter;
  tempLbl.clProSettings.FontSize = 45;
  tempLbl.clProSettings.TextSettings.Font.Style = [fsBold];
  tempLbl.SetclProSettings(tempLbl.clProSettings);

  descLbl = Form1.AddNewProLabel(Form1,'descLbl','');
  descLbl.Align = alTop;
  descLbl.Height = 50;
  descLbl.clProSettings.FontHorzAlign = palCenter;
  descLbl.clProSettings.FontSize = 18;
  descLbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#64748B'); 
  descLbl.SetclProSettings(descLbl.clProSettings);

  Form1.Run;
}


Kodunda AddNewProSearchEdit kullandığın için event tetiklenmedi. 
Onun yerine TclProEdit kullandım tbeOnEnter olayını ekledim 
https://www.docs.clomosy.com/index.php?title=Events" rel="nofollow - https://www.docs.clomosy.com/index.php?title=Events
https://www.docs.clomosy.com/index.php?title=AddNewEvent" rel="nofollow - https://www.docs.clomosy.com/index.php?title=AddNewEvent
TbeOnEnter da enter tuşuyla çalışmıyor 
Docs sitesinde eventların açıklamaları yer almakta bir göz atmanı 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">



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