Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - iOS ImageChooser Sorunu
  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.

iOS ImageChooser Sorunu

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


Kayıt Tarihi: 10 Mayıs 2026
Durum: Aktif Değil
Puanlar: 4
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı clBerat Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: iOS ImageChooser Sorunu
    Gönderim Zamanı: 2 Saat 57 Dakika Önce Saat 21:26
İlk Yaptığında Kamera Sorunsuz Açılıyor Ancak Uygulamadan Çıkmadan Tekrar Fotoğraf Çekmek İstediği Zaman Donuyor. (Eğer Orda Donmasa Ürünü Analiz Et Butonuna Basınca Donuyor, Her Türlü Donuyor. Android'de Sorun Olmadan Çalışıyor.)


var
  AnaSayfaForm : TCLForm;
  lblHosGeldin : TClProLabel;
  edtBarkodSonuc : TclProEdit;
  btnBarkodOkut, btnUrunBul : TClProButton;
  
  lblUrunFotoCerceve : TClProLabel;
  imgUrunFoto : TClImage; 
  
  lytBottomContainer, lytBottomBarBg, lytIconsLayer : TClLayout;
  lytNavLeft, lytNavMiddle, lytNavRight : TClLayout;
  lblBarBg, lblNavMiddleBg, lblNavLeftBg : TClProLabel;
  imgNavLeft, imgNavMiddle, imgNavRight : TClImage;
  
  lytLogoutOverlay, lytLogoutKasa, lytLogoutBtnKasa : TClLayout; 
  lblLogoutArkaplan, lblLogoutKasaBg, lblLogoutSoru : TClProLabel;
  btnLogoutEvet, btnLogoutIptal : TClProButton;

  lytHesapSilOverlay, lytHesapSilKasa, lytHesapSilBtnKasa : TClLayout; 
  lblHesapSilArkaplan, lblHesapSilKasaBg, lblHesapSilSoru : TClProLabel;
  btnHesapSilEvet, btnHesapSilIptal : TClProButton;

  tmrGemini, tmrKamera : TclTimer;
  OpenFoodFactsApi, GeminiApi, ProfilApi : TCLRest;
  btnAnaStil, btnAltStil, btnKirmiziStil, prefFile, edtStil, edtSoftStil : String;
  prefList : TclStringList;
  
  scrollAna : TclVertScrollBox; 
  lytScrollBosluk : TClLayout;  
  
  lytUstKasa, lytSonucKasa : TClLayout;
  lytKasaUrun, lytKasaColyak, lytKasaSporcu : TClLayout;
  lytIcerikUrun, lytIcerikColyak, lytIcerikSporcu : TClLayout;
  lblKasaUrunBg, lblKasaColyakBg, lblKasaSporcuBg : TClProLabel;
  lblUrunBaslik, lblColyakBaslik, lblSporcuBaslik : TClProLabel;
  memoUrunCevap, memoColyakCevap, memoSporcuCevap : TclMemo;
  
  lytProfilKasa : TClLayout;    
  scrollProfil : TclVertScrollBox;
  lytP_Tercihler, lytP_CheckList, lytP_Sifre, lytP_HesapSil, lytP_Bosluk : TClLayout; 
  lblP_AdSoyad, lblP_Email, lblP_TercihBaslik, lblP_SifreBaslik, lblP_TercihKasaBg, lblP_SifreKasaBg, lblP_SifreKurallari : TClProLabel;
  chkP_Colyak, chkP_Sporcu, chkP_Vegan, chkP_Vejetaryen, chkP_Saglikli, chkP_Diyabet, chkP_Laktoz : TclCheckBox;
  edtP_EskiSifre, edtP_Sifre, edtP_SifreTekrar : TclProEdit; 
  imgP_EskiSifre, imgP_Sifre, imgP_SifreTekrar : TClProImage; 
  btnP_TercihKaydet, btnP_SifreKaydet, btnP_HesapSil : TClProButton;
  
  IslemTipi, ArananDeger, KullaniciTercihleri, KullaniciEmail, apiUrl, apiKey : String; 


void OrtadakiButonTikladi;
var
  i : Integer;
{
  if (lblNavMiddleBg.Visible == True) { Exit; } 
  
  lytProfilKasa.Visible = False;
  scrollAna.Visible = True;
  
  lblNavLeftBg.Visible = False;
  lblNavMiddleBg.Visible = True;

  i = 1;
  while (i <= 6)
  {
    lytNavLeft.Margins.Top = lytNavLeft.Margins.Top + 5;
    lytNavLeft.Margins.Bottom = lytNavLeft.Margins.Bottom - 5;
    if (lytNavLeft.Margins.Top > 30) { lytNavLeft.Margins.Top = 30; }
    if (lytNavLeft.Margins.Bottom < 20) { lytNavLeft.Margins.Bottom = 20; }

    lytNavMiddle.Margins.Top = lytNavMiddle.Margins.Top - 5;
    lytNavMiddle.Margins.Bottom = lytNavMiddle.Margins.Bottom + 5;
    if (lytNavMiddle.Margins.Top < 0) { lytNavMiddle.Margins.Top = 0; }
    if (lytNavMiddle.Margins.Bottom > 30) { lytNavMiddle.Margins.Bottom = 30; }

    AnaSayfaForm.StartProcessMessages(15); 
    i = i + 1;
  }
}

void SoldakiButonTikladi;
var
  i : Integer;
{
  if (lblNavLeftBg.Visible == True) { Exit; }
  
  scrollAna.Visible = False;
  lytProfilKasa.Visible = True;
  
  lblNavMiddleBg.Visible = False;
  lblNavLeftBg.Visible = True;

  i = 1;
  while (i <= 6)
  {
    lytNavMiddle.Margins.Top = lytNavMiddle.Margins.Top + 5;
    lytNavMiddle.Margins.Bottom = lytNavMiddle.Margins.Bottom - 5;
    if (lytNavMiddle.Margins.Top > 30) { lytNavMiddle.Margins.Top = 30; }
    if (lytNavMiddle.Margins.Bottom < 20) { lytNavMiddle.Margins.Bottom = 20; }

    lytNavLeft.Margins.Top = lytNavLeft.Margins.Top - 5;
    lytNavLeft.Margins.Bottom = lytNavLeft.Margins.Bottom + 5;
    if (lytNavLeft.Margins.Top < 0) { lytNavLeft.Margins.Top = 0; }
    if (lytNavLeft.Margins.Bottom > 30) { lytNavLeft.Margins.Bottom = 30; }

    AnaSayfaForm.StartProcessMessages(15); 
    i = i + 1;
  }
}

void ChkP_VeganClick;
{
  if (chkP_Vegan.isChecked == False) { 
    chkP_Vejetaryen.isChecked = False; 
    chkP_Vejetaryen.Enabled = False;   
  } else {
    chkP_Vejetaryen.Enabled = True;    
  }
}

void P_SifreGizleGosterEski;
{
  if (edtP_EskiSifre.Password == True) {
    edtP_EskiSifre.Password = False;
    AnaSayfaForm.SetImage(imgP_EskiSifre, 'https://i.ibb.co/2311b9kv/acikgoz.png');
  } else {
    edtP_EskiSifre.Password = True;
    AnaSayfaForm.SetImage(imgP_EskiSifre, 'https://i.ibb.co/Z1V7rfXV/kapal-g-z.png');
  }
}

void P_SifreGizleGosterYeni;
{
  if (edtP_Sifre.Password == True) {
    edtP_Sifre.Password = False;
    AnaSayfaForm.SetImage(imgP_Sifre, 'https://i.ibb.co/2311b9kv/acikgoz.png');
  } else {
    edtP_Sifre.Password = True;
    AnaSayfaForm.SetImage(imgP_Sifre, 'https://i.ibb.co/Z1V7rfXV/kapal-g-z.png');
  }
}

void P_SifreGizleGosterTekrar;
{
  if (edtP_SifreTekrar.Password == True) {
    edtP_SifreTekrar.Password = False;
    AnaSayfaForm.SetImage(imgP_SifreTekrar, 'https://i.ibb.co/2311b9kv/acikgoz.png');
  } else {
    edtP_SifreTekrar.Password = True;
    AnaSayfaForm.SetImage(imgP_SifreTekrar, 'https://i.ibb.co/Z1V7rfXV/kapal-g-z.png');
  }
}

void BtnP_TercihKaydetClick;
var
  secilenTercih, jsonBody : String;
{
  if (KullaniciEmail == '') { ShowMessage('Oturum zaman aşımına uğradı. Lütfen giriş yapın.'); Clomosy.RunUnit('uLogin'); Exit; }

  secilenTercih = '';
  if (chkP_Colyak.isChecked == True) { secilenTercih = 'Çölyak'; }
  if (chkP_Sporcu.isChecked == True) { if (secilenTercih == '') { secilenTercih = 'Sporcu'; } else { secilenTercih = secilenTercih + ', Sporcu'; } }
  if (chkP_Vegan.isChecked == True) { if (secilenTercih == '') { secilenTercih = 'Vegan'; } else { secilenTercih = secilenTercih + ', Vegan'; } }
  if ((chkP_Vejetaryen.isChecked == True) && (chkP_Vegan.isChecked == False)) { if (secilenTercih == '') { secilenTercih = 'Vejetaryen'; } else { secilenTercih = secilenTercih + ', Vejetaryen'; } }
  if (chkP_Saglikli.isChecked == True) { if (secilenTercih == '') { secilenTercih = 'Sağlıklı Beslenme'; } else { secilenTercih = secilenTercih + ', Sağlıklı Beslenme'; } }
  if (chkP_Diyabet.isChecked == True) { if (secilenTercih == '') { secilenTercih = 'Diyabet'; } else { secilenTercih = secilenTercih + ', Diyabet'; } }
  if (chkP_Laktoz.isChecked == True) { if (secilenTercih == '') { secilenTercih = 'Laktoz İntoleransı'; } else { secilenTercih = secilenTercih + ', Laktoz İntoleransı'; } }
  if (secilenTercih == '') { secilenTercih = 'Yok'; }

  jsonBody = '{"tercihler": "' + secilenTercih + '"}';
  
  ProfilApi.BaseURL = apiUrl + '/rest/v1/kullanicilar?email=eq.' + KullaniciEmail;
  ProfilApi.Method = rmPatch; 
  ProfilApi.AddHeader('apikey', apiKey);
  ProfilApi.AddHeader('Authorization', 'Bearer ' + apiKey);
  ProfilApi.AddHeader('Content-Type', 'application/json');
  ProfilApi.AddBody(jsonBody, 'application/json');
  
  try
    ProfilApi.Execute;
    prefList.Clear;
    prefList.Add(KullaniciEmail);
    prefList.Add(Clomosy.GlobalVariableString);
    prefList.Add(secilenTercih);
    prefList.SaveToFile(prefFile, 0);
    KullaniciTercihleri = secilenTercih;
    ShowMessage('Tercihleriniz başarıyla güncellendi!');
  except
    ShowMessage('Tercihler güncellenirken bir hata oluştu.');
  }
}

void BtnP_SifreKaydetClick;
var
  eskiSifre, sifre, karakter, lowerChars, upperChars, digitChars, jsonBody: String;
  i, len, hasLower, hasUpper, hasDigit, hasSpecial: Integer;
{
  if (KullaniciEmail == '') { ShowMessage('Oturum zaman aşımına uğradı. Lütfen giriş yapın.'); Clomosy.RunUnit('uLogin'); Exit; }

  eskiSifre = edtP_EskiSifre.Text;
  sifre = edtP_Sifre.Text;
  
  if ((eskiSifre == '') || (sifre == '') || (edtP_SifreTekrar.Text == '')) { ShowMessage('Lütfen tüm şifre alanlarını doldurun.'); Exit; }
  if (sifre <> edtP_SifreTekrar.Text) { ShowMessage('Yeni şifreler eşleşmiyor!'); Exit; }
  
  if (eskiSifre == sifre) { ShowMessage('Yeni şifreniz mevcut şifrenizle aynı olamaz!'); Exit; }
  
  ProfilApi.BaseURL = apiUrl + '/rest/v1/kullanicilar?email=eq.' + KullaniciEmail + '&sifre=eq.' + eskiSifre;
  ProfilApi.Method = rmGet; 
  ProfilApi.AddHeader('apikey', apiKey);
  ProfilApi.AddHeader('Authorization', 'Bearer ' + apiKey);
  ProfilApi.Execute;
  
  if ((ProfilApi.Response == '[]') || (ProfilApi.Response == '')) {
    ShowMessage('Mevcut (eski) şifrenizi yanlış girdiniz!');
    Exit;
  }
  
  len = Length(sifre);
  if ((len < 8) || (len > 50)) { ShowMessage('Şifre 8-50 karakter olmalıdır!'); Exit; }
  
  hasLower = 0; hasUpper = 0; hasDigit = 0; hasSpecial = 0;
  lowerChars = 'abcdefghijklmnopqrstuvwxyzçğıöşü'; 
  upperChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZÇĞIÖŞÜ'; 
  digitChars = '0123456789'; 
  
  i = 1;
  while (i <= len) {
    karakter = Copy(sifre, i, 1);
    if (Pos(karakter, lowerChars) > 0) { hasLower = 1; } else if (Pos(karakter, upperChars) > 0) { hasUpper = 1; } else if (Pos(karakter, digitChars) > 0) { hasDigit = 1; } else { hasSpecial = 1; }
    i = i + 1;
  }

  if (hasUpper == 0) { ShowMessage('Şifre en az 1 büyük harf içermeli!'); Exit; }
  if (hasLower == 0) { ShowMessage('Şifre en az 1 küçük harf içermeli!'); Exit; }
  if (hasDigit == 0) { ShowMessage('Şifre en az 1 rakam içermeli!'); Exit; }
  if (hasSpecial == 0) { ShowMessage('Şifre en az 1 özel karakter içermeli!'); Exit; }

  jsonBody = '{"sifre": "' + sifre + '"}';
  ProfilApi.BaseURL = apiUrl + '/rest/v1/kullanicilar?email=eq.' + KullaniciEmail;
  ProfilApi.Method = rmPatch; 
  ProfilApi.AddHeader('Content-Type', 'application/json');
  ProfilApi.AddBody(jsonBody, 'application/json');
  
  try
    ProfilApi.Execute;
    ShowMessage('Şifreniz başarıyla değiştirildi! Güvenliğiniz için lütfen yeni şifrenizle tekrar giriş yapın.');
    
    prefList.Clear;
    prefList.SaveToFile(prefFile, 0); 
    Clomosy.GlobalVariableString = ''; 
    KullaniciEmail = ''; 
    Clomosy.RunUnit('uLogin');
  except
    ShowMessage('Şifre güncellenirken bir hata oluştu.');
  }
}

void BtnP_HesapSilSoru;
{
  if (KullaniciEmail == '') { ShowMessage('Oturum zaman aşımına uğradı. Lütfen giriş yapın.'); Clomosy.RunUnit('uLogin'); Exit; }
  lytHesapSilOverlay.Visible = True;
  lytHesapSilOverlay.BringToFront; 
}

void BtnP_HesapSilIptal;
{
  lytHesapSilOverlay.Visible = False;
}

void BtnP_HesapSilEvet;
{
  ProfilApi.BaseURL = apiUrl + '/rest/v1/kullanicilar?email=eq.' + KullaniciEmail;
  ProfilApi.Method = rmDelete; 
  ProfilApi.AddHeader('apikey', apiKey);
  ProfilApi.AddHeader('Authorization', 'Bearer ' + apiKey);
  
  try
    ProfilApi.Execute;
    prefList.Clear;
    prefList.SaveToFile(prefFile, 0); 
    Clomosy.GlobalVariableString = ''; 
    KullaniciEmail = '';
    ShowMessage('Hesabınız başarıyla silindi. Hoşça kalın!');
    Clomosy.RunUnit('uKarsilama');
  except
    ShowMessage('Hesap silinirken bir hata oluştu.');
    lytHesapSilOverlay.Visible = False;
  }
}

void BtnCikisSoru;
{
  lytLogoutOverlay.Visible = True;
  lytLogoutOverlay.BringToFront; 
}

void BtnCikisIptal;
{
  lytLogoutOverlay.Visible = False;
}

void BtnCikisEvet;
{
  prefList.Clear;
  prefList.SaveToFile(prefFile, 0); 
  Clomosy.GlobalVariableString = ''; 
  KullaniciEmail = '';
  Clomosy.RunUnit('uKarsilama');
}

void btnBarkodOkutClick;
{
  lblUrunFotoCerceve.Visible = False; 
  lytSonucKasa.Visible = False; 
  lytUstKasa.Height = 310; 
  btnUrunBul.Enabled = True;
  AnaSayfaForm.CallBarcodeReader(edtBarkodSonuc); 
}

void OnGeminiCompleted;
var
  jsonResp, tempStr, geminiSonuc : String;
  baslangic, bitis, pU, pC, pS, loopLimit : Integer;
  strU, strC, strS : String;
{
  try
    jsonResp = GeminiApi.Response;
    
    if (jsonResp == '') {
      ShowMessage('Bağlantı zaman aşımına uğradı veya internet koptu. Lütfen tekrar deneyin.');
      memoUrunCevap.Text = 'Yanıt Alınamadı.';
      memoColyakCevap.Text = 'Bağlantı Hatası.';
      memoSporcuCevap.Text = 'Bağlantı Hatası.';
      lytSonucKasa.Visible = True;
      btnUrunBul.Enabled = True;
      Exit;
    }

    if (Pos('"error"', jsonResp) > 0) {
      if (Pos('RESOURCE_EXHAUSTED', jsonResp) > 0) { 
        ShowMessage('Google API Kotası Doldu! Ücretsiz sürümde çok hızlı istek attığınız için geçici olarak engellendiniz. Lütfen 1 dakika bekleyin.'); 
        memoUrunCevap.Text = 'Lütfen 1 Dakika Bekleyiniz (API Sınırı)'; 
        memoColyakCevap.Text = 'API Kotası Doldu...'; 
        memoSporcuCevap.Text = 'API Kotası Doldu...'; 
      } 
      else { 
        ShowMessage('API Hatası Detayı: ' + jsonResp); 
        memoUrunCevap.Text = 'API Hatası!'; 
        memoColyakCevap.Text = 'Hata.'; 
        memoSporcuCevap.Text = 'Hata.'; 
      }
      lytSonucKasa.Visible = True;
    } else {
      loopLimit = 0; baslangic = Pos('\"', jsonResp);
      while ((baslangic > 0) && (loopLimit < 5000)) {
        jsonResp = Copy(jsonResp, 1, baslangic - 1) + '''' + Copy(jsonResp, baslangic + 2, Length(jsonResp));
        baslangic = Pos('\"', jsonResp);
        loopLimit = loopLimit + 1;
      }
    
      baslangic = Pos('"text": "', jsonResp);
      if (baslangic > 0) {
        tempStr = Copy(jsonResp, baslangic + 9, Length(jsonResp));
        bitis = Pos('"', tempStr) - 1; 
        geminiSonuc = Trim(Copy(tempStr, 1, bitis));
        
        loopLimit = 0; baslangic = Pos('\n', geminiSonuc); while ((baslangic > 0) && (loopLimit < 1000)) { geminiSonuc = Copy(geminiSonuc, 1, baslangic - 1) + #13#10 + Copy(geminiSonuc, baslangic + 2, Length(geminiSonuc)); baslangic = Pos('\n', geminiSonuc); loopLimit = loopLimit + 1; }
        loopLimit = 0; baslangic = Pos('*', geminiSonuc); while ((baslangic > 0) && (loopLimit < 1000)) { Delete(geminiSonuc, baslangic, 1); baslangic = Pos('*', geminiSonuc); loopLimit = loopLimit + 1; }
        loopLimit = 0; baslangic = Pos('\', geminiSonuc); while ((baslangic > 0) && (loopLimit < 1000)) { Delete(geminiSonuc, baslangic, 1); baslangic = Pos('\', geminiSonuc); loopLimit = loopLimit + 1; }
        
        pU = Pos('###URUN###', geminiSonuc); pC = Pos('###OZEL###', geminiSonuc); pS = Pos('###GENEL###', geminiSonuc);
        
        if (pU > 0) { if (pC > 0) { strU = Trim(Copy(geminiSonuc, pU + 10, pC - pU - 10)); } else { strU = Trim(Copy(geminiSonuc, pU + 10, Length(geminiSonuc) - pU + 1)); } } else { strU = 'Bulunamadı.'; }
        if (pC > 0) { if (pS > 0) { strC = Trim(Copy(geminiSonuc, pC + 10, pS - pC - 10)); } else { strC = Trim(Copy(geminiSonuc, pC + 10, Length(geminiSonuc) - pC + 1)); } } else { strC = 'Profilinize özel analiz çıkarılamadı.'; }
        if (pS > 0) { strS = Trim(Copy(geminiSonuc, pS + 11, Length(geminiSonuc) - pS + 1)); } else { strS = 'Genel bilgi bulunamadı.'; }
        if ((pU <= 0) && (pC <= 0) && (pS <= 0)) { strU = geminiSonuc; strC = 'Analiz edilemedi.'; strS = 'Analiz edilemedi.'; }
        
        memoUrunCevap.Text = strU; memoColyakCevap.Text = strC; memoSporcuCevap.Text = strS;
        lytSonucKasa.Visible = True; 
      } else { 
        memoUrunCevap.Text = 'Okunamadı.'; 
        memoColyakCevap.Text = 'İçerik çekilemedi.'; 
        memoSporcuCevap.Text = 'İçerik çekilemedi.'; 
        ShowMessage('Yapay Zeka cevabı tam olarak okuyamadı!'); 
      }
    }
  except
    ShowMessage('İşlem sırasında ufak bir hata oluştu. Lütfen tekrar deneyin.');
    memoUrunCevap.Text = 'Bağlantı kesildi.';
    memoColyakCevap.Text = 'Bağlantı kesildi.';
    memoSporcuCevap.Text = 'Bağlantı kesildi.';
    lytSonucKasa.Visible = True;
  }
  btnUrunBul.Enabled = True;
}

void TmrGeminiTick;
var
  jsonBody, base64Foto, OzelSartMetni : String;
  baslangic, loopLimit : Integer;
  MyStream : TclMemoryStream;
{
  tmrGemini.Enabled = False; 
  memoUrunCevap.Text = 'Yapay Zeka Sunucusuna Bağlanılıyor...'; 
  memoColyakCevap.Text = 'Bekleniyor...'; 
  memoSporcuCevap.Text = 'Bekleniyor...';
  
  if (GeminiApi <> nil) { GeminiApi.Free; }
  GeminiApi = TCLRest.Create;
  
  OzelSartMetni = '';
  if (Pos('Çölyak', KullaniciTercihleri) > 0) { OzelSartMetni = OzelSartMetni + 'Çölyak (Gluten yasak). '; }
  if (Pos('Sporcu', KullaniciTercihleri) > 0) { OzelSartMetni = OzelSartMetni + 'Sporcu (Protein/Temiz içerik). '; }
  if (Pos('Vegan', KullaniciTercihleri) > 0) { OzelSartMetni = OzelSartMetni + 'Vegan (Hayvansal yasak). '; }
  if (Pos('Vejetaryen', KullaniciTercihleri) > 0) { OzelSartMetni = OzelSartMetni + 'Vejetaryen (Et yasak). '; }
  if (Pos('Sağlıklı', KullaniciTercihleri) > 0) { OzelSartMetni = OzelSartMetni + 'Sağlıklı Beslenme (Katkı maddesi istemiyor). '; }
  if (Pos('Diyabet', KullaniciTercihleri) > 0) { OzelSartMetni = OzelSartMetni + 'Diyabet (İlave şeker yasak). '; }
  if (Pos('Laktoz', KullaniciTercihleri) > 0) { OzelSartMetni = OzelSartMetni + 'Laktoz İntoleransı (Süt ürünü yasak). '; }
  if (OzelSartMetni == '') { OzelSartMetni = 'Özel bir kısıtlama yok.'; }
  
  GeminiApi.Accept = 'application/json';
  GeminiApi.Method = rmPost;
  GeminiApi.AddHeader('Content-Type', 'application/json');
  
  if (IslemTipi == 'Gorsel') {
    imgUrunFoto.Bitmap.Resize(400, 400); 
    MyStream = TclMemoryStream.Create; 
    imgUrunFoto.Bitmap.SaveToStream(MyStream); 
    MyStream.Position = 0; 
    base64Foto = Clomosy.StreamToBase64(MyStream); 
    MyStream.Free; 
    
    loopLimit = 0; baslangic = Pos(Chr(13), base64Foto); while ((baslangic > 0) && (loopLimit < 25000)) { Delete(base64Foto, baslangic, 1); baslangic = Pos(Chr(13), base64Foto); loopLimit = loopLimit + 1; }
    loopLimit = 0; baslangic = Pos(Chr(10), base64Foto); while ((baslangic > 0) && (loopLimit < 25000)) { Delete(base64Foto, baslangic, 1); baslangic = Pos(Chr(10), base64Foto); loopLimit = loopLimit + 1; }
    
    jsonBody = '{"contents":[{"parts":[{"text":"Sen uzman bir gıda analistisin. Fotoğrafı analiz et. KULLANICI PROFİLİ: [' + OzelSartMetni + ']. KESİN KURAL: 1- Ürünün HANGİ MARKAYA ait olduğunu kesinlikle bul ve ''Marka - Ürün Adı'' formatında yaz (Örn: Tadım - Tadımca Yer Fıstıklı Bar). 2- SADECE profilde yazan durumu değerlendir. Profilde Çölyak, Diyabet gibi kelimeler YOKSA onlardan ASLA BAHSETME! 3- Ürünün genel kalitesini ve içeriğini özetle. FORMAT: ###URUN### [Marka - Adı] ###OZEL### [Profile uygunluk analizi] ###GENEL### [Kısa genel özet ve içindekiler]"},{"inline_data":{"mime_type":"image/jpeg","data":"' + base64Foto + '"}}]}]}';
  } else {
    jsonBody = '{"contents":[{"parts":[{"text":"Sen uzman bir gıda analistisin. Ürün: ' + ArananDeger + '. KULLANICI PROFİLİ: [' + OzelSartMetni + ']. KESİN KURAL: 1- Verilen ürünün HANGİ MARKAYA ait olduğunu kendi veritabanından kesinlikle bul ve ''Marka - Ürün Adı'' formatında yaz (Örn: Tadım - Tadımca Yer Fıstıklı Bar). 2- SADECE profilde yazan durumu değerlendir. Profilde Çölyak, Diyabet gibi kelimeler YOKSA onlardan ASLA BAHSETME! 3- Ürünün genel kalitesini ve içeriğini özetle. FORMAT: ###URUN### [Marka - Adı] ###OZEL### [Profile uygunluk analizi] ###GENEL### [Kısa genel özet ve içindekiler]"}]}]}';
  }
  
  GeminiApi.AddBody(jsonBody, 'application/json');
  GeminiApi.OnCompleted = 'OnGeminiCompleted';
  GeminiApi.ExecuteAsync;
}

void TmrKameraTick;
{
  tmrKamera.Enabled = False;
  Clomosy.ImageChooser(AnaSayfaForm, imgUrunFoto); 
  btnUrunBul.Enabled = True;
}

void btnUrunBulClick;
var
  arananBarkod, jsonResp, tempStr, urunAdi : String;
  baslangic, bitis, loopLimit: Integer;
{
  btnUrunBul.Enabled = False; edtBarkodSonuc.Enabled = False; edtBarkodSonuc.Enabled = True; AnaSayfaForm.clVKVisible = False; 

  if (lblUrunFotoCerceve.Visible == True) {
    if (imgUrunFoto.Bitmap == nil) { ShowMessage('Lütfen geçerli bir fotoğraf çekin!'); btnUrunBul.Enabled = True; Exit; }
    IslemTipi = 'Gorsel'; lytSonucKasa.Visible = True; memoUrunCevap.Text = 'Fotoğraf İşleniyor...'; memoColyakCevap.Text = 'Bekleniyor...'; memoSporcuCevap.Text = 'Bekleniyor...';
    tmrGemini.Enabled = True; 
  } else {
    arananBarkod = Trim(edtBarkodSonuc.Text);
    if (arananBarkod == '') { ShowMessage('Lütfen önce bir barkod okutun veya yazın!'); btnUrunBul.Enabled = True; Exit; }
    
    lytSonucKasa.Visible = True; memoUrunCevap.Text = 'Veritabanı Aranıyor...'; memoColyakCevap.Text = 'Bekleniyor...'; memoSporcuCevap.Text = 'Bekleniyor...'; 
    
    OpenFoodFactsApi.BaseURL = 'https://world.openfoodfacts.org/api/v0/product/' + arananBarkod + '.json'; OpenFoodFactsApi.Accept = 'application/json'; OpenFoodFactsApi.Method = rmGet;
    try OpenFoodFactsApi.Execute; jsonResp = OpenFoodFactsApi.Response; except ShowMessage('Sunucuya bağlanılamadı!'); memoUrunCevap.Text = 'Bağlantı Hatası.'; btnUrunBul.Enabled = True; Exit; }
    
    if (Pos('"status":1', jsonResp) > 0) { 
      baslangic = Pos('"product_name_tr":"', jsonResp); if (baslangic > 0) { tempStr = Copy(jsonResp, baslangic + 19, Length(jsonResp)); } else { baslangic = Pos('"product_name":"', jsonResp); if (baslangic > 0) { tempStr = Copy(jsonResp, baslangic + 16, Length(jsonResp)); } }
      if (baslangic > 0) { bitis = Pos('"', tempStr) - 1; if (bitis > 0) { urunAdi = Copy(tempStr, 1, bitis); } else { urunAdi = 'Bulunamadı'; } } else { urunAdi = 'Bulunamadı'; }
      
      baslangic = Pos('"brands":"', jsonResp); if ((baslangic > 0) && (urunAdi <> 'Bulunamadı')) { tempStr = Copy(jsonResp, baslangic + 10, Length(jsonResp)); bitis = Pos('"', tempStr) - 1; if (bitis > 0) { urunAdi = Copy(tempStr, 1, bitis) + ' - ' + urunAdi; } }
    } else { urunAdi = 'Bulunamadı'; }
    
    if ((urunAdi == 'Bulunamadı') || (urunAdi == '')) { 
      lytSonucKasa.Visible = False; 
      lblUrunFotoCerceve.Visible = True; 
      lytUstKasa.Height = 520; 
      ShowMessage('Ürün bulunamadı! Kamerayı açmak için Tamam''a basın.'); 
      tmrKamera.Enabled = True; 
    } else {
      loopLimit = 0; baslangic = Pos('"', urunAdi); while ((baslangic > 0) && (loopLimit < 500)) { Delete(urunAdi, baslangic, 1); baslangic = Pos('"', urunAdi); loopLimit = loopLimit + 1; }
      loopLimit = 0; baslangic = Pos('\', urunAdi); while ((baslangic > 0) && (loopLimit < 500)) { Delete(urunAdi, baslangic, 1); baslangic = Pos('\', urunAdi); loopLimit = loopLimit + 1; }
      loopLimit = 0; baslangic = Pos(Chr(13), urunAdi); while ((baslangic > 0) && (loopLimit < 500)) { Delete(urunAdi, baslangic, 1); baslangic = Pos(Chr(13), urunAdi); loopLimit = loopLimit + 1; }
      loopLimit = 0; baslangic = Pos(Chr(10), urunAdi); while ((baslangic > 0) && (loopLimit < 500)) { Delete(urunAdi, baslangic, 1); baslangic = Pos(Chr(10), urunAdi); loopLimit = loopLimit + 1; }

      IslemTipi = 'Metin'; ArananDeger = urunAdi; memoUrunCevap.Text = 'Bulundu! AI Analiz Ediyor...'; tmrGemini.Enabled = True; 
    }
  }
}

{
  AnaSayfaForm = TclForm.Create(Self);
  AnaSayfaForm.SetFormColor('#f1f2f6', '#f1f2f6', clGVertical);

  apiKey = 'sb_publishable_T6KRGIkL-av7M9C-aqdrag_dJteJPcR';
  
  OpenFoodFactsApi = TCLRest.Create;
  GeminiApi = TCLRest.Create;
  ProfilApi = TCLRest.Create;
  
  prefFile = clPathCombine('userpref.txt', Clomosy.AppFilesPath);
  prefList = Clomosy.StringListNew;
  
  KullaniciEmail = '';
  if (clFileExists(prefFile, '')) { 
    prefList.LoadFromFile(prefFile, 0); 
    if (prefList.Count > 0) { KullaniciEmail = Clomosy.StringListItemString(prefList, 0); }
    if (prefList.Count > 2) { KullaniciTercihleri = Clomosy.StringListItemString(prefList, 2); } else { KullaniciTercihleri = 'Özel Bir Durumu Yok'; } 
  } else { KullaniciTercihleri = 'Özel Bir Durumu Yok'; }

  btnAnaStil = '{"Align":"Top","MarginTop":15,"MarginLeft":25,"MarginRight":25,"Height":55,"RoundHeight":15,"RoundWidth":15,"BackgroundColor":"#00b894","TextColor":"#ffffff","TextSize":16,"TextBold":"yes"}';
  
  edtStil = '{"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"}';
  edtSoftStil = '{"Align":"Top","MarginTop":10,"MarginLeft":20,"MarginRight":20,"Height":45,"RoundHeight":10,"RoundWidth":10,"BorderColor":"#dfe6e9","BorderWidth":1.5,"BackgroundColor":"#f8f9fa","TextColor":"#2d3436","TextSize":14}';

  tmrGemini = AnaSayfaForm.AddNewTimer(AnaSayfaForm, 'tmrGemini', 200);
  tmrGemini.Enabled = False;
  AnaSayfaForm.AddNewEvent(tmrGemini, tbeOnTimer, 'TmrGeminiTick');
  
  tmrKamera = AnaSayfaForm.AddNewTimer(AnaSayfaForm, 'tmrKamera', 1000); 
  tmrKamera.Enabled = False;
  AnaSayfaForm.AddNewEvent(tmrKamera, tbeOnTimer, 'TmrKameraTick');

  scrollAna = AnaSayfaForm.AddNewVertScrollBox(AnaSayfaForm, 'scrollAna');
  scrollAna.Align = alContents; 
  scrollAna.Margins.Bottom = 0; 

  lytUstKasa = AnaSayfaForm.AddNewLayout(scrollAna, 'lytUstKasa');
  lytUstKasa.Align = alTop; 
  lytUstKasa.Height = 310; 

  lblHosGeldin = AnaSayfaForm.AddNewProLabel(lytUstKasa, 'lblHosGeldin', 'Hoş Geldin,' + #13#10 + Clomosy.GlobalVariableString);
  clComponent.SetupComponent(lblHosGeldin, '{"Align":"Top","MarginTop":30,"MarginBottom":15,"Height":60,"TextColor":"#2d3436","TextSize":22,"TextBold":"yes","TextHorizontalAlign":"center"}');

  edtBarkodSonuc = AnaSayfaForm.AddNewProEdit(lytUstKasa, 'edtBarkodSonuc','Barkod Numarası Girin');
  clComponent.SetupComponent(edtBarkodSonuc, edtStil);
  
  btnBarkodOkut = AnaSayfaForm.AddNewProButton(lytUstKasa, 'btnBarkodOkut', 'BARKOD OKUT VEYA YAZ');
  clComponent.SetupComponent(btnBarkodOkut, btnAnaStil);
  AnaSayfaForm.AddNewEvent(btnBarkodOkut, tbeOnClick, 'btnBarkodOkutClick');

  lblUrunFotoCerceve = AnaSayfaForm.AddNewProLabel(lytUstKasa, 'lblUrunFotoCerceve', '');
  clComponent.SetupComponent(lblUrunFotoCerceve, '{"Align":"Top","MarginTop":15,"MarginLeft":25,"MarginRight":25,"Height":180,"RoundHeight":15,"RoundWidth":15,"BorderColor":"#dfe6e9","BorderWidth":1,"BackgroundColor":"#ffffff"}');
  lblUrunFotoCerceve.Visible = False; 
  
  imgUrunFoto = AnaSayfaForm.AddNewImage(lblUrunFotoCerceve, 'imgUrunFoto');
  imgUrunFoto.Align = alClient; imgUrunFoto.Margins.Left = 5; imgUrunFoto.Margins.Right = 5; imgUrunFoto.Margins.Top = 5; imgUrunFoto.Margins.Bottom = 5;

  btnUrunBul = AnaSayfaForm.AddNewProButton(lytUstKasa, 'btnUrunBul', 'ÜRÜNÜ ANALİZ ET');
  clComponent.SetupComponent(btnUrunBul, btnAnaStil);
  AnaSayfaForm.AddNewEvent(btnUrunBul, tbeOnClick, 'btnUrunBulClick');

  lytSonucKasa = AnaSayfaForm.AddNewLayout(scrollAna, 'lytSonucKasa');
  lytSonucKasa.Align = alTop; lytSonucKasa.Height = 720; lytSonucKasa.Visible = False;

  lytKasaSporcu = AnaSayfaForm.AddNewLayout(lytSonucKasa, 'lytKasaSporcu');
  lytKasaSporcu.Align = alTop; lytKasaSporcu.Height = 250; lytKasaSporcu.Margins.Top = 15; lytKasaSporcu.Margins.Left = 20; lytKasaSporcu.Margins.Right = 20;
  lblKasaSporcuBg = AnaSayfaForm.AddNewProLabel(lytKasaSporcu, 'lblKasaSporcuBg', '');
  clComponent.SetupComponent(lblKasaSporcuBg, '{"Align":"Client","BackgroundColor":"#ffffff","BorderColor":"#ff7675","BorderWidth":2,"RoundHeight":15,"RoundWidth":15}');
  lytIcerikSporcu = AnaSayfaForm.AddNewLayout(lblKasaSporcuBg, 'lytIcerikSporcu');
  lytIcerikSporcu.Align = alClient;
  lblSporcuBaslik = AnaSayfaForm.AddNewProLabel(lytIcerikSporcu, 'lblSporcuBaslik', 'Genel Değerlendirme');
  clComponent.SetupComponent(lblSporcuBaslik, '{"Align":"Top","MarginTop":10,"MarginLeft":15,"Height":25,"TextColor":"#d63031","TextSize":16,"TextBold":"yes"}');
  memoSporcuCevap = AnaSayfaForm.AddNewMemo(lytIcerikSporcu, 'memoSporcuCevap', '');
  memoSporcuCevap.Align = alClient; memoSporcuCevap.Margins.Left = 10; memoSporcuCevap.Margins.Right = 10; memoSporcuCevap.Margins.Bottom = 10; memoSporcuCevap.ReadOnly = True; memoSporcuCevap.WordWrap = True;

  lytKasaColyak = AnaSayfaForm.AddNewLayout(lytSonucKasa, 'lytKasaColyak');
  lytKasaColyak.Align = alTop; lytKasaColyak.Height = 250; lytKasaColyak.Margins.Top = 15; lytKasaColyak.Margins.Left = 20; lytKasaColyak.Margins.Right = 20;
  lblKasaColyakBg = AnaSayfaForm.AddNewProLabel(lytKasaColyak, 'lblKasaColyakBg', '');
  clComponent.SetupComponent(lblKasaColyakBg, '{"Align":"Client","BackgroundColor":"#ffffff","BorderColor":"#74b9ff","BorderWidth":2,"RoundHeight":15,"RoundWidth":15}');
  lytIcerikColyak = AnaSayfaForm.AddNewLayout(lblKasaColyakBg, 'lytIcerikColyak');
  lytIcerikColyak.Align = alClient;
  lblColyakBaslik = AnaSayfaForm.AddNewProLabel(lytIcerikColyak, 'lblColyakBaslik', 'Size Özel Analiz');
  clComponent.SetupComponent(lblColyakBaslik, '{"Align":"Top","MarginTop":10,"MarginLeft":15,"Height":25,"TextColor":"#0984e3","TextSize":16,"TextBold":"yes"}');
  memoColyakCevap = AnaSayfaForm.AddNewMemo(lytIcerikColyak, 'memoColyakCevap', '');
  memoColyakCevap.Align = alClient; memoColyakCevap.Margins.Left = 10; memoColyakCevap.Margins.Right = 10; memoColyakCevap.Margins.Bottom = 10; memoColyakCevap.ReadOnly = True; memoColyakCevap.WordWrap = True;

  lytKasaUrun = AnaSayfaForm.AddNewLayout(lytSonucKasa, 'lytKasaUrun');
  lytKasaUrun.Align = alTop; lytKasaUrun.Height = 150; lytKasaUrun.Margins.Top = 15; lytKasaUrun.Margins.Left = 20; lytKasaUrun.Margins.Right = 20;
  lblKasaUrunBg = AnaSayfaForm.AddNewProLabel(lytKasaUrun, 'lblKasaUrunBg', '');
  clComponent.SetupComponent(lblKasaUrunBg, '{"Align":"Client","BackgroundColor":"#ffffff","BorderColor":"#fdcb6e","BorderWidth":2,"RoundHeight":15,"RoundWidth":15}');
  lytIcerikUrun = AnaSayfaForm.AddNewLayout(lblKasaUrunBg, 'lytIcerikUrun');
  lytIcerikUrun.Align = alClient;
  lblUrunBaslik = AnaSayfaForm.AddNewProLabel(lytIcerikUrun, 'lblUrunBaslik', 'Ürün Bilgisi');
  clComponent.SetupComponent(lblUrunBaslik, '{"Align":"Top","MarginTop":10,"MarginLeft":15,"Height":25,"TextColor":"#e17055","TextSize":16,"TextBold":"yes"}');
  memoUrunCevap = AnaSayfaForm.AddNewMemo(lytIcerikUrun, 'memoUrunCevap', '');
  memoUrunCevap.Align = alClient; memoUrunCevap.Margins.Left = 10; memoUrunCevap.Margins.Right = 10; memoUrunCevap.Margins.Bottom = 10; memoUrunCevap.ReadOnly = True; memoUrunCevap.WordWrap = True;

  lytScrollBosluk = AnaSayfaForm.AddNewLayout(scrollAna, 'lytScrollBosluk');
  lytScrollBosluk.Align = alTop; 
  lytScrollBosluk.Height = 110;

  lytProfilKasa = AnaSayfaForm.AddNewLayout(AnaSayfaForm, 'lytProfilKasa');
  lytProfilKasa.Align = alContents;
  lytProfilKasa.Visible = False; 

  scrollProfil = AnaSayfaForm.AddNewVertScrollBox(lytProfilKasa, 'scrollProfil');
  scrollProfil.Align = alClient;
  
  lblP_AdSoyad = AnaSayfaForm.AddNewProLabel(scrollProfil, 'lblP_AdSoyad', Clomosy.GlobalVariableString);
  clComponent.SetupComponent(lblP_AdSoyad, '{"Align":"Top","MarginTop":30,"Height":35,"TextColor":"#2d3436","TextSize":22,"TextBold":"yes","TextHorizontalAlign":"center"}');
  
  lblP_Email = AnaSayfaForm.AddNewProLabel(scrollProfil, 'lblP_Email', KullaniciEmail);
  clComponent.SetupComponent(lblP_Email, '{"Align":"Top","MarginTop":0,"Height":25,"TextColor":"#636e72","TextSize":14,"TextBold":"no","TextHorizontalAlign":"center"}');

  lytP_Tercihler = AnaSayfaForm.AddNewLayout(scrollProfil, 'lytP_Tercihler');
  lytP_Tercihler.Align = alTop; lytP_Tercihler.Height = 360; lytP_Tercihler.Margins.Top = 20; lytP_Tercihler.Margins.Left = 20; lytP_Tercihler.Margins.Right = 20;

  lblP_TercihKasaBg = AnaSayfaForm.AddNewProLabel(lytP_Tercihler, 'lblP_TercihKasaBg', '');
  clComponent.SetupComponent(lblP_TercihKasaBg, '{"Align":"Client","RoundHeight":15,"RoundWidth":15,"BackgroundColor":"#ffffff"}');

  lblP_TercihBaslik = AnaSayfaForm.AddNewProLabel(lblP_TercihKasaBg, 'lblP_TercihBaslik', 'Beslenme Tercihleriniz');
  clComponent.SetupComponent(lblP_TercihBaslik, '{"Align":"Top","MarginTop":15,"MarginBottom":10,"Height":25,"TextColor":"#2d3436","TextSize":16,"TextBold":"yes","TextHorizontalAlign":"center"}');

  lytP_CheckList = AnaSayfaForm.AddNewLayout(lblP_TercihKasaBg, 'lytP_CheckList');
  lytP_CheckList.Align = alClient;

  chkP_Laktoz = AnaSayfaForm.AddNewCheckBox(lytP_CheckList, 'chkP_Laktoz', ' Laktoz İntoleransı'); chkP_Laktoz.Align = alTop; chkP_Laktoz.Height = 30; chkP_Laktoz.Margins.Left = 20;
  chkP_Diyabet = AnaSayfaForm.AddNewCheckBox(lytP_CheckList, 'chkP_Diyabet', ' Diyabet (Şeker Hastalığı)'); chkP_Diyabet.Align = alTop; chkP_Diyabet.Height = 30; chkP_Diyabet.Margins.Left = 20;
  chkP_Saglikli = AnaSayfaForm.AddNewCheckBox(lytP_CheckList, 'chkP_Saglikli', ' Sağlıklı Beslenme'); chkP_Saglikli.Align = alTop; chkP_Saglikli.Height = 30; chkP_Saglikli.Margins.Left = 20;
  chkP_Vejetaryen = AnaSayfaForm.AddNewCheckBox(lytP_CheckList, 'chkP_Vejetaryen', ' Vejetaryen'); chkP_Vejetaryen.Align = alTop; chkP_Vejetaryen.Height = 30; chkP_Vejetaryen.Margins.Left = 20;
  chkP_Vegan = AnaSayfaForm.AddNewCheckBox(lytP_CheckList, 'chkP_Vegan', ' Vegan'); chkP_Vegan.Align = alTop; chkP_Vegan.Height = 30; chkP_Vegan.Margins.Left = 20;
  AnaSayfaForm.AddNewEvent(chkP_Vegan, tbeOnClick, 'ChkP_VeganClick'); 
  chkP_Sporcu = AnaSayfaForm.AddNewCheckBox(lytP_CheckList, 'chkP_Sporcu', ' Sporcuyum'); chkP_Sporcu.Align = alTop; chkP_Sporcu.Height = 30; chkP_Sporcu.Margins.Left = 20;
  chkP_Colyak = AnaSayfaForm.AddNewCheckBox(lytP_CheckList, 'chkP_Colyak', ' Çölyak Hastasıyım'); chkP_Colyak.Align = alTop; chkP_Colyak.Height = 30; chkP_Colyak.Margins.Left = 20;
  
  if (Pos('Laktoz', KullaniciTercihleri) > 0) { chkP_Laktoz.isChecked = True; }
  if (Pos('Diyabet', KullaniciTercihleri) > 0) { chkP_Diyabet.isChecked = True; }
  if (Pos('Sağlıklı', KullaniciTercihleri) > 0) { chkP_Saglikli.isChecked = True; }
  if (Pos('Vejetaryen', KullaniciTercihleri) > 0) { chkP_Vejetaryen.isChecked = True; }
  if (Pos('Vegan', KullaniciTercihleri) > 0) { chkP_Vegan.isChecked = True; chkP_Vejetaryen.Enabled = False; }
  if (Pos('Sporcu', KullaniciTercihleri) > 0) { chkP_Sporcu.isChecked = True; }
  if (Pos('Çölyak', KullaniciTercihleri) > 0) { chkP_Colyak.isChecked = True; }

  btnP_TercihKaydet = AnaSayfaForm.AddNewProButton(lblP_TercihKasaBg, 'btnP_TercihKaydet', 'GÜNCELLE');
  clComponent.SetupComponent(btnP_TercihKaydet, '{"Align":"Bottom","MarginBottom":15,"MarginLeft":20,"MarginRight":20,"Height":45,"RoundHeight":10,"RoundWidth":10,"BackgroundColor":"#00b894","TextColor":"#ffffff","TextSize":14,"TextBold":"yes"}');
  AnaSayfaForm.AddNewEvent(btnP_TercihKaydet, tbeOnClick, 'BtnP_TercihKaydetClick');

  lytP_Sifre = AnaSayfaForm.AddNewLayout(scrollProfil, 'lytP_Sifre');
  lytP_Sifre.Align = alTop; lytP_Sifre.Height = 300; lytP_Sifre.Margins.Top = 20; lytP_Sifre.Margins.Left = 20; lytP_Sifre.Margins.Right = 20;

  lblP_SifreKasaBg = AnaSayfaForm.AddNewProLabel(lytP_Sifre, 'lblP_SifreKasaBg', '');
  clComponent.SetupComponent(lblP_SifreKasaBg, '{"Align":"Client","RoundHeight":15,"RoundWidth":15,"BackgroundColor":"#ffffff"}');

  lblP_SifreBaslik = AnaSayfaForm.AddNewProLabel(lblP_SifreKasaBg, 'lblP_SifreBaslik', 'Şifre İşlemleri');
  clComponent.SetupComponent(lblP_SifreBaslik, '{"Align":"Top","MarginTop":15,"Height":30,"TextColor":"#2d3436","TextSize":16,"TextBold":"yes","TextHorizontalAlign":"center"}');

  edtP_EskiSifre = AnaSayfaForm.AddNewProEdit(lblP_SifreKasaBg, 'edtP_EskiSifre', 'Mevcut Şifreniz'); edtP_EskiSifre.Password = True;
  clComponent.SetupComponent(edtP_EskiSifre, edtSoftStil);
  imgP_EskiSifre = AnaSayfaForm.AddNewProImage(edtP_EskiSifre, 'imgP_EskiSifre');
  clComponent.SetupComponent(imgP_EskiSifre, '{"Align":"Right","Width":25,"MarginRight":10,"MarginTop":10,"MarginBottom":10}');
  AnaSayfaForm.SetImage(imgP_EskiSifre, 'https://i.ibb.co/Z1V7rfXV/kapal-g-z.png');
  AnaSayfaForm.AddNewEvent(imgP_EskiSifre, tbeOnClick, 'P_SifreGizleGosterEski');
  
  edtP_Sifre = AnaSayfaForm.AddNewProEdit(lblP_SifreKasaBg, 'edtP_Sifre', 'Yeni Şifre'); edtP_Sifre.Password = True;
  clComponent.SetupComponent(edtP_Sifre, edtSoftStil);
  imgP_Sifre = AnaSayfaForm.AddNewProImage(edtP_Sifre, 'imgP_Sifre');
  clComponent.SetupComponent(imgP_Sifre, '{"Align":"Right","Width":25,"MarginRight":10,"MarginTop":10,"MarginBottom":10}');
  AnaSayfaForm.SetImage(imgP_Sifre, 'https://i.ibb.co/Z1V7rfXV/kapal-g-z.png');
  AnaSayfaForm.AddNewEvent(imgP_Sifre, tbeOnClick, 'P_SifreGizleGosterYeni');
  
  edtP_SifreTekrar = AnaSayfaForm.AddNewProEdit(lblP_SifreKasaBg, 'edtP_SifreTekrar', 'Yeni Şifre (Tekrar)'); edtP_SifreTekrar.Password = True;
  clComponent.SetupComponent(edtP_SifreTekrar, edtSoftStil);
  imgP_SifreTekrar = AnaSayfaForm.AddNewProImage(edtP_SifreTekrar, 'imgP_SifreTekrar');
  clComponent.SetupComponent(imgP_SifreTekrar, '{"Align":"Right","Width":25,"MarginRight":10,"MarginTop":10,"MarginBottom":10}');
  AnaSayfaForm.SetImage(imgP_SifreTekrar, 'https://i.ibb.co/Z1V7rfXV/kapal-g-z.png');
  AnaSayfaForm.AddNewEvent(imgP_SifreTekrar, tbeOnClick, 'P_SifreGizleGosterTekrar');

  lblP_SifreKurallari = AnaSayfaForm.AddNewProLabel(lblP_SifreKasaBg, 'lblP_SifreKurallari', 'Şifre: 8-50 karakter, 1 büyük, 1 küçük, 1 rakam, 1 özel krk.');
  clComponent.SetupComponent(lblP_SifreKurallari, '{"Align":"Top","MarginTop":5,"MarginLeft":25,"MarginRight":25,"Height":20,"TextColor":"#7f8c8d","TextSize":11,"TextBold":"no"}');

  btnP_SifreKaydet = AnaSayfaForm.AddNewProButton(lblP_SifreKasaBg, 'btnP_SifreKaydet', 'ŞİFREYİ DEĞİŞTİR');
  clComponent.SetupComponent(btnP_SifreKaydet, '{"Align":"Bottom","MarginBottom":15,"MarginLeft":20,"MarginRight":20,"Height":45,"RoundHeight":10,"RoundWidth":10,"BackgroundColor":"#ffffff","BorderColor":"#00b894","BorderWidth":2,"TextColor":"#00b894","TextSize":14,"TextBold":"yes"}');
  AnaSayfaForm.AddNewEvent(btnP_SifreKaydet, tbeOnClick, 'BtnP_SifreKaydetClick');

  lytP_HesapSil = AnaSayfaForm.AddNewLayout(scrollProfil, 'lytP_HesapSil');
  lytP_HesapSil.Align = alTop; lytP_HesapSil.Height = 55; lytP_HesapSil.Margins.Top = 20; lytP_HesapSil.Margins.Left = 20; lytP_HesapSil.Margins.Right = 20;
  
  btnP_HesapSil = AnaSayfaForm.AddNewProButton(lytP_HesapSil, 'btnP_HesapSil', 'Hesabımı Kalıcı Olarak Sil');
  clComponent.SetupComponent(btnP_HesapSil, '{"Align":"Client","RoundHeight":15,"RoundWidth":15,"BackgroundColor":"#ffe0e0","TextColor":"#d63031","TextSize":14,"TextBold":"yes"}');
  AnaSayfaForm.AddNewEvent(btnP_HesapSil, tbeOnClick, 'BtnP_HesapSilSoru');

  lytP_Bosluk = AnaSayfaForm.AddNewLayout(scrollProfil, 'lytP_Bosluk');
  lytP_Bosluk.Align = alTop; 
  lytP_Bosluk.Height = 150;

  lytBottomContainer = AnaSayfaForm.AddNewLayout(AnaSayfaForm, 'lytBottomContainer');
  lytBottomContainer.Align = alBottom; 
  lytBottomContainer.Height = 100; 

  lytBottomBarBg = AnaSayfaForm.AddNewLayout(lytBottomContainer, 'lytBottomBarBg');
  lytBottomBarBg.Align = alClient; 
  
  lblBarBg = AnaSayfaForm.AddNewProLabel(lytBottomBarBg, 'lblBarBg', '');
  clComponent.SetupComponent(lblBarBg, '{"Align":"Client","BackgroundColor":"#ffffff","BorderColor":"#e0e0e0","BorderWidth":1.5,"RoundHeight":30,"RoundWidth":30,"MarginLeft":15,"MarginRight":15,"MarginBottom":10,"MarginTop":30}');

  lytIconsLayer = AnaSayfaForm.AddNewLayout(lytBottomContainer, 'lytIconsLayer');
  lytIconsLayer.Align = alClient; 

  lytNavLeft = AnaSayfaForm.AddNewLayout(lytIconsLayer, 'lytNavLeft');
  lytNavLeft.Align = alLeft; 
  lytNavLeft.Width = 80;
  lytNavLeft.Margins.Left = 50; 
  lytNavLeft.Margins.Top = 30; 
  lytNavLeft.Margins.Bottom = 20;
  
  lblNavLeftBg = AnaSayfaForm.AddNewProLabel(lytNavLeft, 'lblNavLeftBg', '');
  clComponent.SetupComponent(lblNavLeftBg, '{"Align":"Center","Width":70,"Height":70,"BackgroundColor":"#00b894","BorderColor":"#ffffff","BorderWidth":5,"RoundHeight":35,"RoundWidth":35}');
  lblNavLeftBg.Visible = False; 

  imgNavLeft = AnaSayfaForm.AddNewImage(lytNavLeft, 'imgNavLeft');
  imgNavLeft.Align = alCenter;
  imgNavLeft.Width = 40; imgNavLeft.Height = 40; 
  AnaSayfaForm.SetImage(imgNavLeft, 'https://i.ibb.co/XZstP4XY/profil-T.png');
  AnaSayfaForm.AddNewEvent(imgNavLeft, tbeOnClick, 'SoldakiButonTikladi');
  AnaSayfaForm.AddNewEvent(lblNavLeftBg, tbeOnClick, 'SoldakiButonTikladi');
  imgNavLeft.BringToFront; 

  lytNavMiddle = AnaSayfaForm.AddNewLayout(lytIconsLayer, 'lytNavMiddle');
  lytNavMiddle.Align = alCenter; 
  lytNavMiddle.Width = 80; 
  lytNavMiddle.Margins.Top = 0; 
  lytNavMiddle.Margins.Bottom = 30; 

  lblNavMiddleBg = AnaSayfaForm.AddNewProLabel(lytNavMiddle, 'lblNavMiddleBg', '');
  clComponent.SetupComponent(lblNavMiddleBg, '{"Align":"Center","Width":70,"Height":70,"BackgroundColor":"#00b894","BorderColor":"#ffffff","BorderWidth":5,"RoundHeight":35,"RoundWidth":35}');
  lblNavMiddleBg.Visible = True; 
  
  imgNavMiddle = AnaSayfaForm.AddNewImage(lytNavMiddle, 'imgNavMiddle');
  imgNavMiddle.Align = alCenter;
  imgNavMiddle.Width = 40; imgNavMiddle.Height = 40; 
  AnaSayfaForm.SetImage(imgNavMiddle, 'https://i.ibb.co/wF4GMPzm/home-T.png'); 
  AnaSayfaForm.AddNewEvent(imgNavMiddle, tbeOnClick, 'OrtadakiButonTikladi'); 
  AnaSayfaForm.AddNewEvent(lblNavMiddleBg, tbeOnClick, 'OrtadakiButonTikladi'); 
  imgNavMiddle.BringToFront;

  lytNavRight = AnaSayfaForm.AddNewLayout(lytIconsLayer, 'lytNavRight');
  lytNavRight.Align = alRight; 
  lytNavRight.Width = 80;
  lytNavRight.Margins.Right = 50; 
  lytNavRight.Margins.Top = 30; 
  lytNavRight.Margins.Bottom = 20;

  imgNavRight = AnaSayfaForm.AddNewImage(lytNavRight, 'imgNavRight');
  imgNavRight.Align = alCenter;
  imgNavRight.Width = 40; imgNavRight.Height = 40;
  AnaSayfaForm.SetImage(imgNavRight, 'https://i.ibb.co/LzrRzZ3t/cikis-T.png'); 
  AnaSayfaForm.AddNewEvent(imgNavRight, tbeOnClick, 'BtnCikisSoru');

  lytLogoutOverlay = AnaSayfaForm.AddNewLayout(AnaSayfaForm, 'lytLogoutOverlay');
  lytLogoutOverlay.Align = alContents; 
  lytLogoutOverlay.Visible = False;

  lblLogoutArkaplan = AnaSayfaForm.AddNewProLabel(lytLogoutOverlay, 'lblLogoutArkaplan', '');
  clComponent.SetupComponent(lblLogoutArkaplan, '{"Align":"Client","BackgroundColor":"#000000"}'); 
  lblLogoutArkaplan.Opacity = 0.6; 
  AnaSayfaForm.AddNewEvent(lblLogoutArkaplan, tbeOnClick, 'BtnCikisIptal');

  lytLogoutKasa = AnaSayfaForm.AddNewLayout(lytLogoutOverlay, 'lytLogoutKasa');
  lytLogoutKasa.Align = alCenter;
  lytLogoutKasa.Width = 320; lytLogoutKasa.Height = 160;

  lblLogoutKasaBg = AnaSayfaForm.AddNewProLabel(lytLogoutKasa, 'lblLogoutKasaBg', '');
  clComponent.SetupComponent(lblLogoutKasaBg, '{"Align":"Client","BackgroundColor":"#ffffff","RoundHeight":20,"RoundWidth":20}');

  lblLogoutSoru = AnaSayfaForm.AddNewProLabel(lblLogoutKasaBg, 'lblLogoutSoru', 'Çıkış yapmak istediğinize' + #13#10 + 'emin misiniz?');
  clComponent.SetupComponent(lblLogoutSoru, '{"Align":"Top","MarginTop":25,"MarginLeft":10,"MarginRight":10,"Height":50,"TextColor":"#2d3436","TextSize":16,"TextBold":"yes","TextHorizontalAlign":"center"}');

  lytLogoutBtnKasa = AnaSayfaForm.AddNewLayout(lblLogoutKasaBg, 'lytLogoutBtnKasa');
  lytLogoutBtnKasa.Align = alBottom; lytLogoutBtnKasa.Height = 50; lytLogoutBtnKasa.Margins.Bottom = 20; lytLogoutBtnKasa.Margins.Left = 20; lytLogoutBtnKasa.Margins.Right = 20;

  btnLogoutIptal = AnaSayfaForm.AddNewProButton(lytLogoutBtnKasa, 'btnLogoutIptal', 'İptal');
  clComponent.SetupComponent(btnLogoutIptal, '{"Align":"Left","Width":130,"Height":45,"BackgroundColor":"#f1f2f6","TextColor":"#2d3436","TextSize":14,"TextBold":"yes","RoundHeight":10,"RoundWidth":10}');
  AnaSayfaForm.AddNewEvent(btnLogoutIptal, tbeOnClick, 'BtnCikisIptal');

  btnLogoutEvet = AnaSayfaForm.AddNewProButton(lytLogoutBtnKasa, 'btnLogoutEvet', 'Çıkış Yap');
  clComponent.SetupComponent(btnLogoutEvet, '{"Align":"Right","Width":130,"Height":45,"BackgroundColor":"#00b894","TextColor":"#ffffff","TextSize":14,"TextBold":"yes","RoundHeight":10,"RoundWidth":10}');
  AnaSayfaForm.AddNewEvent(btnLogoutEvet, tbeOnClick, 'BtnCikisEvet');

  lytHesapSilOverlay = AnaSayfaForm.AddNewLayout(AnaSayfaForm, 'lytHesapSilOverlay');
  lytHesapSilOverlay.Align = alContents; 
  lytHesapSilOverlay.Visible = False;

  lblHesapSilArkaplan = AnaSayfaForm.AddNewProLabel(lytHesapSilOverlay, 'lblHesapSilArkaplan', '');
  clComponent.SetupComponent(lblHesapSilArkaplan, '{"Align":"Client","BackgroundColor":"#000000"}'); 
  lblHesapSilArkaplan.Opacity = 0.8; 
  AnaSayfaForm.AddNewEvent(lblHesapSilArkaplan, tbeOnClick, 'BtnP_HesapSilIptal');

  lytHesapSilKasa = AnaSayfaForm.AddNewLayout(lytHesapSilOverlay, 'lytHesapSilKasa');
  lytHesapSilKasa.Align = alCenter;
  lytHesapSilKasa.Width = 320; lytHesapSilKasa.Height = 180;

  lblHesapSilKasaBg = AnaSayfaForm.AddNewProLabel(lytHesapSilKasa, 'lblHesapSilKasaBg', '');
  clComponent.SetupComponent(lblHesapSilKasaBg, '{"Align":"Client","BackgroundColor":"#ffffff","RoundHeight":25,"RoundWidth":25}');

  lblHesapSilSoru = AnaSayfaForm.AddNewProLabel(lblHesapSilKasaBg, 'lblHesapSilSoru', 'Hesabınızı kalıcı olarak' + #13#10 + 'silmek istediğinize emin misiniz?');
  clComponent.SetupComponent(lblHesapSilSoru, '{"Align":"Top","MarginTop":25,"MarginLeft":10,"MarginRight":10,"Height":50,"TextColor":"#d63031","TextSize":15,"TextBold":"yes","TextHorizontalAlign":"center"}');

  lytHesapSilBtnKasa = AnaSayfaForm.AddNewLayout(lblHesapSilKasaBg, 'lytHesapSilBtnKasa');
  lytHesapSilBtnKasa.Align = alBottom; lytHesapSilBtnKasa.Height = 50; lytHesapSilBtnKasa.Margins.Bottom = 20; lytHesapSilBtnKasa.Margins.Left = 20; lytHesapSilBtnKasa.Margins.Right = 20;

  btnHesapSilIptal = AnaSayfaForm.AddNewProButton(lytHesapSilBtnKasa, 'btnHesapSilIptal', 'İptal');
  clComponent.SetupComponent(btnHesapSilIptal, '{"Align":"Left","Width":130,"Height":45,"BackgroundColor":"#f1f2f6","TextColor":"#2d3436","TextSize":14,"TextBold":"yes","RoundHeight":10,"RoundWidth":10}');
  AnaSayfaForm.AddNewEvent(btnHesapSilIptal, tbeOnClick, 'BtnP_HesapSilIptal');

  btnHesapSilEvet = AnaSayfaForm.AddNewProButton(lytHesapSilBtnKasa, 'btnHesapSilEvet', 'Evet, Sil');
  clComponent.SetupComponent(btnHesapSilEvet, '{"Align":"Right","Width":130,"Height":45,"BackgroundColor":"#ff7675","TextColor":"#ffffff","TextSize":14,"TextBold":"yes","RoundHeight":10,"RoundWidth":10}');
  AnaSayfaForm.AddNewEvent(btnHesapSilEvet, tbeOnClick, 'BtnP_HesapSilEvet');

  AnaSayfaForm.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">
Yukarı Dön
Emr.Erkmn Açılır Kutu İzle
Moderatör
Moderatör


Kayıt Tarihi: 28 Şubat 2025
Durum: Aktif
Puanlar: 905
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (1) Teşekkürler(1)   Alıntı Emr.Erkmn Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 2 Saat 50 Dakika Önce Saat 21:33
Merhaba Berat,

Bu durum senden kaynaklı değil proje geliştirmeye android devam eder misin IOS ile ilgili olan durumu ben teknik ekibe ileteceğim. 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">

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,062 Saniyede Yüklendi.