<?xml version="1.0" encoding="iso-8859-9" ?>
<?xml-stylesheet type="text/xsl" href="RSS_xslt_style.asp" version="1.0" ?>
<rss version="2.0" xmlns:WebWizForums="https://syndication.webwiz.net/rss_namespace/">
 <channel>
  <title>Clomosy | Forum : iOS ImageChooser Sorunu</title>
  <link>https://forum.clomosy.com.tr/</link>
  <description><![CDATA[XML içerik linki; Clomosy | Forum : Genel &#304;&#351;lemler : iOS ImageChooser Sorunu]]></description>
  <copyright>Copyright (c) 2006-2013 Web Wiz Forums - All Rights Reserved.</copyright>
  <pubDate>Sun, 10 May 2026 16:45:18 +0000</pubDate>
  <lastBuildDate>Sun, 10 May 2026 13:42:51 +0000</lastBuildDate>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Web Wiz Forums 12.07</generator>
  <ttl>30</ttl>
  <WebWizForums:feedURL>https://forum.clomosy.com.tr/RSS_post_feed.asp?TID=1499</WebWizForums:feedURL>
  <image>
   <title><![CDATA[Clomosy | Forum]]></title>
   <url>https://forum.clomosy.com.tr/forum_images/logo.png</url>
   <link>https://forum.clomosy.com.tr/</link>
  </image>
  <item>
   <title><![CDATA[iOS ImageChooser Sorunu : Android&amp;#039;de s&#305;k&#305;nt&#305; ya&#351;atm&#305;yor...]]></title>
   <link>https://forum.clomosy.com.tr/forum_posts.asp?TID=1499&amp;PID=3442#3442</link>
   <description>
    <![CDATA[<strong>Yazar:</strong> <a href="https://forum.clomosy.com.tr/member_profile.asp?PF=451">clBerat</a><br /><strong>Konu:</strong> 1499<br /><strong>Gönderim Zamanı:</strong> 10&nbsp;Mayıs&nbsp;2026 Saat 13:42<br /><br /><div>Android'de sıkıntı yaşatmıyor ama iOS'ta bazen çalışıp bazen donuyor (hiçbirşeye tıklanmıyor) sebebini anlayamadım.<br><br><br><br>var</div><div>&nbsp; AnaSayfaForm : TCLForm;</div><div>&nbsp; lblHosGeldin : TClProLabel;</div><div>&nbsp; edtBarkodSonuc : TclProEdit;</div><div>&nbsp; btnBarkodOkut, btnCikis, btnUrunBul : TClProButton;</div><div>&nbsp; imgUrunFoto : TClImage;&nbsp;</div><div>&nbsp; tmrGemini, tmrKamera : TclTimer;</div><div>&nbsp; OpenFoodFactsApi, GeminiApi : TCLRest;</div><div>&nbsp; btnAnaStil, btnAltStil, prefFile : String;</div><div>&nbsp; prefList : TclStringList;</div><div>&nbsp;&nbsp;</div><div>&nbsp; scrollAna : TclVertScrollBox;&nbsp;</div><div>&nbsp; lytUstKasa, lytSonucKasa, lytAltKasa : TClLayout;</div><div>&nbsp; lytKasaUrun, lytKasaColyak, lytKasaSporcu : TClLayout;</div><div>&nbsp;&nbsp;</div><div>&nbsp; lytIcerikUrun, lytIcerikColyak, lytIcerikSporcu : TClLayout;</div><div>&nbsp;&nbsp;</div><div>&nbsp; lblKasaUrunBg, lblKasaColyakBg, lblKasaSporcuBg : TClProLabel;</div><div>&nbsp; lblUrunBaslik, lblColyakBaslik, lblSporcuBaslik : TClProLabel;</div><div>&nbsp;&nbsp;</div><div>&nbsp; memoUrunCevap, memoColyakCevap, memoSporcuCevap : TclMemo;</div><div>&nbsp;&nbsp;</div><div>&nbsp; IslemTipi, ArananDeger : String;</div><div><br></div><div>void BtnCikisYapClick;</div><div>{</div><div>&nbsp; prefList.Clear;</div><div>&nbsp; prefList.SaveToFile(prefFile, 0);&nbsp;</div><div>&nbsp; Clomosy.GlobalVariableString = '';&nbsp;</div><div>&nbsp; Clomosy.RunUnit('uKarsilama');</div><div>}</div><div><br></div><div>void btnBarkodOkutClick;</div><div>{</div><div>&nbsp; imgUrunFoto.Visible = False;&nbsp;</div><div>&nbsp; lytSonucKasa.Visible = False;&nbsp;</div><div>&nbsp; btnUrunBul.Enabled = True;</div><div>&nbsp; AnaSayfaForm.CallBarcodeReader(edtBarkodSonuc);&nbsp;</div><div>}</div><div><br></div><div>void TmrGeminiTick;</div><div>var</div><div>&nbsp; jsonBody, base64Foto, jsonResp, tempStr, geminiSonuc : String;</div><div>&nbsp; baslangic, bitis, pU, pC, pS, loopLimit : Integer;</div><div>&nbsp; strU, strC, strS : String;</div><div>&nbsp; MyStream : TclMemoryStream;</div><div>{</div><div>&nbsp; tmrGemini.Enabled = False;&nbsp;</div><div>&nbsp;&nbsp;</div><div>&nbsp; GeminiApi.BaseURL = '<a href="https://generativelanguage.googleapis.com/v1beta/models/gemini-3-flash-preview:generateC&#111;ntent?key=AIzaSyDZMmvYLPzJtFJftV8mIDohTQhsmWAzduU" target="_blank" rel="nofollow">https://generativelanguage.googleapis.com/v1beta/models/gemini-3-flash-preview:generateContent?key=AIzaSyDZMmvYLPzJtFJftV8mIDohTQhsmWAzduU</a>';</div><div>&nbsp; GeminiApi.Accept = 'application/json';</div><div>&nbsp; GeminiApi.Method = rmPost;</div><div>&nbsp; GeminiApi.AddHeader('Content-Type', 'application/json');</div><div>&nbsp;&nbsp;</div><div>&nbsp; if (IslemTipi == 'Gorsel') {</div><div>&nbsp; &nbsp; imgUrunFoto.Bitmap.Resize(400, 400);&nbsp;</div><div>&nbsp; &nbsp; MyStream = TclMemoryStream.Create;&nbsp;</div><div>&nbsp; &nbsp; imgUrunFoto.Bitmap.SaveToStream(MyStream);&nbsp;</div><div>&nbsp; &nbsp; MyStream.Position = 0;&nbsp;</div><div>&nbsp; &nbsp; base64Foto = Clomosy.StreamToBase64(MyStream);&nbsp;</div><div>&nbsp; &nbsp; MyStream.Free;&nbsp;</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; loopLimit = 0;</div><div>&nbsp; &nbsp; baslangic = Pos(Chr(13), base64Foto);&nbsp;</div><div>&nbsp; &nbsp; while ((baslangic &gt; 0) &amp;&amp; (loopLimit &lt; 5000)) { Delete(base64Foto, baslangic, 1); baslangic = Pos(Chr(13), base64Foto); loopLimit = loopLimit + 1; }</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; loopLimit = 0;</div><div>&nbsp; &nbsp; baslangic = Pos(Chr(10), base64Foto);&nbsp;</div><div>&nbsp; &nbsp; while ((baslangic &gt; 0) &amp;&amp; (loopLimit &lt; 5000)) { Delete(base64Foto, baslangic, 1); baslangic = Pos(Chr(10), base64Foto); loopLimit = loopLimit + 1; }</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; jsonBody = '{"contents":&#091;{"parts":&#091;{"text":"Bu fotoğrafı analiz et. Eğer gıda değilse ''Gıda değil'' yaz. Gıda ise KESİNLİKLE ŞU ETİKETLERİ KULLANARAK YANITLA: ###URUN### &#091;Marka ve Adı&#093; ###COLYAK### &#091;Uygun/Değil - Neden&#093; ###SPORCU### &#091;Tavsiye/Değil - Neden&#093;"},{"inline_data":{"mime_type":"image/jpeg","data":"' + base64Foto + '"}}&#093;}&#093;}';</div><div>&nbsp; } else {</div><div>&nbsp; &nbsp; jsonBody = '{"contents":&#091;{"parts":&#091;{"text":"Şu ürünü detaylı (gerekirse o ürünün bilinen genel içeriğine göre) analiz et. CEVABINI KESİNLİKLE ŞU 3 ETİKETİ KULLANARAK VER: ###URUN### &#091;Marka ve Adı&#093; ###COLYAK### &#091;Uygun/Değil - Neden&#093; ###SPORCU### &#091;Tavsiye/Değil - Neden&#093;. Başka hiçbir kelime ekleme. Ürün: ' + ArananDeger + '"}&#093;}&#093;}';</div><div>&nbsp; }</div><div>&nbsp;&nbsp;</div><div>&nbsp; GeminiApi.AddBody(jsonBody, 'application/json');</div><div>&nbsp;&nbsp;</div><div>&nbsp; try</div><div>&nbsp; &nbsp; GeminiApi.Execute;&nbsp;</div><div>&nbsp; &nbsp; jsonResp = GeminiApi.Response;</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; if (Pos('"error"', jsonResp) &gt; 0) {</div><div>&nbsp; &nbsp; &nbsp; if (Pos('RESOURCE_EXHAUSTED', jsonResp) &gt; 0) {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; ShowMessage('Yapay Zeka sunucuları anlık olarak yoğun. Lütfen 1 dakika bekleyin.');</div><div>&nbsp; &nbsp; &nbsp; &nbsp; memoUrunCevap.Text = 'Sistem Meşgul (Kısa Süreli Bekleme)';</div><div>&nbsp; &nbsp; &nbsp; } else {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; ShowMessage('API Hatası Detayı: ' + jsonResp);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; memoUrunCevap.Text = 'API Hatası!';</div><div>&nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp; lytSonucKasa.Visible = True;</div><div>&nbsp; &nbsp; } else {</div><div>&nbsp; &nbsp; &nbsp; baslangic = Pos('"text": "', jsonResp);</div><div>&nbsp; &nbsp; &nbsp; if (baslangic &gt; 0) {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; tempStr = Copy(jsonResp, baslangic + 9, Length(jsonResp));</div><div>&nbsp; &nbsp; &nbsp; &nbsp; bitis = Pos('"', tempStr) - 1;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; geminiSonuc = Trim(Copy(tempStr, 1, bitis));</div><div>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; loopLimit = 0;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; baslangic = Pos('\n', geminiSonuc);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; while ((baslangic &gt; 0) &amp;&amp; (loopLimit &lt; 1000)) {&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; geminiSonuc = Copy(geminiSonuc, 1, baslangic - 1) + #13#10 + Copy(geminiSonuc, baslangic + 2, Length(geminiSonuc));&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; baslangic = Pos('\n', geminiSonuc);&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; loopLimit = loopLimit + 1;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; loopLimit = 0;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; baslangic = Pos('"', geminiSonuc);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; while ((baslangic &gt; 0) &amp;&amp; (loopLimit &lt; 1000)) { Delete(geminiSonuc, baslangic, 1); baslangic = Pos('"', geminiSonuc); loopLimit = loopLimit + 1; }</div><div>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; loopLimit = 0;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; baslangic = Pos('*', geminiSonuc);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; while ((baslangic &gt; 0) &amp;&amp; (loopLimit &lt; 1000)) { Delete(geminiSonuc, baslangic, 1); baslangic = Pos('*', geminiSonuc); loopLimit = loopLimit + 1; }</div><div>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; loopLimit = 0;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; baslangic = Pos('\', geminiSonuc);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; while ((baslangic &gt; 0) &amp;&amp; (loopLimit &lt; 1000)) { Delete(geminiSonuc, baslangic, 1); baslangic = Pos('\', geminiSonuc); loopLimit = loopLimit + 1; }</div><div>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; pU = Pos('###URUN###', geminiSonuc);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; pC = Pos('###COLYAK###', geminiSonuc);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; pS = Pos('###SPORCU###', geminiSonuc);</div><div>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; if (pU &gt; 0) {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (pC &gt; 0) { strU = Trim(Copy(geminiSonuc, pU + 10, pC - pU - 10)); }&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else { strU = Trim(Copy(geminiSonuc, pU + 10, Length(geminiSonuc) - pU + 1)); }</div><div>&nbsp; &nbsp; &nbsp; &nbsp; } else { strU = 'Bulunamadı.'; }</div><div>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; if (pC &gt; 0) {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (pS &gt; 0) { strC = Trim(Copy(geminiSonuc, pC + 12, pS - pC - 12)); }&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else { strC = Trim(Copy(geminiSonuc, pC + 12, Length(geminiSonuc) - pC + 1)); }</div><div>&nbsp; &nbsp; &nbsp; &nbsp; } else { strC = 'Bulunamadı.'; }</div><div>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; if (pS &gt; 0) {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strS = Trim(Copy(geminiSonuc, pS + 12, Length(geminiSonuc) - pS + 1));&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; } else { strS = 'Bulunamadı.'; }</div><div>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; if ((pU &lt;= 0) &amp;&amp; (pC &lt;= 0) &amp;&amp; (pS &lt;= 0)) {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strU = geminiSonuc;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strC = 'Analiz edilemedi.';</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strS = 'Analiz edilemedi.';</div><div>&nbsp; &nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; memoUrunCevap.Text = strU;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; memoColyakCevap.Text = strC;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; memoSporcuCevap.Text = strS;</div><div>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; lytSonucKasa.Visible = True;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; } else {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; memoUrunCevap.Text = 'Okunamadı.';</div><div>&nbsp; &nbsp; &nbsp; &nbsp; ShowMessage('Yapay Zeka Anlayamadı!');</div><div>&nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; }</div><div>&nbsp; except</div><div>&nbsp; &nbsp; ShowMessage('Bağlantı Hatası: Lütfen internetinizi kontrol edin.');</div><div>&nbsp; &nbsp; memoUrunCevap.Text = 'Sistem Meşgul veya İnternet Yok.';</div><div>&nbsp; &nbsp; lytSonucKasa.Visible = True;</div><div>&nbsp; }</div><div>&nbsp;&nbsp;</div><div>&nbsp; btnUrunBul.Enabled = True;</div><div>}</div><div><br></div><div>void TmrKameraTick;</div><div>{</div><div>&nbsp; tmrKamera.Enabled = False;</div><div>&nbsp; AnaSayfaForm.StartProcessMessages(300);</div><div>&nbsp; try</div><div>&nbsp; &nbsp; Clomosy.ImageChooser(AnaSayfaForm, imgUrunFoto);</div><div>&nbsp; except</div><div>&nbsp; &nbsp; ShowMessage('Kamera açılamadı, lütfen tekrar deneyin.');</div><div>&nbsp; }</div><div>&nbsp; btnUrunBul.Enabled = True;</div><div>}</div><div><br></div><div>void btnUrunBulClick;</div><div>var</div><div>&nbsp; arananBarkod, jsonResp, tempStr, urunAdi : String;</div><div>&nbsp; baslangic, bitis, loopLimit: Integer;</div><div>{</div><div>&nbsp; btnUrunBul.Enabled = False;</div><div>&nbsp; edtBarkodSonuc.Enabled = False;</div><div>&nbsp; edtBarkodSonuc.Enabled = True;</div><div>&nbsp; AnaSayfaForm.clVKVisible = False;&nbsp;</div><div>&nbsp; AnaSayfaForm.StartProcessMessages(100);&nbsp;</div><div><br></div><div>&nbsp; if (imgUrunFoto.Visible == True) {</div><div>&nbsp; &nbsp; if (imgUrunFoto.Bitmap == nil) {&nbsp;</div><div>&nbsp; &nbsp; &nbsp; ShowMessage('Lütfen geçerli bir fotoğraf çekin!');</div><div>&nbsp; &nbsp; &nbsp; btnUrunBul.Enabled = True;</div><div>&nbsp; &nbsp; &nbsp; Exit;</div><div>&nbsp; &nbsp; }</div><div>&nbsp; &nbsp; IslemTipi = 'Gorsel';</div><div>&nbsp; &nbsp; lytSonucKasa.Visible = True;</div><div>&nbsp; &nbsp; memoUrunCevap.Text = 'Yapay Zeka Analiz Ediyor...';</div><div>&nbsp; &nbsp; memoColyakCevap.Text = 'Bekleniyor...';</div><div>&nbsp; &nbsp; memoSporcuCevap.Text = 'Bekleniyor...';</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; AnaSayfaForm.StartProcessMessages(50);</div><div>&nbsp; &nbsp; tmrGemini.Enabled = True;&nbsp;</div><div>&nbsp; }&nbsp;</div><div>&nbsp; else {</div><div>&nbsp; &nbsp; arananBarkod = Trim(edtBarkodSonuc.Text);</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; if (arananBarkod == '') {</div><div>&nbsp; &nbsp; &nbsp; ShowMessage('Lütfen önce bir barkod okutun veya yazın!');</div><div>&nbsp; &nbsp; &nbsp; btnUrunBul.Enabled = True;</div><div>&nbsp; &nbsp; &nbsp; Exit;</div><div>&nbsp; &nbsp; }</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; lytSonucKasa.Visible = True;</div><div>&nbsp; &nbsp; memoUrunCevap.Text = 'Veritabanı Aranıyor...';</div><div>&nbsp; &nbsp; memoColyakCevap.Text = 'Bekleniyor...';</div><div>&nbsp; &nbsp; memoSporcuCevap.Text = 'Bekleniyor...';</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; AnaSayfaForm.StartProcessMessages(50);</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; OpenFoodFactsApi.BaseURL = '<a href="https://world.openfoodfacts.org/api/v0/product/" target="_blank" rel="nofollow">https://world.openfoodfacts.org/api/v0/product/</a>' + arananBarkod + '.json';</div><div>&nbsp; &nbsp; OpenFoodFactsApi.Accept = 'application/json';</div><div>&nbsp; &nbsp; OpenFoodFactsApi.Method = rmGet;</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; try</div><div>&nbsp; &nbsp; &nbsp; OpenFoodFactsApi.Execute;</div><div>&nbsp; &nbsp; &nbsp; jsonResp = OpenFoodFactsApi.Response;</div><div>&nbsp; &nbsp; except</div><div>&nbsp; &nbsp; &nbsp; ShowMessage('Sunucuya bağlanılamadı! İnternet bağlantınızı kontrol edin.');</div><div>&nbsp; &nbsp; &nbsp; memoUrunCevap.Text = 'Bağlantı Hatası.';</div><div>&nbsp; &nbsp; &nbsp; btnUrunBul.Enabled = True;</div><div>&nbsp; &nbsp; &nbsp; Exit;</div><div>&nbsp; &nbsp; }</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; if (Pos('"status":1', jsonResp) &gt; 0) {&nbsp;</div><div>&nbsp; &nbsp; &nbsp; baslangic = Pos('"product_name_tr":"', jsonResp);</div><div>&nbsp; &nbsp; &nbsp; if (baslangic &gt; 0) {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; tempStr = Copy(jsonResp, baslangic + 19, Length(jsonResp));</div><div>&nbsp; &nbsp; &nbsp; } else {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; baslangic = Pos('"product_name":"', jsonResp);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; if (baslangic &gt; 0) {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tempStr = Copy(jsonResp, baslangic + 16, Length(jsonResp));</div><div>&nbsp; &nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; if (baslangic &gt; 0) {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; bitis = Pos('"', tempStr) - 1;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; if (bitis &gt; 0) { urunAdi = Copy(tempStr, 1, bitis); }</div><div>&nbsp; &nbsp; &nbsp; &nbsp; else { urunAdi = 'Bulunamadı'; }</div><div>&nbsp; &nbsp; &nbsp; } else { urunAdi = 'Bulunamadı'; }</div><div>&nbsp; &nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; baslangic = Pos('"brands":"', jsonResp);</div><div>&nbsp; &nbsp; &nbsp; if ((baslangic &gt; 0) &amp;&amp; (urunAdi &lt;&gt; 'Bulunamadı')) {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; tempStr = Copy(jsonResp, baslangic + 10, Length(jsonResp));</div><div>&nbsp; &nbsp; &nbsp; &nbsp; bitis = Pos('"', tempStr) - 1;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; if (bitis &gt; 0) { urunAdi = Copy(tempStr, 1, bitis) + ' ' + urunAdi; }</div><div>&nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; } else { urunAdi = 'Bulunamadı'; }</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; if ((urunAdi == 'Bulunamadı') || (urunAdi == '')) {</div><div>&nbsp; &nbsp; &nbsp; lytSonucKasa.Visible = False;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; imgUrunFoto.Visible = True;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; ShowMessage('Ürün bulunamadı! Kamerayı açmak için Tamam''a basın.');</div><div>&nbsp; &nbsp; &nbsp; tmrKamera.Enabled = True;&nbsp;</div><div>&nbsp; &nbsp; } else {</div><div>&nbsp; &nbsp; &nbsp; loopLimit = 0;</div><div>&nbsp; &nbsp; &nbsp; baslangic = Pos('"', urunAdi);</div><div>&nbsp; &nbsp; &nbsp; while ((baslangic &gt; 0) &amp;&amp; (loopLimit &lt; 500)) { Delete(urunAdi, baslangic, 1); baslangic = Pos('"', urunAdi); loopLimit = loopLimit + 1; }</div><div>&nbsp; &nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; loopLimit = 0;</div><div>&nbsp; &nbsp; &nbsp; baslangic = Pos('\', urunAdi);</div><div>&nbsp; &nbsp; &nbsp; while ((baslangic &gt; 0) &amp;&amp; (loopLimit &lt; 500)) { Delete(urunAdi, baslangic, 1); baslangic = Pos('\', urunAdi); loopLimit = loopLimit + 1; }</div><div>&nbsp; &nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; loopLimit = 0;</div><div>&nbsp; &nbsp; &nbsp; baslangic = Pos(Chr(13), urunAdi);</div><div>&nbsp; &nbsp; &nbsp; while ((baslangic &gt; 0) &amp;&amp; (loopLimit &lt; 500)) { Delete(urunAdi, baslangic, 1); baslangic = Pos(Chr(13), urunAdi); loopLimit = loopLimit + 1; }</div><div>&nbsp; &nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; loopLimit = 0;</div><div>&nbsp; &nbsp; &nbsp; baslangic = Pos(Chr(10), urunAdi);</div><div>&nbsp; &nbsp; &nbsp; while ((baslangic &gt; 0) &amp;&amp; (loopLimit &lt; 500)) { Delete(urunAdi, baslangic, 1); baslangic = Pos(Chr(10), urunAdi); loopLimit = loopLimit + 1; }</div><div><br></div><div>&nbsp; &nbsp; &nbsp; IslemTipi = 'Metin';</div><div>&nbsp; &nbsp; &nbsp; ArananDeger = urunAdi;</div><div>&nbsp; &nbsp; &nbsp; memoUrunCevap.Text = 'Bulundu! AI Analiz Ediyor...';</div><div>&nbsp; &nbsp; &nbsp; AnaSayfaForm.StartProcessMessages(50);</div><div>&nbsp; &nbsp; &nbsp; tmrGemini.Enabled = True;&nbsp;</div><div>&nbsp; &nbsp; }</div><div>&nbsp; }</div><div>}</div><div><br></div><div>{</div><div>&nbsp; AnaSayfaForm = TclForm.Create(Self);</div><div>&nbsp; AnaSayfaForm.SetFormColor('#f1f2f6', '#f1f2f6', clGVertical);</div><div><br></div><div>&nbsp; OpenFoodFactsApi = TCLRest.Create;</div><div>&nbsp; GeminiApi = TCLRest.Create;</div><div>&nbsp; prefFile = clPathCombine('userpref.txt', Clomosy.AppFilesPath);</div><div>&nbsp; prefList = Clomosy.StringListNew;</div><div><br></div><div>&nbsp; btnAnaStil = '{"Align":"Top","MarginTop":15,"MarginLeft":25,"MarginRight":25,"Height":55,"RoundHeight":15,"RoundWidth":15,"BackgroundColor":"#00b894","TextColor":"#ffffff","TextSize":16,"TextBold":"yes"}';</div><div>&nbsp; btnAltStil = '{"Align":"Bottom","MarginBottom":20,"MarginLeft":25,"MarginRight":25,"Height":55,"RoundHeight":15,"RoundWidth":15,"BackgroundColor":"#ffffff","BorderColor":"#d63031","BorderWidth":2,"TextColor":"#d63031","TextSize":16,"TextBold":"yes"}';</div><div><br></div><div>&nbsp; tmrGemini = AnaSayfaForm.AddNewTimer(AnaSayfaForm, 'tmrGemini', 200);</div><div>&nbsp; tmrGemini.Enabled = False;</div><div>&nbsp; AnaSayfaForm.AddNewEvent(tmrGemini, tbeOnTimer, 'TmrGeminiTick');</div><div>&nbsp;&nbsp;</div><div>&nbsp; tmrKamera = AnaSayfaForm.AddNewTimer(AnaSayfaForm, 'tmrKamera', 1500);&nbsp;</div><div>&nbsp; tmrKamera.Enabled = False;</div><div>&nbsp; AnaSayfaForm.AddNewEvent(tmrKamera, tbeOnTimer, 'TmrKameraTick');</div><div><br></div><div>&nbsp; scrollAna = AnaSayfaForm.AddNewVertScrollBox(AnaSayfaForm, 'scrollAna');</div><div>&nbsp; scrollAna.Align = alClient;</div><div><br></div><div>&nbsp; lytAltKasa = AnaSayfaForm.AddNewLayout(AnaSayfaForm, 'lytAltKasa');</div><div>&nbsp; lytAltKasa.Align = alBottom;</div><div>&nbsp; lytAltKasa.Height = 90;</div><div>&nbsp;&nbsp;</div><div>&nbsp; btnCikis = AnaSayfaForm.AddNewProButton(lytAltKasa, 'btnCikis', 'GÜVENLİ ÇIKIŞ YAP');</div><div>&nbsp; clComponent.SetupComponent(btnCikis, btnAltStil);</div><div>&nbsp; AnaSayfaForm.AddNewEvent(btnCikis, tbeOnClick, 'BtnCikisYapClick');</div><div><br></div><div>&nbsp; lytUstKasa = AnaSayfaForm.AddNewLayout(scrollAna, 'lytUstKasa');</div><div>&nbsp; lytUstKasa.Align = alTop;</div><div>&nbsp; lytUstKasa.Height = 520;&nbsp;</div><div><br></div><div>&nbsp; lblHosGeldin = AnaSayfaForm.AddNewProLabel(lytUstKasa, 'lblHosGeldin', 'Hoş Geldin,' + #13#10 + Clomosy.GlobalVariableString);</div><div>&nbsp; clComponent.SetupComponent(lblHosGeldin, '{"Align":"Top","MarginTop":30,"MarginBottom":15,"Height":60,"TextColor":"#2d3436","TextSize":22,"TextBold":"yes","TextHorizontalAlign":"center"}');</div><div><br></div><div>&nbsp; edtBarkodSonuc = AnaSayfaForm.AddNewProEdit(lytUstKasa, 'edtBarkodSonuc','Barkod Numarası Girin');</div><div>&nbsp; clComponent.SetupComponent(edtBarkodSonuc, '{"Align":"Top","MarginTop":10,"MarginLeft":25,"MarginRight":25,"Height":55,"RoundHeight":12,"RoundWidth":12,"BorderColor":"#b2bec3","BorderWidth":1.5,"BackgroundColor":"#ffffff","TextColor":"#2d3436","TextSize":15,"TextBold":"yes"}');</div><div>&nbsp;&nbsp;</div><div>&nbsp; btnBarkodOkut = AnaSayfaForm.AddNewProButton(lytUstKasa, 'btnBarkodOkut', 'BARKOD OKUT VEYA YAZ');</div><div>&nbsp; clComponent.SetupComponent(btnBarkodOkut, btnAnaStil);</div><div>&nbsp; AnaSayfaForm.AddNewEvent(btnBarkodOkut, tbeOnClick, 'btnBarkodOkutClick');</div><div><br></div><div>&nbsp; imgUrunFoto = AnaSayfaForm.AddNewImage(lytUstKasa, 'imgUrunFoto');</div><div>&nbsp; imgUrunFoto.Align = alTop;</div><div>&nbsp; imgUrunFoto.Height = 150;</div><div>&nbsp; imgUrunFoto.Margins.Top = 15;</div><div>&nbsp; imgUrunFoto.Margins.Left = 25;</div><div>&nbsp; imgUrunFoto.Margins.Right = 25;</div><div>&nbsp; imgUrunFoto.Visible = False;</div><div><br></div><div>&nbsp; btnUrunBul = AnaSayfaForm.AddNewProButton(lytUstKasa, 'btnUrunBul', 'ÜRÜNÜ ANALİZ ET');</div><div>&nbsp; clComponent.SetupComponent(btnUrunBul, btnAnaStil);</div><div>&nbsp; AnaSayfaForm.AddNewEvent(btnUrunBul, tbeOnClick, 'btnUrunBulClick');</div><div><br></div><div>&nbsp; lytSonucKasa = AnaSayfaForm.AddNewLayout(scrollAna, 'lytSonucKasa');</div><div>&nbsp; lytSonucKasa.Align = alTop;</div><div>&nbsp; lytSonucKasa.Height = 850;&nbsp;</div><div>&nbsp; lytSonucKasa.Visible = False;</div><div><br></div><div>&nbsp; // 1. SPORCU KARTI</div><div><br></div><div>&nbsp; lytKasaSporcu = AnaSayfaForm.AddNewLayout(lytSonucKasa, 'lytKasaSporcu');</div><div>&nbsp; lytKasaSporcu.Align = alTop;</div><div>&nbsp; lytKasaSporcu.Height = 250;&nbsp;</div><div>&nbsp; lytKasaSporcu.Margins.Top = 15;</div><div>&nbsp; lytKasaSporcu.Margins.Left = 20;</div><div>&nbsp; lytKasaSporcu.Margins.Right = 20;</div><div>&nbsp;&nbsp;</div><div>&nbsp; lblKasaSporcuBg = AnaSayfaForm.AddNewProLabel(lytKasaSporcu, 'lblKasaSporcuBg', '');</div><div>&nbsp; clComponent.SetupComponent(lblKasaSporcuBg, '{"Align":"Client","BackgroundColor":"#ffffff","BorderColor":"#ff7675","BorderWidth":2,"RoundHeight":15,"RoundWidth":15}');</div><div>&nbsp;&nbsp;</div><div>&nbsp; lytIcerikSporcu = AnaSayfaForm.AddNewLayout(lblKasaSporcuBg, 'lytIcerikSporcu');</div><div>&nbsp; lytIcerikSporcu.Align = alClient;</div><div>&nbsp;&nbsp;</div><div>&nbsp; lblSporcuBaslik = AnaSayfaForm.AddNewProLabel(lytIcerikSporcu, 'lblSporcuBaslik', 'Sporcu Analizi');</div><div>&nbsp; clComponent.SetupComponent(lblSporcuBaslik, '{"Align":"Top","MarginTop":10,"MarginLeft":15,"Height":25,"TextColor":"#d63031","TextSize":16,"TextBold":"yes"}');</div><div>&nbsp;&nbsp;</div><div>&nbsp; memoSporcuCevap = AnaSayfaForm.AddNewMemo(lytIcerikSporcu, 'memoSporcuCevap', '');</div><div>&nbsp; memoSporcuCevap.Align = alClient;</div><div>&nbsp; memoSporcuCevap.Margins.Top = 5;</div><div>&nbsp; memoSporcuCevap.Margins.Left = 10;</div><div>&nbsp; memoSporcuCevap.Margins.Right = 10;</div><div>&nbsp; memoSporcuCevap.Margins.Bottom = 10;</div><div>&nbsp; memoSporcuCevap.TextSettings.Font.Size = 14;</div><div>&nbsp; memoSporcuCevap.ReadOnly = True;</div><div>&nbsp; memoSporcuCevap.WordWrap = True;</div><div><br></div><div>&nbsp; // 2. ÇÖLYAK KARTI&nbsp;</div><div>&nbsp;&nbsp;</div><div>&nbsp; lytKasaColyak = AnaSayfaForm.AddNewLayout(lytSonucKasa, 'lytKasaColyak');</div><div>&nbsp; lytKasaColyak.Align = alTop;</div><div>&nbsp; lytKasaColyak.Height = 250;</div><div>&nbsp; lytKasaColyak.Margins.Top = 15;</div><div>&nbsp; lytKasaColyak.Margins.Left = 20;</div><div>&nbsp; lytKasaColyak.Margins.Right = 20;</div><div>&nbsp;&nbsp;</div><div>&nbsp; lblKasaColyakBg = AnaSayfaForm.AddNewProLabel(lytKasaColyak, 'lblKasaColyakBg', '');</div><div>&nbsp; clComponent.SetupComponent(lblKasaColyakBg, '{"Align":"Client","BackgroundColor":"#ffffff","BorderColor":"#74b9ff","BorderWidth":2,"RoundHeight":15,"RoundWidth":15}');</div><div>&nbsp;&nbsp;</div><div>&nbsp; lytIcerikColyak = AnaSayfaForm.AddNewLayout(lblKasaColyakBg, 'lytIcerikColyak');</div><div>&nbsp; lytIcerikColyak.Align = alClient;</div><div><br></div><div>&nbsp; lblColyakBaslik = AnaSayfaForm.AddNewProLabel(lytIcerikColyak, 'lblColyakBaslik', 'Çölyak Analizi');</div><div>&nbsp; clComponent.SetupComponent(lblColyakBaslik, '{"Align":"Top","MarginTop":10,"MarginLeft":15,"Height":25,"TextColor":"#0984e3","TextSize":16,"TextBold":"yes"}');</div><div>&nbsp;&nbsp;</div><div>&nbsp; memoColyakCevap = AnaSayfaForm.AddNewMemo(lytIcerikColyak, 'memoColyakCevap', '');</div><div>&nbsp; memoColyakCevap.Align = alClient;</div><div>&nbsp; memoColyakCevap.Margins.Top = 5;</div><div>&nbsp; memoColyakCevap.Margins.Left = 10;</div><div>&nbsp; memoColyakCevap.Margins.Right = 10;</div><div>&nbsp; memoColyakCevap.Margins.Bottom = 10;</div><div>&nbsp; memoColyakCevap.TextSettings.Font.Size = 14;</div><div>&nbsp; memoColyakCevap.ReadOnly = True;</div><div>&nbsp; memoColyakCevap.WordWrap = True;</div><div><br></div><div>&nbsp; // 3. ÜRÜN KARTI&nbsp;</div><div>&nbsp;&nbsp;</div><div>&nbsp; lytKasaUrun = AnaSayfaForm.AddNewLayout(lytSonucKasa, 'lytKasaUrun');</div><div>&nbsp; lytKasaUrun.Align = alTop;</div><div>&nbsp; lytKasaUrun.Height = 150;</div><div>&nbsp; lytKasaUrun.Margins.Top = 15;</div><div>&nbsp; lytKasaUrun.Margins.Left = 20;</div><div>&nbsp; lytKasaUrun.Margins.Right = 20;</div><div>&nbsp;&nbsp;</div><div>&nbsp; lblKasaUrunBg = AnaSayfaForm.AddNewProLabel(lytKasaUrun, 'lblKasaUrunBg', '');</div><div>&nbsp; clComponent.SetupComponent(lblKasaUrunBg, '{"Align":"Client","BackgroundColor":"#ffffff","BorderColor":"#fdcb6e","BorderWidth":2,"RoundHeight":15,"RoundWidth":15}');</div><div>&nbsp;&nbsp;</div><div>&nbsp; lytIcerikUrun = AnaSayfaForm.AddNewLayout(lblKasaUrunBg, 'lytIcerikUrun');</div><div>&nbsp; lytIcerikUrun.Align = alClient;</div><div><br></div><div>&nbsp; lblUrunBaslik = AnaSayfaForm.AddNewProLabel(lytIcerikUrun, 'lblUrunBaslik', 'Ürün Bilgisi');</div><div>&nbsp; clComponent.SetupComponent(lblUrunBaslik, '{"Align":"Top","MarginTop":10,"MarginLeft":15,"Height":25,"TextColor":"#e17055","TextSize":16,"TextBold":"yes"}');</div><div>&nbsp;&nbsp;</div><div>&nbsp; memoUrunCevap = AnaSayfaForm.AddNewMemo(lytIcerikUrun, 'memoUrunCevap', '');</div><div>&nbsp; memoUrunCevap.Align = alClient;</div><div>&nbsp; memoUrunCevap.Margins.Top = 5;</div><div>&nbsp; memoUrunCevap.Margins.Left = 10;</div><div>&nbsp; memoUrunCevap.Margins.Right = 10;</div><div>&nbsp; memoUrunCevap.Margins.Bottom = 10;</div><div>&nbsp; memoUrunCevap.TextSettings.Font.Size = 14;</div><div>&nbsp; memoUrunCevap.ReadOnly = True;</div><div>&nbsp; memoUrunCevap.WordWrap = True;</div><div><br></div><div>&nbsp; AnaSayfaForm.Run;</div><div>}</div><a href="https://static.cloudflareinsights.com/beac&#111;n.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" target="_blank" rel="nofollow">https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516"</a> integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon="{&quot;version&quot;:&quot;2024.11.0&quot;,&quot;token&quot;:&quot;439455f3e46c40b98dbd42a2f1a954d8&quot;,&quot;r&quot;:1,&quot;server_timing&quot;:{&quot;name&quot;:{&quot;cfCacheStatus&quot;:true,&quot;cfEdge&quot;:true,&quot;cfExtPri&quot;:true,&quot;cfL4&quot;:true,&quot;cfOrigin&quot;:true,&quot;cfSpeedBrain&quot;:true},&quot;location_startswith&quot;:null}}" crossorigin="anonymous">]]>
   </description>
   <pubDate>Sun, 10 May 2026 13:42:51 +0000</pubDate>
   <guid isPermaLink="true">https://forum.clomosy.com.tr/forum_posts.asp?TID=1499&amp;PID=3442#3442</guid>
  </item> 
 </channel>
</rss>