Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Clomosy ile değişken kullanımı
  Aktif Konular Aktif Konular RSS - Uygulama kapanıyor
  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.

Uygulama kapanıyor

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


Kayıt Tarihi: 16 Saat 43 Dakika Önce
Durum: Aktif
Puanlar: 2
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı zeynepdeniz Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: Uygulama kapanıyor
    Gönderim Zamanı: 3 Saat 30 Dakika Önce Saat 12:26
void FormuKapatAction;
{
  if (FormHesap <> nil) 
  { FormHesap.Close; }
  if (FormSifre <> nil) 
  { FormSifre.Close; }
  if (FormBildirim <> nil) 
  {  FormBildirim.Close; }
}

void AltSayfaBaslikEkle(AForm, ABaslik);
var
  pnl: TclProPanel;
  lblBaslik, lblGeri: TclProLabel;
{
  pnl = AForm.AddNewProPanel(AForm, 'PnlSubHeader');
  pnl.Align = alTop;
  pnl.Height = 75;
  pnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#414446');
  pnl.SetclProSettings(pnl.clProSettings);

  lblGeri = AForm.AddNewProLabel(pnl, 'LblBackIcon', '‹');
  lblGeri.Align = alLeft;
  lblGeri.Width = 55;
  lblGeri.Margins.Left = 5;
  lblGeri.Margins.Top = 5;
  lblGeri.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFBF00');
  lblGeri.clProSettings.FontSize = 35;
  lblGeri.clProSettings.FontHorzAlign = palCenter;
  lblGeri.clProSettings.FontVertAlign = palCenter;
  lblGeri.SetclProSettings(lblGeri.clProSettings);

  AForm.AddNewEvent(lblGeri, tbeOnClick, 'FormuKapatAction');
  lblBaslik = AForm.AddNewProLabel(pnl, 'LblSubTitle', ABaslik);
  lblBaslik.Align = alClient;
  lblBaslik.Margins.Left = 2;
  lblBaslik.Margins.Top = 10;
  lblBaslik.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFBF00');
  lblBaslik.clProSettings.FontSize = 17;
  lblBaslik.clProSettings.TextSettings.Font.Style = [fsBold];
  lblBaslik.clProSettings.FontHorzAlign = palLeading;
  lblBaslik.clProSettings.FontVertAlign = palCenter;
  lblBaslik.SetclProSettings(lblBaslik.clProSettings);
}

void EditGrupEkle(AForm, AParent, AEdit, ATag, ABaslik, ADeger, AHeight);
var 
  lbl: TclProLabel;
{
  lbl = AForm.AddNewProLabel(AParent, 'LblEdt' + ATag, ABaslik);
  lbl.Align = alTop;
  lbl.Height = 20;
  lbl.Margins.Top = 15;
  lbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#ABB2B9');
  lbl.clProSettings.FontSize = 11;
  lbl.SetclProSettings(lbl.clProSettings);

  AEdit = AForm.AddNewProEdit(AParent, 'Edt' + ATag, ADeger);
  AEdit.Align = alTop;
  AEdit.Height = AHeight;
  AEdit.Margins.Top = 5;
  AEdit.clProSettings.BorderColor = clAlphaColor.clHexToColor('#E5E7EB');
  AEdit.clProSettings.RoundHeight = 8;
  AEdit.clProSettings.RoundWidth = 8;
  AEdit.Margins.Left = 5;
  AEdit.Margins.Right = 5;
  AEdit.SetclProSettings(AEdit.clProSettings);
}

void WebSiteGitAction;
{
  TClomosyOS.OpenURL('https://konyaradar.netlify.app/');
}

void WhatsAppGitAction;
{
  TClomosyOS.OpenURL('+90 5416777543');
}

void MailGitAction;
{
  TClomosyOS.OpenURL('[email protected]');
}

void OncelikGuncelle;
var
  metin: String;
{
  metin = LowerCase(EditBaslik.Text + ' ' + MemoAciklama.Text);
  if (EditBaslik.Text == '' && MemoAciklama.Text == '') 
  { 
    LblOncelik.Text = 'Henüz Belirlenmedi'; 
    LblOncelik.clProSettings.FontColor = clAlphaColor.clHexToColor('#5D6D7E'); 
    PnlOncelik.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F2F4F4'); 
    PnlOncelik.clProSettings.BorderColor = clAlphaColor.clHexToColor('#D5D8DC'); 
  }
  else if (Pos('acil', metin) > 0 || Pos('tehlike', metin) > 0 || Pos('patlak', metin) > 0 || Pos('kaza', metin) > 0) 
  { 
    LblOncelik.Text = 'Yüksek Öncelik'; 
    LblOncelik.clProSettings.FontColor = clAlphaColor.clHexToColor('#C0392B'); 
    PnlOncelik.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FDEDEC'); 
    PnlOncelik.clProSettings.BorderColor = clAlphaColor.clHexToColor('#F5B7B1'); 
  }
  else if (Pos('boya', metin) > 0 || Pos('cicek', metin) > 0 || Pos('bilgi', metin) > 0) 
  { 
    LblOncelik.Text = 'Düşük Öncelik'; 
    LblOncelik.clProSettings.FontColor = clAlphaColor.clHexToColor('#27AE60'); 
    PnlOncelik.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#E9F7EF'); 
    PnlOncelik.clProSettings.BorderColor = clAlphaColor.clHexToColor('#ABEBC6'); 
  }
  else 
  { 
    LblOncelik.Text = 'Orta Öncelik'; 
    LblOncelik.clProSettings.FontColor = clAlphaColor.clHexToColor('#D35400'); 
    PnlOncelik.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FEF5E7'); 
    PnlOncelik.clProSettings.BorderColor = clAlphaColor.clHexToColor('#F5CBA7'); 
  }
  LblOncelik.SetclProSettings(LblOncelik.clProSettings); 
  PnlOncelik.SetclProSettings(PnlOncelik.clProSettings);
}
void FotografSec;

  Clomosy.ImageChooser(MainForm, ImgOnizleme); 
  LblFotoAcik.Visible = False; 
  ImgOnizleme.Visible = True; 

  PnlFotoBox.clProSettings.BackgroundColor = clAlphaColor.clWhite; 
  PnlFotoBox.clProSettings.BorderColor = clAlphaColor.clHexToColor('#27AE60'); 
  PnlFotoBox.SetclProSettings(PnlFotoBox.clProSettings); 
  secilenFotoBase64 = 'gercek_fotograf_secildi'; 
}

void KonumAl;
var
  konumVerisi: String;
{
  LblKonum.Text = 'Konum alınıyor...';
  LblKonum.clProSettings.FontColor = clAlphaColor.clHexToColor('#D35400');
  LblKonum.SetclProSettings(LblKonum.clProSettings);

  Clomosy.GetCurrentLocation; 
  konumVerisi = Clomosy.LocationValue;
  gpsEnlem  = clGetStringTo(konumVerisi, '|');
  gpsBoylam = clGetStringAfter(konumVerisi, '|');
  gpsEnlem  = clGetStringReplace(gpsEnlem, ',', '.');
  gpsBoylam = clGetStringReplace(gpsBoylam, ',', '.');
  
  if (gpsEnlem <> '' && gpsBoylam <> '')
  {
    LblKonum.Text = 'Konum alındı (' + Copy(gpsEnlem, 1, 6) + ', ' + Copy(gpsBoylam, 1, 6) + ')';
    LblKonum.clProSettings.FontColor = clAlphaColor.clHexToColor('#27AE60');
  }
  else
  {
    LblKonum.Text = 'Konum alınamadı. İzinleri kontrol edin.';
  }
  LblKonum.SetclProSettings(LblKonum.clProSettings);
}

void MenuRenkSifirla;
{
  BtnNavAnaSayfa.clProSettings.FontColor = clAlphaColor.clHexToColor('#A0AAB5'); 
  BtnNavSikayetler.clProSettings.FontColor = clAlphaColor.clHexToColor('#A0AAB5'); 
  BtnNavYeni.clProSettings.FontColor = clAlphaColor.clHexToColor('#A0AAB5'); 
  BtnNavProfil.clProSettings.FontColor = clAlphaColor.clHexToColor('#A0AAB5');

  BtnNavAnaSayfa.SetclProSettings(BtnNavAnaSayfa.clProSettings); 
  BtnNavSikayetler.SetclProSettings(BtnNavSikayetler.clProSettings); 
  BtnNavYeni.SetclProSettings(BtnNavYeni.clProSettings); 
  BtnNavProfil.SetclProSettings(BtnNavProfil.clProSettings);
}

void GoAnaSayfa;

  MenuRenkSifirla(); 
  BtnNavAnaSayfa.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFBF00'); 
  BtnNavAnaSayfa.SetclProSettings(BtnNavAnaSayfa.clProSettings); 
  
  // TclUnit yapısıyla sayfayı çağırıyoruz
  uAna.UnitName = 'AnasayfaUnit';
  uAna.CallerForm = MainForm;
  uAna.Run;
}

void GoSikayetler;

  MenuRenkSifirla(); 
  BtnNavSikayetler.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFBF00'); 
  BtnNavSikayetler.SetclProSettings(BtnNavSikayetler.clProSettings);
  
  uAna.UnitName = 'SikayetlerimUnit';
  uAna.CallerForm = MainForm;
  uAna.Run;
}

void GoYeni;

  MenuRenkSifirla(); 
  BtnNavYeni.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFBF00'); 
  BtnNavYeni.SetclProSettings(BtnNavYeni.clProSettings); 
  
  uAna.UnitName = 'YeniSikayetUnit';
  uAna.CallerForm = MainForm;
  uAna.Run;
}

void GoProfil;

  MenuRenkSifirla(); 
  BtnNavProfil.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFBF00'); 
  BtnNavProfil.SetclProSettings(BtnNavProfil.clProSettings); 
  
  uAna.UnitName = 'ProfilUnit';
  uAna.CallerForm = MainForm;
  uAna.Run;
}

 void KategorileriYukle;
var
  clRest: TclRest;
  response, jsonGelen: String;
  qry: TCLJSONQuery;
{
  CmbKategori.Items.Clear;
  CmbKategori.Items.Add('Kategori Seçin ▾');
    clRest = TclRest.Create;
    clRest.BaseURL = g_ApiUrl + '/api/kategoriler'; 
    clRest.Method = rmGet;
    clRest.Execute;
    response = clRest.Response;

    if (response <> '')
    {
      if (Pos('[', response) == 0) 
      {
        jsonGelen = '[' + response + ']';
      } 
      else 
      {
        jsonGelen = response;
      }
      qry = Clomosy.ClDataSetFromJSON(jsonGelen);
      if (qry <> nil)
      {
        if (qry.RecordCount > 0)
        {
          qry.First;
          while (not qry.EOF)
          {
            CmbKategori.Items.Add(qry.FieldByName('kategori_adi').AsString);
            qry.Next;
          }
        }
      }
    }
    CmbKategori.ItemIndex = 0;
}

void MahalleleriYukle;
var
  clRest: TclRest;
  response, jsonGelen: String;
  qry: TCLJSONQuery;
{
  CmbMahalle.Items.Clear;
  CmbMahalle.Items.Add('Mahalle Seçin ▾');
  CmbMahalle.ItemIndex = 0;
 
    clRest = TclRest.Create;
    clRest.BaseURL = g_ApiUrl + '/api/mahalleler'; 
    clRest.Method = rmGet;
    clRest.Execute;
    response = clRest.Response;
    if (response <> '')
    {
      if (Pos('[', response) == 0) 
      {
        jsonGelen = '[' + response + ']';
      } 
      else 
      {
        jsonGelen = response;
      }
      qry = Clomosy.ClDataSetFromJSON(jsonGelen);
      if (qry.RecordCount > 0)
      {
        qry.First;
        while (not qry.EOF)

        {
          CmbMahalle.Items.Add(qry.FieldByName('mahalle_adi').AsString);
          qry.Next;
        }
      }
    }
}

void HesapGuncelleAction;

  g_AdSoyad = EdtAdSoyad.Text; 
  if (LblProfilAd <> nil) { LblProfilAd.Text = g_AdSoyad; } 
  clShowMessage('Kaydedildi.'); 
  FormHesap.Close; 
}

void BildirimKaydetAction;

  clShowMessage('Bildirim ayarları güncellendi.'); 
  FormBildirim.Close; 
}

void AddSwitchRow(AForm, AParent, ATag, ATitle, ASub, IsActive, IsLast);
var
  lytRow: TclLayout; 
  pnlSwBg, pnlSwKnob, pnlLine: TclProPanel; 
  lblT, lblS: TclProLabel; 
  activeColor, passiveColor: String;
{
  activeColor = '#FFBF00'; passiveColor = '#D1D5DB';

  lytRow = AForm.AddNewLayout(AParent, 'LytR' + ATag); lytRow.Align = alTop; lytRow.Height = 70;

  lblT = AForm.AddNewProLabel(lytRow, 'LblT' + ATag, ATitle);
  lblT.Align = alTop; lblT.Height = 25; lblT.Margins.Left = 15; lblT.Margins.Top = 12;
  lblT.clProSettings.FontColor = clAlphaColor.clHexToColor('#1A2636'); lblT.clProSettings.FontSize = 14; 
  lblT.clProSettings.TextSettings.Font.Style = [fsBold]; lblT.SetclProSettings(lblT.clProSettings);

  lblS = AForm.AddNewProLabel(lytRow, 'LblS' + ATag, ASub);
  lblS.Align = alTop; lblS.Height = 20; lblS.Margins.Left = 15;
  lblS.clProSettings.FontColor = clAlphaColor.clHexToColor('#8A98A5'); lblS.clProSettings.FontSize = 11; 
  lblS.SetclProSettings(lblS.clProSettings);

  pnlSwBg = AForm.AddNewProPanel(lytRow, 'SwBg' + ATag);
  pnlSwBg.Align = alRight; pnlSwBg.Width = 46; pnlSwBg.Height = 24; pnlSwBg.Margins.Right = 15; pnlSwBg.Margins.Top = 22; pnlSwBg.Margins.Bottom = 22;

if (IsActive)
{
  pnlSwBg.clProSettings.BackgroundColor = clAlphaColor.clHexToColor(activeColor);
}
else
{
  pnlSwBg.clProSettings.BackgroundColor = clAlphaColor.clHexToColor(passiveColor);
}
  pnlSwBg.clProSettings.RoundHeight = 12; pnlSwBg.clProSettings.RoundWidth = 12; pnlSwBg.SetclProSettings(pnlSwBg.clProSettings);
  pnlSwKnob = AForm.AddNewProPanel(pnlSwBg, 'SwK' + ATag);
  pnlSwKnob.Width = 18; pnlSwKnob.Height = 18; pnlSwKnob.Margins.Top = 3;

if (IsActive)
{
  pnlSwKnob.Margins.Left = 24;
}
else
{
  pnlSwKnob.Margins.Left = 4;
}
  pnlSwKnob.clProSettings.BackgroundColor = clAlphaColor.clWhite; pnlSwKnob.clProSettings.RoundHeight = 9; 
  pnlSwKnob.clProSettings.RoundWidth = 9; pnlSwKnob.SetclProSettings(pnlSwKnob.clProSettings);

  if (not IsLast) {
    pnlLine = AForm.AddNewProPanel(AParent, 'Line' + ATag); pnlLine.Align = alTop; pnlLine.Height = 1; 
    pnlLine.Margins.Left = 15; pnlLine.Margins.Right = 15; pnlLine.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F2F4F4');
    pnlLine.SetclProSettings(pnlLine.clProSettings);
  }
}

void UpdateSwitchUI(ABg, AKnob, AState);
{
  if (AState) {
    ABg.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFBF00'); AKnob.Margins.Left = 22; AKnob.Margins.Right = 2;
  } else {
    ABg.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#D5D8DC'); AKnob.Margins.Left = 2; AKnob.Margins.Right = 22;
  }
  ABg.SetclProSettings(ABg.clProSettings); AKnob.SetclProSettings(AKnob.clProSettings); 
}

void BildirimSatiriEkle(AForm, AParent, ABg, AKnob, SID, SBaslik, SAlt, SEvent, IsOn, IsLast);
var
  pnlSatir, pnlAyrac: TclProPanel; 
  lblB, lblA: TclProLabel; 
  lytText: TclLayout;
{
  pnlSatir = AForm.AddNewProPanel(AParent, 'BSat_' + SID); 
  pnlSatir.Align = alTop; pnlSatir.Height = 70;
  pnlSatir.clProSettings.BackgroundColor = clAlphaColor.clNull; 
  pnlSatir.SetclProSettings(pnlSatir.clProSettings);

  ABg = AForm.AddNewProPanel(pnlSatir, 'BSwBg_' + SID);
  ABg.Align = alRight; ABg.Width = 48; ABg.Height = 26; 
  ABg.Margins.Right = 15; ABg.Margins.Top = 22; ABg.Margins.Bottom = 22;
  ABg.clProSettings.RoundHeight = 13; ABg.clProSettings.RoundWidth = 13;

  AKnob = AForm.AddNewProPanel(ABg, 'BSwKnob_' + SID); 
  AKnob.Align = alClient;
  AKnob.Margins.Top = 3; AKnob.Margins.Bottom = 3; 
  AKnob.clProSettings.RoundHeight = 10; AKnob.clProSettings.RoundWidth = 10;
  AKnob.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF'); 
  AKnob.SetclProSettings(AKnob.clProSettings);

  UpdateSwitchUI(ABg, AKnob, IsOn);

  lytText = AForm.AddNewLayout(pnlSatir, 'BLyt_' + SID); 
  lytText.Align = alClient; lytText.Margins.Left = 15; lytText.Margins.Top = 15;

  lblB = AForm.AddNewProLabel(lytText, 'BLblB_' + SID, SBaslik);
  lblB.Align = alTop; lblB.Height = 20; 
  lblB.clProSettings.FontColor = clAlphaColor.clHexToColor('#1A2636');
  lblB.clProSettings.FontSize = 13; lblB.SetclProSettings(lblB.clProSettings);

  lblA = AForm.AddNewProLabel(lytText, 'BLblA_' + SID, SAlt);
  lblA.Align = alTop; lblA.Height = 18; 
  lblA.clProSettings.FontColor = clAlphaColor.clHexToColor('#85929E');
  lblA.clProSettings.FontSize = 11; lblA.SetclProSettings(lblA.clProSettings);

  if (SEvent <> '') { 
    AForm.AddNewEvent(pnlSatir, tbeOnClick, SEvent); 
    AForm.AddNewEvent(ABg, tbeOnClick, SEvent); 
  }

  if (not IsLast) {
    pnlAyrac = AForm.AddNewProPanel(AParent, 'BAy_' + SID); 
    pnlAyrac.Align = alTop; pnlAyrac.Height = 1; 
    pnlAyrac.Margins.Left = 15; pnlAyrac.Margins.Right = 15; 
    pnlAyrac.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F2F4F4');
    pnlAyrac.SetclProSettings(pnlAyrac.clProSettings);
  }
}

void ToggleB4;

  g_NotifDuyuru = not g_NotifDuyuru; 
  UpdateSwitchUI(PnlSwBg4, PnlSwKnob4, g_NotifDuyuru); 
}

void ToggleB5;

  g_NotifEposta = not g_NotifEposta; 
  UpdateSwitchUI(PnlSwBg5, PnlSwKnob5, g_NotifEposta); 
}

void ToggleMevcutSifre;
{
  EdtMevcutSifre.Password = not EdtMevcutSifre.Password;
  if (EdtMevcutSifre.Password) {
    BtnGosterMevcut.clProSettings.TextSettings.Font.Style = []; 
  } else {
    BtnGosterMevcut.clProSettings.TextSettings.Font.Style = [fsStrikeOut];
  }
  BtnGosterMevcut.SetclProSettings(BtnGosterMevcut.clProSettings);
}
void ToggleYeniSifre;
{
  EdtYeniSifre.Password = not EdtYeniSifre.Password;
  if (EdtYeniSifre.Password) {
    BtnGosterYeni.clProSettings.TextSettings.Font.Style = []; 
  } else {
    BtnGosterYeni.clProSettings.TextSettings.Font.Style = [fsStrikeOut];
  }
  BtnGosterYeni.SetclProSettings(BtnGosterYeni.clProSettings);
}

void ToggleYeniTekrar;
{
  EdtYeniSifreTekrar.Password = not EdtYeniSifreTekrar.Password;
  if (EdtYeniSifreTekrar.Password) {
    BtnGosterYeniTekrar.clProSettings.TextSettings.Font.Style = []; 
  } else {
    BtnGosterYeniTekrar.clProSettings.TextSettings.Font.Style = [fsStrikeOut];
  }
  BtnGosterYeniTekrar.SetclProSettings(BtnGosterYeniTekrar.clProSettings);
}

void ToggleLoginSifre;
{
  EditSifre.Password = not EditSifre.Password;
  if (EditSifre.Password) {
    BtnGosterLogin.clProSettings.TextSettings.Font.Style = []; 
  } else {
    BtnGosterLogin.clProSettings.TextSettings.Font.Style = [fsStrikeOut];
  }
  BtnGosterLogin.SetclProSettings(BtnGosterLogin.clProSettings);
}

void ToggleKayitSifre;
{
  EdtSifre.Password = not EdtSifre.Password;
  if (EdtSifre.Password) {
    BtnGosterSifre.clProSettings.TextSettings.Font.Style = []; 
  } else {
    BtnGosterSifre.clProSettings.TextSettings.Font.Style = [fsStrikeOut];
  }
  BtnGosterSifre.SetclProSettings(BtnGosterSifre.clProSettings);
}

void ToggleKayitSifre2;
{
  EdtSifre2.Password = not EdtSifre2.Password;
  if (EdtSifre2.Password) {
    BtnGosterSifre2.clProSettings.TextSettings.Font.Style = []; 
  } else {
    BtnGosterSifre2.clProSettings.TextSettings.Font.Style = [fsStrikeOut];
  }
  BtnGosterSifre2.SetclProSettings(BtnGosterSifre2.clProSettings);
}

void ToggleMevcutSifreSafe;

  if (EdtMevcutSifre <> nil) EdtMevcutSifre.Password = not EdtMevcutSifre.Password; 
}

void ToggleYeniSifreSafe;

  if (EdtYeniSifre <> nil) EdtYeniSifre.Password = not EdtYeniSifre.Password; 
}

void ToggleYeniTekrarSafe;

  if (EdtYeniSifreTekrar <> nil) EdtYeniSifreTekrar.Password = not EdtYeniSifreTekrar.Password; 
}

void SifreEditGrupEkle(AForm, AParent, AEdit, ABtn, ABaslik, ATag, AToggleOlay);
var
  lbl: TclProLabel; 
  pnlEdit: TclProPanel;
{
  lbl = AForm.AddNewProLabel(AParent, 'LblEdt' + ATag, ABaslik);
  lbl.Align = alTop; lbl.Height = 20; lbl.Margins.Top = 15;
  lbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#ABB2B9');
  lbl.clProSettings.FontSize = 11; lbl.SetclProSettings(lbl.clProSettings);

  pnlEdit = AForm.AddNewProPanel(AParent, 'PnlEdt' + ATag);
  pnlEdit.Align = alTop; pnlEdit.Height = 45; pnlEdit.Margins.Top = 5;
  pnlEdit.clProSettings.BackgroundColor = clAlphaColor.clWhite;
  pnlEdit.clProSettings.BorderColor = clAlphaColor.clHexToColor('#E5E7EB');
  pnlEdit.clProSettings.BorderWidth = 1; pnlEdit.clProSettings.RoundHeight = 8; 
  pnlEdit.clProSettings.RoundWidth = 8; pnlEdit.SetclProSettings(pnlEdit.clProSettings);

  ABtn = AForm.AddNewProButton(pnlEdit, 'BtnGoster' + ATag, '👁');
  ABtn.Align = alRight; ABtn.Width = 40; 
  ABtn.clProSettings.BackgroundColor = clAlphaColor.clNull;
  ABtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#85929E'); ABtn.clProSettings.FontSize = 16;
  ABtn.SetclProSettings(ABtn.clProSettings);
  AForm.AddNewEvent(ABtn, tbeOnClick, AToggleOlay);

  AEdit = AForm.AddNewProEdit(pnlEdit, 'Edt' + ATag, '');
  AEdit.Align = alClient; AEdit.Margins.Left = 10; AEdit.Margins.Right = 5;
  AEdit.Password = True; AEdit.clProSettings.BackgroundColor = clAlphaColor.clNull;
  AEdit.clProSettings.BorderColor = clAlphaColor.clNull; AEdit.SetclProSettings(AEdit.clProSettings);

}

void SifreGuncelleAction;
var
  clRest: TclRest; 
  jsonBody, response: String;
{
  if (EdtMevcutSifre.Text == '' || EdtYeniSifre.Text == '') { ShowMessage('Lütfen tüm alanları doldurunuz.');  }
  if (EdtYeniSifre.Text <> EdtYeniSifreTekrar.Text) { ShowMessage('Yeni şifreler birbiriyle eşleşmiyor.');  }

    clRest = TclRest.Create;
    clRest.BaseURL = g_ApiUrl + '/api/kullanici-guncelle/' + IntToStr(g_KullaniciId);
    clRest.Accept = 'application/json'; clRest.Method = rmPut;
    jsonBody = '{"ad_soyad": "' + g_AdSoyad + '", "tc_no": "' + g_KullaniciTc + '", "telefon": "' + g_Telefon + '", "eposta": "' + g_Email + '", "sifre": "' + EdtYeniSifre.Text + '"}';

    clRest.AddBody(jsonBody, 'application/json'); clRest.Execute; response = clRest.Response;

    if (response <> '' && Pos('başarıyla', response) > 0) {
      ShowMessage('Şifreniz güncellendi.');
      if (FormSifre <> nil) FormSifre.Close;
    } else { ShowMessage('Hata: ' + response); }
  } 

void MenuSatiriEkle(pGrup, sID, sBaslik, sOlay, isLast);
var
  pSatir, pAyrac: TclProPanel; 
  lblMetin, lblOk: TclProLabel;
{
  pSatir = MainForm.AddNewProPanel(pGrup, 'PS_' + sID); 
  pSatir.Align = alTop; pSatir.Height = 50; pSatir.clProSettings.BackgroundColor = clAlphaColor.clNull; 
  pSatir.SetclProSettings(pSatir.clProSettings);

  lblMetin = MainForm.AddNewProLabel(pSatir, 'LblM_' + sID, sBaslik);
  lblMetin.Align = alLeft; lblMetin.Width = 250; lblMetin.Margins.Left = 15;
  lblMetin.clProSettings.FontColor = clAlphaColor.clHexToColor('#1A2636'); lblMetin.clProSettings.FontSize = 14; 
  lblMetin.clProSettings.FontHorzAlign = palLeading; lblMetin.clProSettings.FontVertAlign = palCenter; 
  lblMetin.SetclProSettings(lblMetin.clProSettings);

  lblOk = MainForm.AddNewProLabel(pSatir, 'OK_' + sID, '›');
  lblOk.Align = alRight; lblOk.Width = 30; lblOk.Margins.Right = 10;
  lblOk.clProSettings.FontColor = clAlphaColor.clHexToColor('#ABB2B9'); lblOk.clProSettings.FontSize = 18;
  lblOk.clProSettings.FontHorzAlign = palCenter; lblOk.clProSettings.FontVertAlign = palCenter; 
  lblOk.SetclProSettings(lblOk.clProSettings);

  if (sOlay <> '') { 
    MainForm.AddNewEvent(pSatir, tbeOnClick, sOlay); 
    MainForm.AddNewEvent(lblMetin, tbeOnClick, sOlay); 
    MainForm.AddNewEvent(lblOk, tbeOnClick, sOlay); 
  }

  if (not isLast) {
    pAyrac = MainForm.AddNewProPanel(pGrup, 'AY_' + sID); 
    pAyrac.Align = alTop; pAyrac.Height = 1; pAyrac.Margins.Left = 15;
    pAyrac.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F2F4F4'); 
    pAyrac.SetclProSettings(pAyrac.clProSettings);
  }
}

void GirisEkraniniCiz;
var
  ScrollLogin: TclVertScrollBox;
  PnlHeroLogin, PnlKartLogin: TclProPanel;
  ImgLogo: TclImage;
  LblAppAdi, LblAppAlt, LblEmail, LblSifre: TclProLabel;
  BtnGosterLogin, BtnGiris, BtnKayitOl: TclProButton;
  LytBodyLogin: TclLayout;
{
  MainForm.SetFormColor('#414446', '', clGNone); PnlBottomMenu.Visible = False; LytMainContent.DeleteChildren;
  ScrollLogin = MainForm.AddNewVertScrollBox(LytMainContent, 'ScrollLogin'); ScrollLogin.Align = alClient; 
  PnlHeroLogin = MainForm.AddNewProPanel(ScrollLogin, 'PnlHeroLogin'); PnlHeroLogin.Align = alTop; PnlHeroLogin.Height = 340; PnlHeroLogin.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#414446'); PnlHeroLogin.SetclProSettings(PnlHeroLogin.clProSettings);
  ImgLogo = MainForm.AddNewImage(PnlHeroLogin, 'ImgLogo'); ImgLogo.Align = alTop; ImgLogo.Margins.Top = 80; ImgLogo.Height = 100;
  MainForm.SetImage(ImgLogo, 'https://upload.wikimedia.org/wikipedia/tr/2/2c/Konya_B%C3%BCy%C3%BCk%C5%9Fehir_Belediyesi_logosu.png');

  LblAppAdi = MainForm.AddNewProLabel(PnlHeroLogin, 'LblAppAdi', 'Belediye Çözüm'); LblAppAdi.Align = alTop; LblAppAdi.Height = 40; LblAppAdi.Margins.Top = 15; LblAppAdi.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFBF00'); LblAppAdi.clProSettings.FontSize = 28; LblAppAdi.clProSettings.FontHorzAlign = palCenter; LblAppAdi.clProSettings.TextSettings.Font.Style = [fsBold]; LblAppAdi.SetclProSettings(LblAppAdi.clProSettings);
  LblAppAlt = MainForm.AddNewProLabel(PnlHeroLogin, 'LblAppAlt', 'Konya Büyükşehir Belediyesi'); LblAppAlt.Align = alTop; LblAppAlt.Height = 30; LblAppAlt.clProSettings.FontColor = clAlphaColor.clHexToColor('#E5E7EB'); LblAppAlt.clProSettings.FontSize = 14; LblAppAlt.clProSettings.FontHorzAlign = palCenter; LblAppAlt.SetclProSettings(LblAppAlt.clProSettings);
  LytBodyLogin = MainForm.AddNewLayout(ScrollLogin, 'LytBodyLogin'); LytBodyLogin.Align = alTop; LytBodyLogin.Height = 310; LytBodyLogin.Margins.Left = 30; LytBodyLogin.Margins.Right = 30; LytBodyLogin.Margins.Top = -20; 
  PnlKartLogin = MainForm.AddNewProPanel(LytBodyLogin, 'PnlKartLogin'); PnlKartLogin.Align = alClient; PnlKartLogin.clProSettings.BackgroundColor = clAlphaColor.clWhite; PnlKartLogin.clProSettings.RoundHeight = 10; PnlKartLogin.clProSettings.RoundWidth = 10; PnlKartLogin.clProSettings.BorderColor = clAlphaColor.clHexToColor('#E5E7EB'); PnlKartLogin.clProSettings.BorderWidth = 1; PnlKartLogin.SetclProSettings(PnlKartLogin.clProSettings);
  LblEmail = MainForm.AddNewProLabel(PnlKartLogin, 'LblEmail', 'TC Kimlik No / E-posta'); LblEmail.Align = alTop; LblEmail.Height = 25; LblEmail.Margins.Top = 20; LblEmail.Margins.Left = 20; LblEmail.clProSettings.FontColor = clAlphaColor.clHexToColor('#4B5563'); LblEmail.clProSettings.FontSize = 13; LblEmail.SetclProSettings(LblEmail.clProSettings);
  EditEmail = MainForm.AddNewProEdit(PnlKartLogin, 'EditEmail', '[email protected]'); EditEmail.Align = alTop; EditEmail.Height = 45; EditEmail.Margins.Top = 5; EditEmail.Margins.Left = 20; EditEmail.Margins.Right = 20; EditEmail.clProSettings.BorderColor = clAlphaColor.clHexToColor('#D1D5DB'); EditEmail.clProSettings.BorderWidth = 1; EditEmail.clProSettings.RoundHeight = 5; EditEmail.SetclProSettings(EditEmail.clProSettings);
  LblSifre = MainForm.AddNewProLabel(PnlKartLogin, 'LblSifre', 'Şifre'); LblSifre.Align = alTop; LblSifre.Height = 25; LblSifre.Margins.Top = 15; LblSifre.Margins.Left = 20; LblSifre.clProSettings.FontColor = clAlphaColor.clHexToColor('#4B5563'); LblSifre.clProSettings.FontSize = 13; LblSifre.SetclProSettings(LblSifre.clProSettings); 
  EditSifre = MainForm.AddNewProEdit(PnlKartLogin, 'EditSifre', '******'); EditSifre.Align = alTop; EditSifre.Height = 45; EditSifre.Margins.Top = 5; EditSifre.Margins.Left = 20; EditSifre.Margins.Right = 20; EditSifre.clProSettings.BorderColor = clAlphaColor.clHexToColor('#D1D5DB'); EditSifre.clProSettings.BorderWidth = 1; EditSifre.clProSettings.RoundHeight = 5; EditSifre.Password = True; EditSifre.SetclProSettings(EditSifre.clProSettings);
  BtnGosterLogin = MainForm.AddNewProButton(EditSifre, 'BtnGosterLogin', '👁'); BtnGosterLogin.Align = alRight; BtnGosterLogin.Width = 40; BtnGosterLogin.clProSettings.BackgroundColor = clAlphaColor.clNull; BtnGosterLogin.clProSettings.FontColor = clAlphaColor.clHexToColor('#85929E'); BtnGosterLogin.clProSettings.FontSize = 16; BtnGosterLogin.SetclProSettings(BtnGosterLogin.clProSettings);
  MainForm.AddNewEvent(BtnGosterLogin, tbeOnClick, 'ToggleLoginSifre');
  BtnGiris = MainForm.AddNewProButton(PnlKartLogin, 'BtnGiris', 'Giriş Yap'); BtnGiris.Align = alTop; BtnGiris.Height = 55; BtnGiris.Margins.Top = 35; BtnGiris.Margins.Left = 20; BtnGiris.Margins.Right = 20; BtnGiris.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFBF00'); BtnGiris.clProSettings.FontColor = clAlphaColor.clBlack; BtnGiris.clProSettings.RoundHeight = 8; BtnGiris.clProSettings.FontSize = 16; BtnGiris.clProSettings.TextSettings.Font.Style = [fsBold]; BtnGiris.SetclProSettings(BtnGiris.clProSettings);
  MainForm.AddNewEvent(BtnGiris, tbeOnClick, 'GirisYapAction');
  BtnKayitOl = MainForm.AddNewProButton(ScrollLogin, 'BtnKayitOl', 'Hesabınız yok mu? Kayıt Ol'); BtnKayitOl.Align = alTop; BtnKayitOl.Height = 40; BtnKayitOl.Margins.Top = 10; BtnKayitOl.clProSettings.BackgroundColor = clAlphaColor.clNull; BtnKayitOl.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFBF00'); BtnKayitOl.clProSettings.FontSize = 13; BtnKayitOl.clProSettings.FontHorzAlign = palCenter; BtnKayitOl.SetclProSettings(BtnKayitOl.clProSettings);
  MainForm.AddNewEvent(BtnKayitOl, tbeOnClick, 'KayitOlEkrani');
}

 void KayitOlKontrol;
var
  clRest: TclRest;
  jsonBody, response: String;
{
  if (EdtAd.Text == '' || EdtSoyad.Text == '') { ShowMessage('Lütfen Ad ve Soyad alanlarını doldurunuz.'); Exit; }
  if (EdtTC.Text == '') { ShowMessage('Lütfen TC Kimlik numaranızı giriniz.'); Exit; }
  if (EdtMail.Text == '') { ShowMessage('Lütfen E-posta adresinizi giriniz.'); Exit; }
  if (EdtTel.Text == '') { ShowMessage('Lütfen Telefon numaranızı giriniz.'); Exit; }
  if (CmbMahalle.ItemIndex < 0) { ShowMessage('Lütfen geçerli bir mahalle seçiniz.'); Exit; }
  if (EdtSifre.Text == '' || EdtSifre2.Text == '') { ShowMessage('Lütfen şifre alanlarını doldurunuz.'); Exit; }
  if (EdtSifre.Text <> EdtSifre2.Text) { ShowMessage('Girdiğiniz şifreler birbiriyle eşleşmiyor.'); Exit; }
  if (not ChkKVKK.IsChecked) { ShowMessage('Devam etmek için KVKK Aydınlatma Metnini onaylamanız gerekmektedir.'); Exit; }

BtnKayit.Enabled = False;
clRest = TclRest.Create;
clRest.BaseURL = g_ApiUrl + '/api/kayit';
clRest.Accept = 'application/json';
clRest.Method = rmPost;

    jsonBody = '{"ad_soyad": "' + EdtAd.Text + ' ' + EdtSoyad.Text + '", "tc_no": "' + EdtTC.Text + '", "mahalle_id": ' + IntToStr(CmbMahalle.ItemIndex + 1) + ', "telefon": "' + EdtTel.Text + '", "eposta": "' + EdtMail.Text + '", "sifre": "' + EdtSifre.Text + '"}';
   
    clRest.AddBody(jsonBody, 'application/json');
    clRest.Execute;
    response = clRest.Response;
   
    if (response <> '') {
      if (Pos('başarıyla', response) > 0) {
        ShowMessage('Kayıt Başarılı!');
        // GirisEkraniniCiz();
      }
      else {
        ShowMessage(response);
      }
    } else {
      ShowMessage('Sunucudan boş yanıt döndü veya bağlantı kurulamadı.');
    }
  BtnKayit.Enabled = True;
}


void KayitOlEkrani;
var
  ScrollKayit: TclVertScrollBox;
  PnlHero, PnlForm, LytAdSoyad, LytMahalleKapsayici, LytKVKK: TclProPanel;
  ImgLogo: TclImage;
  LblTitle, LblAd, LblSoyad, LblTC, LblMail, LblTel, LblMah, LblSifre, LblSifre2, LblKVKKDuz, LblFooterYazi: TclProLabel;
  EdtAd, EdtSoyad, EdtTC, EdtMail, EdtTel, EdtSifre, EdtSifre2: TclProEdit;
  BtnGosterSifre, BtnGosterSifre2, BtnKVKKLink, BtnKayit, BtnGirisYonlendir: TclProButton;
{

  MainForm.SetFormColor('#414446', '', clGNone); 
  LytMainContent.DeleteChildren();
  ScrollKayit = MainForm.AddNewVertScrollBox(LytMainContent, 'ScrollKayit'); 
  ScrollKayit.Align = alClient;

  PnlHero = MainForm.AddNewProPanel(ScrollKayit, 'PnlHero');
  PnlHero.Align = alTop; PnlHero.Height = 180; 
  PnlHero.clProSettings.BackgroundColor = clAlphaColor.clNull; 
  PnlHero.SetclProSettings(PnlHero.clProSettings); 

  ImgLogo = MainForm.AddNewImage(PnlHero, 'ImgLogo');
  ImgLogo.Align = alTop; ImgLogo.Height = 70; ImgLogo.Margins.Top = 20;
  MainForm.SetImage(ImgLogo, 'https://upload.wikimedia.org/wikipedia/tr/2/2c/Konya_B%C3%BCy%C3%BCk%C5%9Fehir_Belediyesi_logosu.png');

  LblTitle = MainForm.AddNewProLabel(PnlHero, 'LblTitle', 'Belediye Çözüm');
  LblTitle.Align = alTop; LblTitle.Height = 30; LblTitle.Margins.Top = 15; 
  LblTitle.clProSettings.FontColor = clAlphaColor.clWhite;
  LblTitle.clProSettings.FontSize = 22; LblTitle.clProSettings.FontHorzAlign = palCenter;
  LblTitle.clProSettings.TextSettings.Font.Style = [fsBold]; 
  LblTitle.SetclProSettings(LblTitle.clProSettings);

  PnlForm = MainForm.AddNewProPanel(ScrollKayit, 'PnlForm');
  PnlForm.Align = alTop; PnlForm.Height = 680; 
  PnlForm.Margins.Left = 20; PnlForm.Margins.Right = 20; PnlForm.Margins.Top = 10;
  PnlForm.clProSettings.BackgroundColor = clAlphaColor.clWhite; 
  PnlForm.clProSettings.RoundHeight = 15; PnlForm.clProSettings.RoundWidth = 15;
  PnlForm.clProSettings.BorderColor = clAlphaColor.clHexToColor('#E5E7EB'); 
  PnlForm.clProSettings.BorderWidth = 1; 
  PnlForm.SetclProSettings(PnlForm.clProSettings);

  LytAdSoyad = MainForm.AddNewProPanel(PnlForm, 'LytAdSoyad');
  LytAdSoyad.Align = alTop; LytAdSoyad.Height = 75; LytAdSoyad.Margins.Top = 25;
  LytAdSoyad.clProSettings.BackgroundColor = clAlphaColor.clNull; 
  LytAdSoyad.SetclProSettings(LytAdSoyad.clProSettings);

  LblAd = MainForm.AddNewProLabel(LytAdSoyad, 'LblAd', 'Ad');
  LblAd.Align = alNone; LblAd.Position.X = 15; LblAd.Position.Y = 5; 
  LblAd.clProSettings.FontSize = 11; LblAd.SetclProSettings(LblAd.clProSettings);

  EdtAd = MainForm.AddNewProEdit(LytAdSoyad, 'EdtAd', '');
  EdtAd.Align = alNone; EdtAd.Width = 140; EdtAd.Height = 40; 
  EdtAd.Position.X = 15; EdtAd.Position.Y = 25;
  EdtAd.clProSettings.BorderColor = clAlphaColor.clHexToColor('#D1D5DB'); 
  EdtAd.clProSettings.BorderWidth = 1; EdtAd.clProSettings.RoundHeight = 5; 
  EdtAd.SetclProSettings(EdtAd.clProSettings);

  LblSoyad = MainForm.AddNewProLabel(LytAdSoyad, 'LblSoyad', 'Soyad');
  LblSoyad.Align = alNone; LblSoyad.Position.X = 165; LblSoyad.Position.Y = 5; 
  LblSoyad.clProSettings.FontSize = 11; LblSoyad.SetclProSettings(LblSoyad.clProSettings);

  EdtSoyad = MainForm.AddNewProEdit(LytAdSoyad, 'EdtSoyad', '');
  EdtSoyad.Align = alNone; EdtSoyad.Width = 140; EdtSoyad.Height = 40; 
  EdtSoyad.Position.X = 165; EdtSoyad.Position.Y = 25;
  EdtSoyad.clProSettings.BorderColor = clAlphaColor.clHexToColor('#D1D5DB'); 
  EdtSoyad.clProSettings.BorderWidth = 1; EdtSoyad.clProSettings.RoundHeight = 5; 
  EdtSoyad.SetclProSettings(EdtSoyad.clProSettings);

  LblTC = MainForm.AddNewProLabel(PnlForm, 'LblTC', 'TC Kimlik No');
  LblTC.Align = alTop; LblTC.Margins.Left = 15; LblTC.Margins.Top = 10; 
  LblTC.clProSettings.FontSize = 11; LblTC.SetclProSettings(LblTC.clProSettings);

  EdtTC = MainForm.AddNewProEdit(PnlForm, 'EdtTC', '');
  EdtTC.Align = alTop; EdtTC.Height = 40; EdtTC.Margins.Left = 15; EdtTC.Margins.Right = 15;
  EdtTC.clProSettings.BorderColor = clAlphaColor.clHexToColor('#D1D5DB'); 
  EdtTC.clProSettings.BorderWidth = 1; EdtTC.SetclProSettings(EdtTC.clProSettings);

  LblMail = MainForm.AddNewProLabel(PnlForm, 'LblMail', 'E-Posta');
  LblMail.Align = alTop; LblMail.Margins.Left = 15; LblMail.Margins.Top = 10; 
  LblMail.clProSettings.FontSize = 11; LblMail.SetclProSettings(LblMail.clProSettings);

  EdtMail = MainForm.AddNewProEdit(PnlForm, 'EdtMail', '');
  EdtMail.Align = alTop; EdtMail.Height = 40; EdtMail.Margins.Left = 15; EdtMail.Margins.Right = 15;
  EdtMail.clProSettings.BorderColor = clAlphaColor.clHexToColor('#D1D5DB'); 
  EdtMail.clProSettings.BorderWidth = 1; EdtMail.SetclProSettings(EdtMail.clProSettings);

  LblTel = MainForm.AddNewProLabel(PnlForm, 'LblTel', 'Telefon');
  LblTel.Align = alTop; LblTel.Margins.Left = 15; LblTel.Margins.Top = 10; 
  LblTel.clProSettings.FontSize = 11; LblTel.SetclProSettings(LblTel.clProSettings);

  EdtTel = MainForm.AddNewProEdit(PnlForm, 'EdtTel', '');
  EdtTel.Align = alTop; EdtTel.Height = 40; EdtTel.Margins.Left = 15; EdtTel.Margins.Right = 15;
  EdtTel.clProSettings.BorderColor = clAlphaColor.clHexToColor('#D1D5DB'); 
  EdtTel.clProSettings.BorderWidth = 1; EdtTel.SetclProSettings(EdtTel.clProSettings);

  LytMahalleKapsayici = MainForm.AddNewProPanel(PnlForm, 'LytMahalleKapsayici');
  LytMahalleKapsayici.Align = alTop; LytMahalleKapsayici.Margins.Top = 15; LytMahalleKapsayici.Height = 80;
  LytMahalleKapsayici.clProSettings.BackgroundColor = clAlphaColor.clNull; 
  LytMahalleKapsayici.SetclProSettings(LytMahalleKapsayici.clProSettings);

  LblMah = MainForm.AddNewProLabel(LytMahalleKapsayici, 'LblMah', 'Mahalle');
  LblMah.Align = alTop; LblMah.Margins.Left = 15; 
  LblMah.clProSettings.FontSize = 11; LblMah.SetclProSettings(LblMah.clProSettings);

  CmbMahalle = MainForm.AddNewComboBox(LytMahalleKapsayici, 'CmbMahalleKayit');
  CmbMahalle.Align = alTop; CmbMahalle.Height = 40; 
  CmbMahalle.Margins.Left = 15; CmbMahalle.Margins.Right = 15; CmbMahalle.Margins.Top = 5;
  CmbMahalle.AddItem('Seçiniz', '0'); CmbMahalle.ItemIndex = 0; 
  MahalleleriYukle();

  LblSifre = MainForm.AddNewProLabel(PnlForm, 'LblSifre', 'Şifre');
  LblSifre.Align = alTop; LblSifre.Margins.Left = 15; LblSifre.Margins.Top = 10; 
  LblSifre.clProSettings.FontSize = 11; LblSifre.SetclProSettings(LblSifre.clProSettings);

  EdtSifre = MainForm.AddNewProEdit(PnlForm, 'EdtSifre', '');
  EdtSifre.Align = alTop; EdtSifre.Height = 40; EdtSifre.Margins.Left = 15; EdtSifre.Margins.Right = 15; EdtSifre.Password = True;
  EdtSifre.clProSettings.BorderColor = clAlphaColor.clHexToColor('#D1D5DB'); 
  EdtSifre.clProSettings.BorderWidth = 1; EdtSifre.SetclProSettings(EdtSifre.clProSettings);

  BtnGosterSifre = MainForm.AddNewProButton(EdtSifre, 'BtnGosterSifre', '👁');
  BtnGosterSifre.Align = alRight; BtnGosterSifre.Width = 35; 
  BtnGosterSifre.clProSettings.BackgroundColor = clAlphaColor.clNull;
  BtnGosterSifre.clProSettings.FontColor = clAlphaColor.clHexToColor('#85929E'); 
  BtnGosterSifre.SetclProSettings(BtnGosterSifre.clProSettings);
  MainForm.AddNewEvent(BtnGosterSifre, tbeOnClick, 'ToggleKayitSifre');

  LblSifre2 = MainForm.AddNewProLabel(PnlForm,'LblSifre2', 'Şifre Tekrar');
  LblSifre2.Align = alTop; LblSifre2.Margins.Left = 15; LblSifre2.Margins.Top = 10; 
  LblSifre2.clProSettings.FontSize = 11; LblSifre2.SetclProSettings(LblSifre2.clProSettings);

  EdtSifre2 = MainForm.AddNewProEdit(PnlForm, 'EdtSifre2', '');
  EdtSifre2.Align = alTop; EdtSifre2.Height = 40; EdtSifre2.Margins.Left = 15; EdtSifre2.Margins.Right = 15; EdtSifre2.Password = True;
  EdtSifre2.clProSettings.BorderColor = clAlphaColor.clHexToColor('#D1D5DB'); 
  EdtSifre2.clProSettings.BorderWidth = 1; EdtSifre2.SetclProSettings(EdtSifre2.clProSettings);

  BtnGosterSifre2 = MainForm.AddNewProButton(EdtSifre2, 'BtnGosterSifre2', '👁');
  BtnGosterSifre2.Align = alRight; BtnGosterSifre2.Width = 35; 
  BtnGosterSifre2.clProSettings.BackgroundColor = clAlphaColor.clNull;
  BtnGosterSifre2.clProSettings.FontColor = clAlphaColor.clHexToColor('#85929E'); 
  BtnGosterSifre2.SetclProSettings(BtnGosterSifre2.clProSettings);
  MainForm.AddNewEvent(BtnGosterSifre2, tbeOnClick, 'ToggleKayitSifre2');

  LytKVKK = MainForm.AddNewProPanel(PnlForm, 'LytKVKK');
  LytKVKK.Align = alTop; LytKVKK.Height = 40; LytKVKK.Margins.Top = 10; 
  LytKVKK.clProSettings.BackgroundColor = clAlphaColor.clNull; 
  LytKVKK.SetclProSettings(LytKVKK.clProSettings);

  ChkKVKK = MainForm.AddNewCheckBox(LytKVKK, 'ChkKVKK', '');
  ChkKVKK.Align = alNone; ChkKVKK.Width = 25; ChkKVKK.Height = 25; 
  ChkKVKK.Position.X = 15; ChkKVKK.Position.Y = 10;

  BtnKVKKLink = MainForm.AddNewProButton(LytKVKK, 'BtnKVKKLink', 'KVKK Aydınlatma Metnini');
  BtnKVKKLink.Align = alNone; BtnKVKKLink.Width = 115; BtnKVKKLink.Height = 40; 
  BtnKVKKLink.Position.X = 45; BtnKVKKLink.Position.Y = 2;
  BtnKVKKLink.clProSettings.BackgroundColor = clAlphaColor.clNull; 
  BtnKVKKLink.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFBF00');
  BtnKVKKLink.clProSettings.FontSize = 10; BtnKVKKLink.clProSettings.FontHorzAlign = alLeft; 
  BtnKVKKLink.SetclProSettings(BtnKVKKLink.clProSettings);
  MainForm.AddNewEvent(BtnKVKKLink, tbeOnClick, 'ShowKVKKMessage');

  LblKVKKDuz = MainForm.AddNewProLabel(LytKVKK, 'LblKVKKDuz', 'okudum ve onaylıyorum.');
  LblKVKKDuz.Align = alNone; LblKVKKDuz.Width = 140; LblKVKKDuz.Height = 40; 
  LblKVKKDuz.Position.X = 130; LblKVKKDuz.Position.Y = 16;
  LblKVKKDuz.clProSettings.FontSize = 10; LblKVKKDuz.clProSettings.FontColor = clAlphaColor.clGray; 
  LblKVKKDuz.clProSettings.FontHorzAlign = alLeft; LblKVKKDuz.SetclProSettings(LblKVKKDuz.clProSettings);

  BtnKayit = MainForm.AddNewProButton(PnlForm, 'BtnKayit', 'Hesap Oluştur');
  BtnKayit.Align = alTop; BtnKayit.Height = 50; 
  BtnKayit.Margins.Top = 10; BtnKayit.Margins.Left = 15; BtnKayit.Margins.Right = 15;
  BtnKayit.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFBF00'); 
  BtnKayit.clProSettings.FontColor = clAlphaColor.clBlack;
  BtnKayit.clProSettings.RoundHeight = 10; BtnKayit.clProSettings.TextSettings.Font.Style = [fsBold]; 
  BtnKayit.SetclProSettings(BtnKayit.clProSettings);

  LblFooterYazi = MainForm.AddNewProLabel(ScrollKayit, 'LblFooterYazi', 'Zaten hesabın var mı?');
  LblFooterYazi.Align = alTop; LblFooterYazi.Height = 20; LblFooterYazi.Margins.Top = 15; 
  LblFooterYazi.clProSettings.FontHorzAlign = palCenter; LblFooterYazi.clProSettings.FontColor = clAlphaColor.clGray; 
  LblFooterYazi.SetclProSettings(LblFooterYazi.clProSettings);

  BtnGirisYonlendir = MainForm.AddNewProButton(ScrollKayit, 'BtnGirisYonlendir', 'Giriş Yap');
  BtnGirisYonlendir.Align = alTop; BtnGirisYonlendir.Height = 55; BtnGirisYonlendir.Margins.Bottom = 30; 
  BtnGirisYonlendir.clProSettings.BackgroundColor = clAlphaColor.clNull;
  BtnGirisYonlendir.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFBF00'); 
  BtnGirisYonlendir.clProSettings.FontSize = 16;
  BtnGirisYonlendir.clProSettings.TextSettings.Font.Style = [fsBold]; 
  BtnGirisYonlendir.SetclProSettings(BtnGirisYonlendir.clProSettings);
  MainForm.AddNewEvent(BtnGirisYonlendir, tbeOnClick, 'GirisEkraniniCiz');
  MainForm.AddNewEvent(BtnKayit, tbeOnClick, 'KayitOlKontrol');
}

void ShowKVKKMessage;
{
  ShowMessage('Bu aydınlatma metni...');
}

void GirisYapAction;
var
  clRest: TclRest; 
  jsonGelen, responseBody, strKullanici: String; 
  qryKullanici: TCLJSONQuery; 
  tempMahId: Integer;
  posKullanici: Integer;
{
  if ((EditEmail.Text == '') || (EditSifre.Text == '')) {
    ShowMessage('Lütfen e-posta ve şifrenizi girin.');
    Exit;
  }
  BtnGiris.Enabled = False; 
  BtnGiris.Text = 'Giriş Yapılıyor...';
    clRest = TclRest.Create; 
    clRest.BaseURL = g_ApiUrl + '/api/giris';
    clRest.Accept = 'application/json'; 
    clRest.Method = rmPost;
    responseBody = '{"eposta": "' + EditEmail.Text + '", "sifre": "' + EditSifre.Text + '"}';
    clRest.AddBody(responseBody, 'application/json'); 
    clRest.Execute; 
    jsonGelen = clRest.Response;
    posKullanici = Pos('"kullanici":', jsonGelen);
    if ((jsonGelen <> '') && (posKullanici > 0)) 
    {
      strKullanici = Copy(jsonGelen, posKullanici + 12, Length(jsonGelen)); 
      strKullanici = Copy(strKullanici, 1, Pos('}', strKullanici)); 
      if (strKullanici <> '') 
      {
          strKullanici = '[' + strKullanici + ']'; 
          qryKullanici = Clomosy.ClDataSetFromJSON(strKullanici);

          if (qryKullanici.RecordCount > 0) 
          {
            g_KullaniciId = qryKullanici.FieldByName('id').AsInteger;
            g_AdSoyad = qryKullanici.FieldByName('ad_soyad').AsString;
            g_Email = qryKullanici.FieldByName('eposta').AsString;
            g_KullaniciTc = qryKullanici.FieldByName('tc_no').AsString;
            g_Telefon = qryKullanici.FieldByName('telefon').AsString;

            if (CmbMahalle <> nil) 
            {
              tempMahId = qryKullanici.FieldByName('mahalle_id').AsInteger;
              if (tempMahId > 0) 
              {
                 g_MahalleAdi = 'Mahalle Kayıtlı'; 
              }
            }

            MainForm.SetFormColor('#F4F6F8', '', clGNone); 
            PnlBottomMenu.Visible = True; 
            GoAnaSayfa();
          }
      }
    } 
    else 
    { 
      ShowMessage('Giriş başarısız. Bilgilerinizi kontrol edin.'); 
    }

  BtnGiris.Enabled = True; 
  BtnGiris.Text = 'Giriş Yap';
}

void CikisYap;
{
  ShowMessage('Oturum kapatıldı.');
  GirisEkraniniCiz();
}

{
  g_ApiUrl = 'https://belediye-backend-qc7f.onrender.com'; 
  MainForm = TclForm.Create(Self); MainForm.LytTopBar.Visible = False; MainForm.BtnGoBack.Visible = False; MainForm.BtnFormMenu.Visible = False; 
  CmbMahalle = MainForm.AddNewComboBox(MainForm, 'CmbMahalle'); CmbMahalle.Visible = False;
  MahalleleriYukle(); 
  LytMainContent = MainForm.AddNewLayout(MainForm, 'LytMainContent'); LytMainContent.Align = alClient;
  PnlBottomMenu = MainForm.AddNewProPanel(MainForm, 'PnlBottomMenu');
  PnlBottomMenu.Align = alBottom; PnlBottomMenu.Height = 65;
  PnlBottomMenu.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#414446');
  PnlBottomMenu.SetclProSettings(PnlBottomMenu.clProSettings);
  BtnNavAnaSayfa = MainForm.AddNewProButton(PnlBottomMenu, 'BtnNavAnaSayfa', 'Ana Sayfa');
  BtnNavAnaSayfa.Align = alLeft; BtnNavAnaSayfa.Width = (MainForm.clWidth / 4);
  BtnNavAnaSayfa.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#414446');
  BtnNavAnaSayfa.clProSettings.FontSize = 11; MainForm.AddNewEvent(BtnNavAnaSayfa, tbeOnClick, 'GoAnaSayfa');
  BtnNavSikayetler = MainForm.AddNewProButton(PnlBottomMenu, 'BtnNavSikayetler', 'Şikayetler');
  BtnNavSikayetler.Align = alLeft; BtnNavSikayetler.Width = (MainForm.clWidth / 4);
  BtnNavSikayetler.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#414446');
  BtnNavSikayetler.clProSettings.FontSize = 11; MainForm.AddNewEvent(BtnNavSikayetler, tbeOnClick, 'GoSikayetler');
  BtnNavYeni = MainForm.AddNewProButton(PnlBottomMenu, 'BtnNavYeni', 'Şikayet Ekle');
  BtnNavYeni.Align = alLeft; BtnNavYeni.Width = (MainForm.clWidth / 4);
  BtnNavYeni.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#414446');
  BtnNavYeni.clProSettings.FontSize = 11; MainForm.AddNewEvent(BtnNavYeni, tbeOnClick, 'GoYeni');
  BtnNavProfil = MainForm.AddNewProButton(PnlBottomMenu, 'BtnNavProfil', 'Profil');
  BtnNavProfil.Align = alLeft; BtnNavProfil.Width = (MainForm.clWidth / 4);
  BtnNavProfil.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#414446');
  BtnNavProfil.clProSettings.FontSize = 11; MainForm.AddNewEvent(BtnNavProfil, tbeOnClick, 'GoProfil');
  uAna = TclUnit.Create;
  uProfil = TclUnit.Create;
  uSikayetlerim = TclUnit.Create;
  uYeni = TclUnit.Create;
  GirisEkraniniCiz(); 
  MainForm.Run();


Hocam Giriş Yap veya Kayıt ol butonuna tıkladığımda uygulama kendiliğinden kapanıyor herhangi bir hata da vermiyor sebep ne olabilir?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: 907
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Emr.Erkmn Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 2 Saat 34 Dakika Önce Saat 13:22
Merhaba Zeynep 

Uygykamanın hata vermeden kapanmasının nedeni genel de hafıza erişimi veya oluşturulmayan bir nesneye erişmeye çalışmasından kaynaklanır. 

Sorunun kaynağı uygulama içerisinde LytMainContent.DeleteChildren yer alan komut. 
Ekranı sürekli temizleyip yeniden çiziyor. 

*ilk olarak nesne kontrolü ekleyebiliriz. 
if (EditEmail == nil || EditSifre == nil) {
  GirisEkraniniCiz(); // Nesneler yoksa ekranı tekrar çiz
  Exit;
}
if ((EditEmail.Text == '') || (EditSifre.Text == '')) { ... }


* Eklendiğin nesneleri global olarak tanımlar mısın? mesela local de kalan bazı EdtAd,EdtSoyad gibi değişkenleri global olarak tanımla.


*TclRest işlemleri asenkron çalıştığı için bazen yanıt gelmeden form kapanırsa çökme yaşanabilir. 
Execute yerine ExecuteAsync kullanmak daha sağlıklı 



void GirisYapAction;
var
  clRest: TclRest; 
  jsonGelen, responseBody, strKullanici: String; 
  qryKullanici: TCLJSONQuery; 
  tempMahId: Integer;
  posKullanici: Integer;
{
  if (EditEmail == nil || EditSifre == nil) 
  {
    GirisEkraniniCiz(); 
    Exit;
  }

  if ((EditEmail.Text == '') || (EditSifre.Text == '')) 
  {
    ShowMessage('Lütfen e-posta ve şifrenizi girin.');
    Exit;
  }
  
  if (BtnGiris <> nil)
  {
    BtnGiris.Enabled = False; 
    BtnGiris.Text = 'Giriş Yapılıyor...';
  }

  try
    clRest = TclRest.Create; 
    clRest.BaseURL = g_ApiUrl + '/api/giris';
    clRest.Accept = 'application/json'; 
    clRest.Method = rmPost;
    responseBody = '{"eposta": "' + EditEmail.Text + '", "sifre": "' + EditSifre.Text + '"}';
    clRest.AddBody(responseBody, 'application/json'); 
    clRest.Execute; 
    jsonGelen = clRest.Response;
    
    //posKullanici işlemleri
  except
    ShowMessage('Bağlantı hatası: ' + LastExceptionMessage);
  finally
    if (BtnGiris <> nil) {
      BtnGiris.Enabled = True;
      BtnGiris.Text = 'Giriş Yap';
    }
  }
}

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