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

Hatayı göremiyorum

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

Kayıt Tarihi: 03 Aralık 2025
Durum: Aktif Değil
Puanlar: 29
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Hüseyin_Sadik Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: Hatayı göremiyorum
    Gönderim Zamanı: 4 Saat 43 Dakika Önce Saat 16:58
var
  AnaForm: TclForm;

  PnlAna: TclPanel;
  PnlAnaUst: TclProPanel;
  LblAnaBaslik: TclProLabel;
  BtnQR: TclProButton;
  BtnSiparisler: TclProButton;
  ScrUrunler: TclVertScrollBox;
  PnlAnaAlt: TclProPanel;
  BtnUrunEkle: TclProButton;

  PnlQRModal: TclProPanel;
  PnlQRKart: TclProPanel;
  QrKod: TClQRCodeGenerator;
  BtnQRKapat: TclProButton;
  LblQRBaslik: TclProLabel;

  PnlYeniUrun: TclPanel;
  PnlYeniUrunUst: TclProPanel;
  BtnYeniUrunGeri: TclProButton;
  LblYeniUrunBaslik: TclProLabel;
  ScrYeniUrunForm: TclVertScrollBox;
  PnlForm: TclProPanel;
  EdtUrunAdi: TclEdit;
  EdtUrunFiyat: TclEdit;
  CmbKategori: TClComboBox;
  ImgUrunFoto: TclImage;
  BtnFotoSec: TclProButton;
  LblFotoDurum: TclProLabel;
  BtnKaydet: TclProButton;

  PnlSiparisler: TclPanel;
  PnlSiparislerUst: TclProPanel;
  BtnSiparislerGeri: TclProButton;
  BtnSiparisYenile: TclProButton;
  LblSiparislerBaslik: TclProLabel;
  ScrSiparisler: TclVertScrollBox;

  BaseURL: String;
  IsEditMode: Boolean;
  DuzenlenenUrunId: Integer;
  FotoSecildi: Boolean;
  KategoriSayisi: Integer;

void EkraniGoster(PnlGoster: TclPanel);
{
  PnlAna.Visible = False;
  PnlYeniUrun.Visible = False;
  PnlSiparisler.Visible = False;
  PnlGoster.Visible = True;
}

void QRGoster;
{ PnlQRModal.Visible = True; }

void QRKapat;
{ PnlQRModal.Visible = False; }

void KategorileriYukle;
var
  catRest: TclRest;
  catDataset: TCLJSONQuery;
{
  KategoriSayisi = 0;
  catRest = TclRest.Create;
  catRest.BaseURL = BaseURL + 'api.php?action=get_categories&restaurant_id=1&format=flat';
  catRest.Method = rmGET;
  try
    catRest.Execute;
  except
    Exit;
  }
  if (catRest.Response <> '')
  {
    catDataset = Clomosy.ClDataSetFromJSON(catRest.Response);
    while (catDataset.Eof == False)
    {
      CmbKategori.AddItem(catDataset.FieldByName('name').AsString, catDataset.FieldByName('id').AsString);
      KategoriSayisi = KategoriSayisi + 1;
      catDataset.Next;
    }
  }
}

void KategoriSec(TargetCatId: Integer);
var
  i: Integer;
  n: Integer;
{
  CmbKategori.ItemIndex = -1;
  if (TargetCatId == 0)
  { Exit; }
  i = 0;
  n = KategoriSayisi;
  while (i < n)
  {
    if (CmbKategori.GetValueIndex(i) == IntToStr(TargetCatId))
    {
      CmbKategori.ItemIndex = i;
      i = n;
    }
    else
    {
      i = i + 1;
    }
  }
}

void UrunSil;
var
  SilRest: TclRest;
  reqBody: String;
  BtnSil: TclProButton;
  P1: TclProPanel;
  P2: TclProPanel;
{
  BtnSil = TclProButton(AnaForm.clSender);
  reqBody = '{"action":"delete_product","id":' + IntToStr(BtnSil.clTagInt) + ',"restaurant_id":1}';
  SilRest = TclRest.Create;
  SilRest.BaseURL = BaseURL + 'api.php';
  SilRest.Accept = 'application/json';
  SilRest.Method = rmPOST;
  SilRest.AddBody(reqBody, 'application/json');
  SilRest.Execute;
  P1 = TclProPanel(BtnSil.Parent);
  P2 = TclProPanel(P1.Parent);
  TclProPanel(P2.Parent).Visible = False;
}

void UrunleriYukle;
var
  clRest: TclRest;
  dataset: TCLJSONQuery;
  PnlUrunItem: TclProPanel;
  PnlUrunSag: TclProPanel;
  PnlUrunIkon: TclProPanel;
  PnlUrunSol: TclProPanel;
  PnlButonlar: TclProPanel;
  LblUrunAd: TclProLabel;
  LblUrunKat: TclProLabel;
  LblUrunFiyat: TclProLabel;
  BtnSilItem: TclProButton;
  BtnDuzenleItem: TclProButton;
  ImgUrunList: TclImage;
  GorselUrl: String;
{
  ScrUrunler.Free;
  ScrUrunler = AnaForm.AddNewVertScrollBox(PnlAna, 'ScrUrunler');
  ScrUrunler.Align = alClient;

  clRest = TclRest.Create;
  clRest.BaseURL = BaseURL + 'api.php?action=get_products&restaurant_id=1&format=flat';
  clRest.Method = rmGET;
  try
    clRest.Execute;
  except
    ShowMessage('Sunucuya baglanamadi!');
    Exit;
  }

  if (clRest.Response <> '')
  {
    dataset = Clomosy.ClDataSetFromJSON(clRest.Response);
    while (dataset.Eof == False)
    {
      PnlUrunItem = AnaForm.AddNewProPanel(ScrUrunler, 'Pnl_' + dataset.FieldByName('id').AsString);
      PnlUrunItem.Align = alTop;
      PnlUrunItem.Height = 90;
      PnlUrunItem.Margins.Top = 8;
      PnlUrunItem.Margins.Left = 16;
      PnlUrunItem.Margins.Right = 16;
      PnlUrunItem.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF');
      PnlUrunItem.clProSettings.BorderColor = clAlphaColor.clHexToColor('#F0F0F0');
      PnlUrunItem.clProSettings.BorderWidth = 1;
      PnlUrunItem.clProSettings.IsRound = True;
      PnlUrunItem.clProSettings.RoundWidth = 16;
      PnlUrunItem.clProSettings.RoundHeight = 16;
      PnlUrunItem.SetclProSettings(PnlUrunItem.clProSettings);

      PnlUrunIkon = AnaForm.AddNewProPanel(PnlUrunItem, 'Ikon_' + dataset.FieldByName('id').AsString);
      PnlUrunIkon.Align = alLeft;
      PnlUrunIkon.Width = 60;
      PnlUrunIkon.Margins.Left = 12;
      PnlUrunIkon.Margins.Top = 14;
      PnlUrunIkon.Margins.Bottom = 14;
      PnlUrunIkon.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F5F5F5');
      PnlUrunIkon.clProSettings.IsRound = True;
      PnlUrunIkon.clProSettings.RoundWidth = 12;
      PnlUrunIkon.clProSettings.RoundHeight = 12;
      PnlUrunIkon.SetclProSettings(PnlUrunIkon.clProSettings);
      ImgUrunList = AnaForm.AddNewImage(PnlUrunIkon, 'Img_' + dataset.FieldByName('id').AsString);
      ImgUrunList.Align = alClient;
      GorselUrl = dataset.FieldByName('image_url').AsString;
      if (Copy(GorselUrl, 1, 7) == 'uploads')
      { GorselUrl = BaseURL + GorselUrl; }
      if (GorselUrl <> '')
      { AnaForm.SetImage(ImgUrunList, GorselUrl); }

      PnlUrunSag = AnaForm.AddNewProPanel(PnlUrunItem, 'Sag_' + dataset.FieldByName('id').AsString);
      PnlUrunSag.Align = alRight;
      PnlUrunSag.Width = 115;
      PnlUrunSag.Margins.Right = 12;
      PnlUrunSag.Margins.Top = 12;
      PnlUrunSag.Margins.Bottom = 12;
      PnlUrunSag.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF');
      PnlUrunSag.SetclProSettings(PnlUrunSag.clProSettings);

      LblUrunFiyat = AnaForm.AddNewProLabel(PnlUrunSag, 'LblF_' + dataset.FieldByName('id').AsString, dataset.FieldByName('price').AsString + ' TL');
      LblUrunFiyat.Align = alTop;
      LblUrunFiyat.Height = 24;
      LblUrunFiyat.clProSettings.FontColor = clAlphaColor.clHexToColor('#2ec4b6');
      LblUrunFiyat.clProSettings.FontSize = 14;
      LblUrunFiyat.clProSettings.FontHorzAlign = palCenter;
      LblUrunFiyat.SetclProSettings(LblUrunFiyat.clProSettings);

      PnlButonlar = AnaForm.AddNewProPanel(PnlUrunSag, 'Btns_' + dataset.FieldByName('id').AsString);
      PnlButonlar.Align = alBottom;
      PnlButonlar.Height = 30;
      PnlButonlar.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF');
      PnlButonlar.SetclProSettings(PnlButonlar.clProSettings);

      BtnDuzenleItem = AnaForm.AddNewProButton(PnlButonlar, 'BtnE_' + dataset.FieldByName('id').AsString, 'Duzenle');
      BtnDuzenleItem.Align = alLeft;
      BtnDuzenleItem.Width = 52;
      BtnDuzenleItem.clTagInt = dataset.FieldByName('id').AsInteger;
      BtnDuzenleItem.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0FAFA');
      BtnDuzenleItem.clProSettings.FontSize = 11;
      BtnDuzenleItem.clProSettings.FontColor = clAlphaColor.clHexToColor('#2ec4b6');
      BtnDuzenleItem.clProSettings.IsRound = True;
      BtnDuzenleItem.clProSettings.RoundWidth = 8;
      BtnDuzenleItem.clProSettings.RoundHeight = 8;
      BtnDuzenleItem.SetclProSettings(BtnDuzenleItem.clProSettings);
      AnaForm.AddNewEvent(BtnDuzenleItem, tbeOnClick, 'GoToDuzenle');

      BtnSilItem = AnaForm.AddNewProButton(PnlButonlar, 'BtnS_' + dataset.FieldByName('id').AsString, 'Sil');
      BtnSilItem.Align = alRight;
      BtnSilItem.Width = 52;
      BtnSilItem.clTagInt = dataset.FieldByName('id').AsInteger;
      BtnSilItem.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFF0F0');
      BtnSilItem.clProSettings.FontColor = clAlphaColor.clHexToColor('#ff3f3f');
      BtnSilItem.clProSettings.FontSize = 12;
      BtnSilItem.clProSettings.IsRound = True;
      BtnSilItem.clProSettings.RoundWidth = 8;
      BtnSilItem.clProSettings.RoundHeight = 8;
      BtnSilItem.SetclProSettings(BtnSilItem.clProSettings);
      AnaForm.AddNewEvent(BtnSilItem, tbeOnClick, 'UrunSil');

      PnlUrunSol = AnaForm.AddNewProPanel(PnlUrunItem, 'Sol_' + dataset.FieldByName('id').AsString);
      PnlUrunSol.Align = alClient;
      PnlUrunSol.Margins.Left = 10;
      PnlUrunSol.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF');
      PnlUrunSol.SetclProSettings(PnlUrunSol.clProSettings);

      LblUrunAd = AnaForm.AddNewProLabel(PnlUrunSol, 'LblA_' + dataset.FieldByName('id').AsString, dataset.FieldByName('name').AsString);
      LblUrunAd.Align = alTop;
      LblUrunAd.Height = 32;
      LblUrunAd.Margins.Top = 12;
      LblUrunAd.clProSettings.FontColor = clAlphaColor.clHexToColor('#111111');
      LblUrunAd.clProSettings.FontSize = 15;
      LblUrunAd.clProSettings.FontVertAlign = palCenter;
      LblUrunAd.SetclProSettings(LblUrunAd.clProSettings);

      LblUrunKat = AnaForm.AddNewProLabel(PnlUrunSol, 'LblK_' + dataset.FieldByName('id').AsString, dataset.FieldByName('category_name').AsString);
      LblUrunKat.Align = alTop;
      LblUrunKat.Height = 20;
      LblUrunKat.clProSettings.FontColor = clAlphaColor.clHexToColor('#2ec4b6');
      LblUrunKat.clProSettings.FontSize = 11;
      LblUrunKat.clProSettings.FontVertAlign = palCenter;
      LblUrunKat.SetclProSettings(LblUrunKat.clProSettings);

      dataset.Next;
    }
  }
}

void GoToAna;
{
  EkraniGoster(PnlAna);
  UrunleriYukle;
}

void GoToDuzenle;
var
  BtnDuz: TclProButton;
  getRest: TclRest;
  getDataset: TCLJSONQuery;
  prodDataset: TCLJSONQuery;
  imageUrlStr: String;
{
  BtnDuz = TclProButton(AnaForm.clSender);
  DuzenlenenUrunId = BtnDuz.clTagInt;
  IsEditMode = True;
  FotoSecildi = False;
  LblYeniUrunBaslik.Text = 'Urunu Duzenle';
  EdtUrunAdi.Text = '';
  EdtUrunFiyat.Text = '';
  ImgUrunFoto.Bitmap = Nil;

  getRest = TclRest.Create;
  getRest.BaseURL = BaseURL + 'api.php?action=get_product&restaurant_id=1&id=' + IntToStr(DuzenlenenUrunId);
  getRest.Method = rmGET;
  try
    getRest.Execute;
  except
    ShowMessage('Urun bilgileri alinamadi.');
    Exit;
  }

  if (getRest.Response <> '')
  {
    getDataset = Clomosy.ClDataSetFromJSON(getRest.Response);
    if (getDataset.FieldByName('success').AsBoolean)
    {
      prodDataset = Clomosy.ClDataSetFromJSON(getDataset.FieldByName('product').AsString);
      EdtUrunAdi.Text = prodDataset.FieldByName('name').AsString;
      EdtUrunFiyat.Text = prodDataset.FieldByName('price').AsString;
      KategoriSec(prodDataset.FieldByName('category_id').AsInteger);
      imageUrlStr = prodDataset.FieldByName('image_url').AsString;
      if (Copy(imageUrlStr, 1, 7) == 'uploads')
      { imageUrlStr = BaseURL + imageUrlStr; }
      if (imageUrlStr <> '')
      {
        AnaForm.SetImage(ImgUrunFoto, imageUrlStr);
        LblFotoDurum.Text = 'Mevcut fotograf mevcut';
        LblFotoDurum.clProSettings.FontColor = clAlphaColor.clHexToColor('#2ec4b6');
        LblFotoDurum.SetclProSettings(LblFotoDurum.clProSettings);
      }
      else
      {
        LblFotoDurum.Text = 'Fotograf yok';
        LblFotoDurum.clProSettings.FontColor = clAlphaColor.clHexToColor('#999999');
        LblFotoDurum.SetclProSettings(LblFotoDurum.clProSettings);
      }
      EkraniGoster(PnlYeniUrun);
    }
    else
    { ShowMessage('Urun bulunamadi.'); }
  }
}

void GoToYeniUrun;
{
  IsEditMode = False;
  DuzenlenenUrunId = 0;
  FotoSecildi = False;
  LblYeniUrunBaslik.Text = 'Yeni Urun Ekle';
  EdtUrunAdi.Text = '';
  EdtUrunFiyat.Text = '';
  ImgUrunFoto.Bitmap = Nil;
  CmbKategori.ItemIndex = -1;
  LblFotoDurum.Text = 'Fotograf secilmedi';
  LblFotoDurum.clProSettings.FontColor = clAlphaColor.clHexToColor('#999999');
  LblFotoDurum.SetclProSettings(LblFotoDurum.clProSettings);
  EkraniGoster(PnlYeniUrun);
}

void FotoSec;
{
  try
    Clomosy.ImageChooser(AnaForm, ImgUrunFoto);
    FotoSecildi = True;
    LblFotoDurum.Text = 'Fotograf secildi';
    LblFotoDurum.clProSettings.FontColor = clAlphaColor.clHexToColor('#2ec4b6');
    LblFotoDurum.SetclProSettings(LblFotoDurum.clProSettings);
  except
    ShowMessage('Kamera acilamadi.');
  }
}

void YeniUrunKaydet;
var
  KaydetRest: TclRest;
  reqBody: String;
  LBase64Veri: String;
  LMemStream: TCLMemoryStream;
  selCatId: String;
{
  if (EdtUrunAdi.Text == '')
  { ShowMessage('Urun adi giriniz!'); Exit; }
  if (EdtUrunFiyat.Text == '')
  { ShowMessage('Fiyat giriniz!'); Exit; }
  if (CmbKategori.ItemIndex == -1)
  { ShowMessage('Kategori seciniz!'); Exit; }
  if (IsEditMode == False)
  {
    if (FotoSecildi == False)
    { ShowMessage('Fotograf seciniz!'); Exit; }
  }

  selCatId = CmbKategori.GetValueIndex(CmbKategori.ItemIndex);
  LBase64Veri = '';

  if (FotoSecildi)
  {
    LMemStream = TCLMemoryStream.Create;
    ImgUrunFoto.Bitmap.SaveToStream(LMemStream);
    if (LMemStream.Size == 0)
    {
      ShowMessage('Fotograf bos!');
      LMemStream.Free;
      Exit;
    }
    LBase64Veri = LMemStream.AsBase64;
    LMemStream.Free;
  }

  reqBody = '{"restaurant_id":1,"category_id":' + selCatId;
  reqBody = reqBody + ',"name":"' + EdtUrunAdi.Text + '"';
  reqBody = reqBody + ',"description":"' + EdtUrunAdi.Text + '"';
  reqBody = reqBody + ',"price":' + EdtUrunFiyat.Text;
  if (IsEditMode)
  { reqBody = reqBody + ',"id":' + IntToStr(DuzenlenenUrunId); }
  if (FotoSecildi)
  { reqBody = reqBody + ',"image_base64":"' + LBase64Veri + '"'; }
  reqBody = reqBody + '}';

  KaydetRest = TclRest.Create;
  KaydetRest.BaseURL = BaseURL + 'api.php?action=save_product';
  KaydetRest.Accept = 'application/json';
  KaydetRest.Method = rmPOST;
  KaydetRest.AddBody(reqBody, 'application/json');
  try
    KaydetRest.Execute;
  except
    ShowMessage('Sunucu baglanti hatasi!');
    Exit;
  }
  if (KaydetRest.Response <> '')
  {
    ShowMessage('Kaydedildi!');
    EdtUrunAdi.Text = '';
    EdtUrunFiyat.Text = '';
    ImgUrunFoto.Bitmap = Nil;
    IsEditMode = False;
    DuzenlenenUrunId = 0;
    FotoSecildi = False;
    GoToAna;
  }
  else
  { ShowMessage('Sunucudan yanit alinamadi.'); }
}

void SiparisTamamla;
var
  delRest: TclRest;
  reqBody: String;
  BtnT: TclProButton;
{
  BtnT = TclProButton(AnaForm.clSender);
  reqBody = '{"action":"delete_order","id":' + IntToStr(BtnT.clTagInt) + ',"restaurant_id":1}';
  delRest = TclRest.Create;
  delRest.BaseURL = BaseURL + 'api.php';
  delRest.Accept = 'application/json';
  delRest.Method = rmPOST;
  delRest.AddBody(reqBody, 'application/json');
  try
    delRest.Execute;
    TclProPanel(BtnT.Parent).Visible = False;
  except
    ShowMessage('Hata olustu');
  }
}

void SiparisleriYukle;
var
  ordRest: TclRest;
  ordDataset: TCLJSONQuery;
  PnlOrdItem: TclProPanel;
  LblOrdNo: TclProLabel;
  LblOrdDetay: TclProLabel;
  LblOrdFiyat: TclProLabel;
  BtnTamamla: TclProButton;
{
  ScrSiparisler.Free;
  ScrSiparisler = AnaForm.AddNewVertScrollBox(PnlSiparisler, 'ScrSiparisler');
  ScrSiparisler.Align = alClient;

  ordRest = TclRest.Create;
  ordRest.BaseURL = BaseURL + 'api.php?action=get_orders&restaurant_id=1&format=flat';
  ordRest.Method = rmGET;
  try
    ordRest.Execute;
  except
    ShowMessage('Siparisler yuklenemedi.');
    Exit;
  }

  if (ordRest.Response <> '')
  {
    ordDataset = Clomosy.ClDataSetFromJSON(ordRest.Response);
    while (ordDataset.Eof == False)
    {
      PnlOrdItem = AnaForm.AddNewProPanel(ScrSiparisler, 'PnlOrd_' + ordDataset.FieldByName('id').AsString);
      PnlOrdItem.Align = alTop;
      PnlOrdItem.Height = 120;
      PnlOrdItem.Margins.Top = 10;
      PnlOrdItem.Margins.Left = 16;
      PnlOrdItem.Margins.Right = 16;
      PnlOrdItem.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF');
      PnlOrdItem.clProSettings.BorderColor = clAlphaColor.clHexToColor('#E8E8E8');
      PnlOrdItem.clProSettings.BorderWidth = 1;
      PnlOrdItem.clProSettings.IsRound = True;
      PnlOrdItem.clProSettings.RoundWidth = 16;
      PnlOrdItem.clProSettings.RoundHeight = 16;
      PnlOrdItem.SetclProSettings(PnlOrdItem.clProSettings);

      LblOrdNo = AnaForm.AddNewProLabel(PnlOrdItem, 'LblON_' + ordDataset.FieldByName('id').AsString, 'Siparis #' + ordDataset.FieldByName('id').AsString);
      LblOrdNo.Align = alTop;
      LblOrdNo.Height = 30;
      LblOrdNo.Margins.Left = 14;
      LblOrdNo.Margins.Top = 10;
      LblOrdNo.clProSettings.FontColor = clAlphaColor.clHexToColor('#111111');
      LblOrdNo.clProSettings.FontSize = 14;
      LblOrdNo.clProSettings.FontVertAlign = palCenter;
      LblOrdNo.SetclProSettings(LblOrdNo.clProSettings);

      LblOrdDetay = AnaForm.AddNewProLabel(PnlOrdItem, 'LblOD_' + ordDataset.FieldByName('id').AsString, ordDataset.FieldByName('items_text').AsString);
      LblOrdDetay.Align = alTop;
      LblOrdDetay.Height = 24;
      LblOrdDetay.Margins.Left = 14;
      LblOrdDetay.Margins.Right = 14;
      LblOrdDetay.clProSettings.FontColor = clAlphaColor.clHexToColor('#666666');
      LblOrdDetay.clProSettings.FontSize = 12;
      LblOrdDetay.clProSettings.FontVertAlign = palCenter;
      LblOrdDetay.SetclProSettings(LblOrdDetay.clProSettings);

      LblOrdFiyat = AnaForm.AddNewProLabel(PnlOrdItem, 'LblOP_' + ordDataset.FieldByName('id').AsString, 'Toplam: ' + ordDataset.FieldByName('total_price').AsString + ' TL');
      LblOrdFiyat.Align = alTop;
      LblOrdFiyat.Height = 22;
      LblOrdFiyat.Margins.Left = 14;
      LblOrdFiyat.Margins.Top = 2;
      LblOrdFiyat.clProSettings.FontColor = clAlphaColor.clHexToColor('#2ec4b6');
      LblOrdFiyat.clProSettings.FontSize = 13;
      LblOrdFiyat.clProSettings.FontVertAlign = palCenter;
      LblOrdFiyat.SetclProSettings(LblOrdFiyat.clProSettings);

      BtnTamamla = AnaForm.AddNewProButton(PnlOrdItem, 'BtnT_' + ordDataset.FieldByName('id').AsString, 'Tamamlandi');
      BtnTamamla.Align = alBottom;
      BtnTamamla.Height = 30;
      BtnTamamla.Margins.Left = 14;
      BtnTamamla.Margins.Right = 14;
      BtnTamamla.Margins.Bottom = 8;
      BtnTamamla.clTagInt = ordDataset.FieldByName('id').AsInteger;
      BtnTamamla.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#EAFBFA');
      BtnTamamla.clProSettings.FontColor = clAlphaColor.clHexToColor('#2ec4b6');
      BtnTamamla.clProSettings.FontSize = 12;
      BtnTamamla.clProSettings.IsRound = True;
      BtnTamamla.clProSettings.RoundWidth = 8;
      BtnTamamla.clProSettings.RoundHeight = 8;
      BtnTamamla.SetclProSettings(BtnTamamla.clProSettings);
      AnaForm.AddNewEvent(BtnTamamla, tbeOnClick, 'SiparisTamamla');

      ordDataset.Next;
    }
  }

  Clomosy.SendNotifyAllUsers('Yeni Siparis!', 'Bekleyen siparislerinizi kontrol edin.', '');
}

void GoToSiparisler;
{
  EkraniGoster(PnlSiparisler);
  SiparisleriYukle;
}

{
  IsEditMode = False;
  DuzenlenenUrunId = 0;
  FotoSecildi = False;
  KategoriSayisi = 0;

  AnaForm = TclForm.Create(Self);
  AnaForm.SetFormColor('#F8F9FA', '', clGNone);

  PnlAna = AnaForm.AddNewPanel(AnaForm, 'PnlAna');
  PnlAna.Align = alClient;

  PnlAnaUst = AnaForm.AddNewProPanel(PnlAna, 'PnlAnaUst');
  PnlAnaUst.Align = alTop;
  PnlAnaUst.Height = 64;
  PnlAnaUst.Margins.Left = 16;
  PnlAnaUst.Margins.Right = 16;
  PnlAnaUst.Margins.Top = 8;
  PnlAnaUst.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F8F9FA');
  PnlAnaUst.SetclProSettings(PnlAnaUst.clProSettings);

  LblAnaBaslik = AnaForm.AddNewProLabel(PnlAnaUst, 'LblAna', 'Menu Yonetimi');
  LblAnaBaslik.Align = alLeft;
  LblAnaBaslik.Width = 160;
  LblAnaBaslik.clProSettings.FontColor = clAlphaColor.clHexToColor('#111111');
  LblAnaBaslik.clProSettings.FontSize = 20;
  LblAnaBaslik.clProSettings.FontVertAlign = palCenter;
  LblAnaBaslik.SetclProSettings(LblAnaBaslik.clProSettings);

  BtnQR = AnaForm.AddNewProButton(PnlAnaUst, 'BtnQR', 'QR');
  BtnQR.Align = alRight;
  BtnQR.Width = 44;
  BtnQR.Height = 44;
  BtnQR.Margins.Top = 10;
  BtnQR.Margins.Bottom = 10;
  BtnQR.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#111111');
  BtnQR.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  BtnQR.clProSettings.FontSize = 14;
  BtnQR.clProSettings.IsRound = True;
  BtnQR.clProSettings.RoundWidth = 12;
  BtnQR.clProSettings.RoundHeight = 12;
  BtnQR.SetclProSettings(BtnQR.clProSettings);
  AnaForm.AddNewEvent(BtnQR, tbeOnClick, 'QRGoster');

  BtnSiparisler = AnaForm.AddNewProButton(PnlAnaUst, 'BtnSip', 'Sip');
  BtnSiparisler.Align = alRight;
  BtnSiparisler.Width = 44;
  BtnSiparisler.Height = 44;
  BtnSiparisler.Margins.Top = 10;
  BtnSiparisler.Margins.Bottom = 10;
  BtnSiparisler.Margins.Right = 8;
  BtnSiparisler.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF');
  BtnSiparisler.clProSettings.FontColor = clAlphaColor.clHexToColor('#111111');
  BtnSiparisler.clProSettings.FontSize = 11;
  BtnSiparisler.clProSettings.IsRound = True;
  BtnSiparisler.clProSettings.RoundWidth = 12;
  BtnSiparisler.clProSettings.RoundHeight = 12;
  BtnSiparisler.clProSettings.BorderColor = clAlphaColor.clHexToColor('#E0E0E0');
  BtnSiparisler.clProSettings.BorderWidth = 1;
  BtnSiparisler.SetclProSettings(BtnSiparisler.clProSettings);
  AnaForm.AddNewEvent(BtnSiparisler, tbeOnClick, 'GoToSiparisler');

  ScrUrunler = AnaForm.AddNewVertScrollBox(PnlAna, 'ScrUrunler');
  ScrUrunler.Align = alClient;

  PnlAnaAlt = AnaForm.AddNewProPanel(PnlAna, 'PnlAnaAlt');
  PnlAnaAlt.Align = alBottom;
  PnlAnaAlt.Height = 88;
  PnlAnaAlt.Margins.Left = 16;
  PnlAnaAlt.Margins.Right = 16;
  PnlAnaAlt.Margins.Bottom = 8;
  PnlAnaAlt.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F8F9FA');
  PnlAnaAlt.SetclProSettings(PnlAnaAlt.clProSettings);

  BtnUrunEkle = AnaForm.AddNewProButton(PnlAnaAlt, 'BtnEkle', '+ Yeni Urun Ekle');
  BtnUrunEkle.Align = alClient;
  BtnUrunEkle.Margins.Top = 12;
  BtnUrunEkle.Margins.Bottom = 12;
  BtnUrunEkle.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#111111');
  BtnUrunEkle.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  BtnUrunEkle.clProSettings.FontSize = 17;
  BtnUrunEkle.clProSettings.IsRound = True;
  BtnUrunEkle.clProSettings.RoundWidth = 16;
  BtnUrunEkle.clProSettings.RoundHeight = 16;
  BtnUrunEkle.SetclProSettings(BtnUrunEkle.clProSettings);
  AnaForm.AddNewEvent(BtnUrunEkle, tbeOnClick, 'GoToYeniUrun');

  PnlQRModal = AnaForm.AddNewProPanel(AnaForm, 'PnlQRModal');
  PnlQRModal.Align = alClient;
  PnlQRModal.Visible = False;
  PnlQRModal.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#CC000000');
  PnlQRModal.SetclProSettings(PnlQRModal.clProSettings);
  AnaForm.AddNewEvent(PnlQRModal, tbeOnClick, 'QRKapat');

  PnlQRKart = AnaForm.AddNewProPanel(PnlQRModal, 'PnlQRKart');
  PnlQRKart.Align = alCenter;
  PnlQRKart.Width = 280;
  PnlQRKart.Height = 360;
  PnlQRKart.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF');
  PnlQRKart.clProSettings.IsRound = True;
  PnlQRKart.clProSettings.RoundWidth = 24;
  PnlQRKart.clProSettings.RoundHeight = 24;
  PnlQRKart.SetclProSettings(PnlQRKart.clProSettings);

  LblQRBaslik = AnaForm.AddNewProLabel(PnlQRKart, 'LblQR', 'Menu QR Kodu');
  LblQRBaslik.Align = alTop;
  LblQRBaslik.Height = 50;
  LblQRBaslik.clProSettings.FontColor = clAlphaColor.clHexToColor('#111111');
  LblQRBaslik.clProSettings.FontSize = 18;
  LblQRBaslik.clProSettings.FontHorzAlign = palCenter;
  LblQRBaslik.clProSettings.FontVertAlign = palCenter;
  LblQRBaslik.SetclProSettings(LblQRBaslik.clProSettings);

  QrKod = AnaForm.AddNewQRCodeGenerator(PnlQRKart, 'QrKod', BaseURL + 'menu.php?id=1&i=1');
  QrKod.Align = alTop;
  QrKod.Height = 240;
  QrKod.Margins.Left = 20;
  QrKod.Margins.Right = 20;

  BtnQRKapat = AnaForm.AddNewProButton(PnlQRKart, 'BtnQRKapat', 'Kapat');
  BtnQRKapat.Align = alBottom;
  BtnQRKapat.Height = 48;
  BtnQRKapat.Margins.Left = 20;
  BtnQRKapat.Margins.Right = 20;
  BtnQRKapat.Margins.Bottom = 16;
  BtnQRKapat.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F8F9FA');
  BtnQRKapat.clProSettings.FontColor = clAlphaColor.clHexToColor('#111111');
  BtnQRKapat.clProSettings.FontSize = 15;
  BtnQRKapat.clProSettings.IsRound = True;
  BtnQRKapat.clProSettings.RoundWidth = 12;
  BtnQRKapat.clProSettings.RoundHeight = 12;
  BtnQRKapat.SetclProSettings(BtnQRKapat.clProSettings);
  AnaForm.AddNewEvent(BtnQRKapat, tbeOnClick, 'QRKapat');

  PnlYeniUrun = AnaForm.AddNewPanel(AnaForm, 'PnlYeniUrun');
  PnlYeniUrun.Align = alClient;
  PnlYeniUrun.Visible = False;

  PnlYeniUrunUst = AnaForm.AddNewProPanel(PnlYeniUrun, 'PnlYeniUst');
  PnlYeniUrunUst.Align = alTop;
  PnlYeniUrunUst.Height = 64;
  PnlYeniUrunUst.Margins.Left = 16;
  PnlYeniUrunUst.Margins.Right = 16;
  PnlYeniUrunUst.Margins.Top = 8;
  PnlYeniUrunUst.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F8F9FA');
  PnlYeniUrunUst.SetclProSettings(PnlYeniUrunUst.clProSettings);

  BtnYeniUrunGeri = AnaForm.AddNewProButton(PnlYeniUrunUst, 'BtnGeri', '<');
  BtnYeniUrunGeri.Align = alLeft;
  BtnYeniUrunGeri.Width = 44;
  BtnYeniUrunGeri.Height = 44;
  BtnYeniUrunGeri.Margins.Top = 10;
  BtnYeniUrunGeri.Margins.Bottom = 10;
  BtnYeniUrunGeri.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF');
  BtnYeniUrunGeri.clProSettings.FontColor = clAlphaColor.clHexToColor('#111111');
  BtnYeniUrunGeri.clProSettings.FontSize = 20;
  BtnYeniUrunGeri.clProSettings.IsRound = True;
  BtnYeniUrunGeri.clProSettings.RoundWidth = 12;
  BtnYeniUrunGeri.clProSettings.RoundHeight = 12;
  BtnYeniUrunGeri.clProSettings.BorderColor = clAlphaColor.clHexToColor('#E0E0E0');
  BtnYeniUrunGeri.clProSettings.BorderWidth = 1;
  BtnYeniUrunGeri.SetclProSettings(BtnYeniUrunGeri.clProSettings);
  AnaForm.AddNewEvent(BtnYeniUrunGeri, tbeOnClick, 'GoToAna');

  LblYeniUrunBaslik = AnaForm.AddNewProLabel(PnlYeniUrunUst, 'LblYBaslik', 'Yeni Urun Ekle');
  LblYeniUrunBaslik.Align = alClient;
  LblYeniUrunBaslik.clProSettings.FontColor = clAlphaColor.clHexToColor('#111111');
  LblYeniUrunBaslik.clProSettings.FontSize = 20;
  LblYeniUrunBaslik.clProSettings.FontHorzAlign = palCenter;
  LblYeniUrunBaslik.clProSettings.FontVertAlign = palCenter;
  LblYeniUrunBaslik.SetclProSettings(LblYeniUrunBaslik.clProSettings);

  ScrYeniUrunForm = AnaForm.AddNewVertScrollBox(PnlYeniUrun, 'ScrYeniForm');
  ScrYeniUrunForm.Align = alClient;

  PnlForm = AnaForm.AddNewProPanel(ScrYeniUrunForm, 'PnlForm');
  PnlForm.Align = alTop;
  PnlForm.Height = 590;
  PnlForm.Margins.Left = 16;
  PnlForm.Margins.Right = 16;
  PnlForm.Margins.Top = 8;
  PnlForm.Margins.Bottom = 16;
  PnlForm.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF');
  PnlForm.clProSettings.IsRound = True;
  PnlForm.clProSettings.RoundWidth = 20;
  PnlForm.clProSettings.RoundHeight = 20;
  PnlForm.clProSettings.BorderColor = clAlphaColor.clHexToColor('#F0F0F0');
  PnlForm.clProSettings.BorderWidth = 1;
  PnlForm.SetclProSettings(PnlForm.clProSettings);

  ImgUrunFoto = AnaForm.AddNewImage(PnlForm, 'ImgUrunFoto');
  ImgUrunFoto.Align = alTop;
  ImgUrunFoto.Height = 180;
  ImgUrunFoto.Margins.Left = 20;
  ImgUrunFoto.Margins.Right = 20;
  ImgUrunFoto.Margins.Top = 20;

  BtnFotoSec = AnaForm.AddNewProButton(PnlForm, 'BtnFotoSec', 'Fotograf Sec');
  BtnFotoSec.Align = alTop;
  BtnFotoSec.Height = 48;
  BtnFotoSec.Margins.Left = 20;
  BtnFotoSec.Margins.Right = 20;
  BtnFotoSec.Margins.Top = 12;
  BtnFotoSec.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0FAFA');
  BtnFotoSec.clProSettings.FontColor = clAlphaColor.clHexToColor('#2ec4b6');
  BtnFotoSec.clProSettings.FontSize = 15;
  BtnFotoSec.clProSettings.BorderColor = clAlphaColor.clHexToColor('#2ec4b6');
  BtnFotoSec.clProSettings.BorderWidth = 1;
  BtnFotoSec.clProSettings.IsRound = True;
  BtnFotoSec.clProSettings.RoundWidth = 12;
  BtnFotoSec.clProSettings.RoundHeight = 12;
  BtnFotoSec.SetclProSettings(BtnFotoSec.clProSettings);
  AnaForm.AddNewEvent(BtnFotoSec, tbeOnClick, 'FotoSec');

  LblFotoDurum = AnaForm.AddNewProLabel(PnlForm, 'LblFotoDurum', 'Fotograf secilmedi');
  LblFotoDurum.Align = alTop;
  LblFotoDurum.Height = 24;
  LblFotoDurum.Margins.Left = 20;
  LblFotoDurum.Margins.Top = 6;
  LblFotoDurum.clProSettings.FontColor = clAlphaColor.clHexToColor('#999999');
  LblFotoDurum.clProSettings.FontSize = 13;
  LblFotoDurum.SetclProSettings(LblFotoDurum.clProSettings);

  CmbKategori = AnaForm.AddNewComboBox(PnlForm, 'CmbKategori');
  CmbKategori.Align = alTop;
  CmbKategori.Height = 48;
  CmbKategori.Margins.Left = 20;
  CmbKategori.Margins.Right = 20;
  CmbKategori.Margins.Top = 12;

  EdtUrunAdi = AnaForm.AddNewEdit(PnlForm, 'EdtUrunAdi', 'Urun Adi');
  EdtUrunAdi.Align = alTop;
  EdtUrunAdi.Height = 48;
  EdtUrunAdi.Margins.Left = 20;
  EdtUrunAdi.Margins.Right = 20;
  EdtUrunAdi.Margins.Top = 12;

  EdtUrunFiyat = AnaForm.AddNewEdit(PnlForm, 'EdtUrunFiyat', 'Fiyat (150.00)');
  EdtUrunFiyat.Align = alTop;
  EdtUrunFiyat.Height = 48;
  EdtUrunFiyat.Margins.Left = 20;
  EdtUrunFiyat.Margins.Right = 20;
  EdtUrunFiyat.Margins.Top = 12;

  BtnKaydet = AnaForm.AddNewProButton(PnlForm, 'BtnKaydet', 'Kaydet');
  BtnKaydet.Align = alBottom;
  BtnKaydet.Height = 52;
  BtnKaydet.Margins.Left = 20;
  BtnKaydet.Margins.Right = 20;
  BtnKaydet.Margins.Bottom = 20;
  BtnKaydet.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#111111');
  BtnKaydet.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  BtnKaydet.clProSettings.FontSize = 17;
  BtnKaydet.clProSettings.IsRound = True;
  BtnKaydet.clProSettings.RoundWidth = 14;
  BtnKaydet.clProSettings.RoundHeight = 14;
  BtnKaydet.SetclProSettings(BtnKaydet.clProSettings);
  AnaForm.AddNewEvent(BtnKaydet, tbeOnClick, 'YeniUrunKaydet');

  PnlSiparisler = AnaForm.AddNewPanel(AnaForm, 'PnlSiparisler');
  PnlSiparisler.Align = alClient;
  PnlSiparisler.Visible = False;

  PnlSiparislerUst = AnaForm.AddNewProPanel(PnlSiparisler, 'PnlSipUst');
  PnlSiparislerUst.Align = alTop;
  PnlSiparislerUst.Height = 64;
  PnlSiparislerUst.Margins.Left = 16;
  PnlSiparislerUst.Margins.Right = 16;
  PnlSiparislerUst.Margins.Top = 8;
  PnlSiparislerUst.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F8F9FA');
  PnlSiparislerUst.SetclProSettings(PnlSiparislerUst.clProSettings);

  BtnSiparislerGeri = AnaForm.AddNewProButton(PnlSiparislerUst, 'BtnSipGeri', '<');
  BtnSiparislerGeri.Align = alLeft;
  BtnSiparislerGeri.Width = 44;
  BtnSiparislerGeri.Height = 44;
  BtnSiparislerGeri.Margins.Top = 10;
  BtnSiparislerGeri.Margins.Bottom = 10;
  BtnSiparislerGeri.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF');
  BtnSiparislerGeri.clProSettings.FontColor = clAlphaColor.clHexToColor('#111111');
  BtnSiparislerGeri.clProSettings.FontSize = 20;
  BtnSiparislerGeri.clProSettings.IsRound = True;
  BtnSiparislerGeri.clProSettings.RoundWidth = 12;
  BtnSiparislerGeri.clProSettings.RoundHeight = 12;
  BtnSiparislerGeri.clProSettings.BorderColor = clAlphaColor.clHexToColor('#E0E0E0');
  BtnSiparislerGeri.clProSettings.BorderWidth = 1;
  BtnSiparislerGeri.SetclProSettings(BtnSiparislerGeri.clProSettings);
  AnaForm.AddNewEvent(BtnSiparislerGeri, tbeOnClick, 'GoToAna');

  BtnSiparisYenile = AnaForm.AddNewProButton(PnlSiparislerUst, 'BtnSipYenile', 'Yenile');
  BtnSiparisYenile.Align = alRight;
  BtnSiparisYenile.Width = 60;
  BtnSiparisYenile.Height = 44;
  BtnSiparisYenile.Margins.Top = 10;
  BtnSiparisYenile.Margins.Bottom = 10;
  BtnSiparisYenile.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#EAFBFA');
  BtnSiparisYenile.clProSettings.FontColor = clAlphaColor.clHexToColor('#2ec4b6');
  BtnSiparisYenile.clProSettings.FontSize = 13;
  BtnSiparisYenile.clProSettings.IsRound = True;
  BtnSiparisYenile.clProSettings.RoundWidth = 12;
  BtnSiparisYenile.clProSettings.RoundHeight = 12;
  BtnSiparisYenile.SetclProSettings(BtnSiparisYenile.clProSettings);
  AnaForm.AddNewEvent(BtnSiparisYenile, tbeOnClick, 'GoToSiparisler');

  LblSiparislerBaslik = AnaForm.AddNewProLabel(PnlSiparislerUst, 'LblSipBaslik', 'Siparisler');
  LblSiparislerBaslik.Align = alClient;
  LblSiparislerBaslik.clProSettings.FontColor = clAlphaColor.clHexToColor('#111111');
  LblSiparislerBaslik.clProSettings.FontSize = 19;
  LblSiparislerBaslik.clProSettings.FontHorzAlign = palCenter;
  LblSiparislerBaslik.clProSettings.FontVertAlign = palCenter;
  LblSiparislerBaslik.SetclProSettings(LblSiparislerBaslik.clProSettings);

  ScrSiparisler = AnaForm.AddNewVertScrollBox(PnlSiparisler, 'ScrSiparisler');
  ScrSiparisler.Align = alClient;

  KategorileriYukle;
  UrunleriYukle;

  AnaForm.Run;
}


bu kodun hatasını göremiyorum ve neden hata neden var anlayamadım
https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" 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
ardcek Açılır Kutu İzle
Yeni Üye
Yeni Üye
Simge

Kayıt Tarihi: 18 Nisan 2026
Konum: Selçuklu/Konya
Durum: Aktif Değil
Puanlar: 12
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (1) Teşekkürler(1)   Alıntı ardcek Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 3 Saat 43 Dakika Önce Saat 17:58

Kodunuzdaki Temel Hatalar:

  1. Görsel Temizleme Hatası (Image Clear AV Hatası):

    • Kodunuzda birden fazla yerde ImgUrunFoto.Bitmap = Nil; satırını kullandınız. Clomosy'nin arka planındaki Delphi FMX kütüphanesinde Bitmap salt okunur bir nesne referansı gibi çalıştığından direkt olarak Nil ataması yapılamaz ve bu işlem Access Violation (bellek erişim hatası) veya derleme hatası verir.
    • Çözüm: Fotoğrafı temizlemek için Clomosy standart metodu olan ImgUrunFoto.MultiResBitmap.Clear; kullanılmalıdır.
  2. JSON Objelerini Dataset'e Dönüştürme Hatası (Köşeli Parantez Eksikliği):

    • GoToDuzenle kısmında ClDataSetFromJSON fonksiyonuna REST'ten gelen tek bir JSON nesnesi (getRest.Response ve içindeki product nesnesi) gönderiliyor.
    • Clomosy'deki ClDataSetFromJSON fonksiyonu JSON Array (yani [...] ile başlayan köşeli parantezli dizi) bekler. Düz bir JSON objesi ({...}) aldığında parse edemez ve hata verir.
    • Çözüm: Bu JSON string ifadelerini çözümlerken başına ve sonuna köşeli parantez eklemek gerekir:
      • getDataset = Clomosy.ClDataSetFromJSON('[' + getRest.Response + ']');
      • prodDataset = Clomosy.ClDataSetFromJSON('[' + getDataset.FieldByName('product').AsString + ']');
  3. Ciddi Bellek Sızıntıları (Free Edilmeyen Nesneler):

    • Kodda TclRest.Create ve TCLJSONQuery (dataset) gibi nesneler oluşturuluyor ancak hiçbir yerde .Free edilmiyor. Mobil uygulamalarda bu tip işlemler (özellikle döngü içindekiler) kısa sürede uygulamanın çökmesine yol açar.
    • Çözüm: Tüm REST istemcileri ve Dataset sorguları try...finally blokları içine alınarak işleri bittiğinde .Free metoduyla bellekten temizlenmelidir.
  4. Kombobox Mükerrer Ekleme Hatası:

    • KategorileriYukle her çalıştığında kategorileri ComboBox'a tekrar ekler.
    • Çözüm: Metodun başına CmbKategori.Clear; eklenmiştir.

var
  AnaForm: TclForm;

  PnlAna: TclPanel;
  PnlAnaUst: TclProPanel;
  LblAnaBaslik: TclProLabel;
  BtnQR: TclProButton;
  BtnSiparisler: TclProButton;
  ScrUrunler: TclVertScrollBox;
  PnlAnaAlt: TclProPanel;
  BtnUrunEkle: TclProButton;

  PnlQRModal: TclProPanel;
  PnlQRKart: TclProPanel;
  QrKod: TclQRCodeGenerator;
  BtnQRKapat: TclProButton;
  LblQRBaslik: TclProLabel;

  PnlYeniUrun: TclPanel;
  PnlYeniUrunUst: TclProPanel;
  BtnYeniUrunGeri: TclProButton;
  LblYeniUrunBaslik: TclProLabel;
  ScrYeniUrunForm: TclVertScrollBox;
  PnlForm: TclProPanel;
  EdtUrunAdi: TclEdit;
  EdtUrunFiyat: TclEdit;
  CmbKategori: TclComboBox;
  ImgUrunFoto: TclImage;
  BtnFotoSec: TclProButton;
  LblFotoDurum: TclProLabel;
  BtnKaydet: TclProButton;

  PnlSiparisler: TclPanel;
  PnlSiparislerUst: TclProPanel;
  BtnSiparislerGeri: TclProButton;
  BtnSiparisYenile: TclProButton;
  LblSiparislerBaslik: TclProLabel;
  ScrSiparisler: TclVertScrollBox;

  BaseURL: String;
  IsEditMode: Boolean;
  DuzenlenenUrunId: Integer;
  FotoSecildi: Boolean;
  KategoriSayisi: Integer;

void EkraniGoster(PnlGoster: TclPanel);
{
  PnlAna.Visible = False;
  PnlYeniUrun.Visible = False;
  PnlSiparisler.Visible = False;
  PnlGoster.Visible = True;
}

void QRGoster;
  PnlQRModal.Visible = True; 
}

void QRKapat;
  PnlQRModal.Visible = False; 
}

void KategorileriYukle;
var
  catRest: TclRest;
  catDataset: TCLJSONQuery;
{
  KategoriSayisi = 0;
  CmbKategori.Clear; // Mükerrer yüklemeleri önler
  catRest = TclRest.Create;
  try
    catRest.BaseURL = BaseURL + 'api.php?action=get_categories&restaurant_id=1&format=flat';
    catRest.Method = rmGET;
    try
      catRest.Execute;
    except
      Exit;
    }
    if (catRest.Response <> '')
    {
      catDataset = Clomosy.ClDataSetFromJSON(catRest.Response);
      try
        while (catDataset.Eof == False)
        {
          CmbKategori.AddItem(catDataset.FieldByName('name').AsString, catDataset.FieldByName('id').AsString);
          KategoriSayisi = KategoriSayisi + 1;
          catDataset.Next;
        }
      finally
        catDataset.Free;
      }
    }
  finally
    catRest.Free;
  }
}

void KategoriSec(TargetCatId: Integer);
var
  i: Integer;
  n: Integer;
{
  CmbKategori.ItemIndex = -1;
  if (TargetCatId == 0)
  { Exit; }
  i = 0;
  n = KategoriSayisi;
  while (i < n)
  {
    if (CmbKategori.GetValueIndex(i) == IntToStr(TargetCatId))
    {
      CmbKategori.ItemIndex = i;
      i = n;
    }
    else
    {
      i = i + 1;
    }
  }
}

void UrunSil;
var
  SilRest: TclRest;
  reqBody: String;
  BtnSil: TclProButton;
  P1: TclProPanel;
  P2: TclProPanel;
{
  BtnSil = TclProButton(AnaForm.clSender);
  reqBody = '{"action":"delete_product","id":' + IntToStr(BtnSil.clTagInt) + ',"restaurant_id":1}';
  SilRest = TclRest.Create;
  try
    SilRest.BaseURL = BaseURL + 'api.php';
    SilRest.Accept = 'application/json';
    SilRest.Method = rmPOST;
    SilRest.AddBody(reqBody, 'application/json');
    SilRest.Execute;
  finally
    SilRest.Free;
  }
  P1 = TclProPanel(BtnSil.Parent);
  P2 = TclProPanel(P1.Parent);
  TclProPanel(P2.Parent).Visible = False;
}

void UrunleriYukle;
var
  clRest: TclRest;
  dataset: TCLJSONQuery;
  PnlUrunItem: TclProPanel;
  PnlUrunSag: TclProPanel;
  PnlUrunIkon: TclProPanel;
  PnlUrunSol: TclProPanel;
  PnlButonlar: TclProPanel;
  LblUrunAd: TclProLabel;
  LblUrunKat: TclProLabel;
  LblUrunFiyat: TclProLabel;
  BtnSilItem: TclProButton;
  BtnDuzenleItem: TclProButton;
  ImgUrunList: TclImage;
  GorselUrl: String;
{
  ScrUrunler.Free;
  ScrUrunler = AnaForm.AddNewVertScrollBox(PnlAna, 'ScrUrunler');
  ScrUrunler.Align = alClient;

  clRest = TclRest.Create;
  try
    clRest.BaseURL = BaseURL + 'api.php?action=get_products&restaurant_id=1&format=flat';
    clRest.Method = rmGET;
    try
      clRest.Execute;
    except
      ShowMessage('Sunucuya baglanamadi!');
      Exit;
    }

    if (clRest.Response <> '')
    {
      dataset = Clomosy.ClDataSetFromJSON(clRest.Response);
      try
        while (dataset.Eof == False)
        {
          PnlUrunItem = AnaForm.AddNewProPanel(ScrUrunler, 'Pnl_' + dataset.FieldByName('id').AsString);
          PnlUrunItem.Align = alTop;
          PnlUrunItem.Height = 90;
          PnlUrunItem.Margins.Top = 8;
          PnlUrunItem.Margins.Left = 16;
          PnlUrunItem.Margins.Right = 16;
          PnlUrunItem.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF');
          PnlUrunItem.clProSettings.BorderColor = clAlphaColor.clHexToColor('#F0F0F0');
          PnlUrunItem.clProSettings.BorderWidth = 1;
          PnlUrunItem.clProSettings.IsRound = True;
          PnlUrunItem.clProSettings.RoundWidth = 16;
          PnlUrunItem.clProSettings.RoundHeight = 16;
          PnlUrunItem.SetclProSettings(PnlUrunItem.clProSettings);

          PnlUrunIkon = AnaForm.AddNewProPanel(PnlUrunItem, 'Ikon_' + dataset.FieldByName('id').AsString);
          PnlUrunIkon.Align = alLeft;
          PnlUrunIkon.Width = 60;
          PnlUrunIkon.Margins.Left = 12;
          PnlUrunIkon.Margins.Top = 14;
          PnlUrunIkon.Margins.Bottom = 14;
          PnlUrunIkon.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F5F5F5');
          PnlUrunIkon.clProSettings.IsRound = True;
          PnlUrunIkon.clProSettings.RoundWidth = 12;
          PnlUrunIkon.clProSettings.RoundHeight = 12;
          PnlUrunIkon.SetclProSettings(PnlUrunIkon.clProSettings);
          ImgUrunList = AnaForm.AddNewImage(PnlUrunIkon, 'Img_' + dataset.FieldByName('id').AsString);
          ImgUrunList.Align = alClient;
          GorselUrl = dataset.FieldByName('image_url').AsString;
          if (Copy(GorselUrl, 1, 7) == 'uploads')
          { GorselUrl = BaseURL + GorselUrl; }
          if (GorselUrl <> '')
          { AnaForm.SetImage(ImgUrunList, GorselUrl); }

          PnlUrunSag = AnaForm.AddNewProPanel(PnlUrunItem, 'Sag_' + dataset.FieldByName('id').AsString);
          PnlUrunSag.Align = alRight;
          PnlUrunSag.Width = 115;
          PnlUrunSag.Margins.Right = 12;
          PnlUrunSag.Margins.Top = 12;
          PnlUrunSag.Margins.Bottom = 12;
          PnlUrunSag.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF');
          PnlUrunSag.SetclProSettings(PnlUrunSag.clProSettings);

          LblUrunFiyat = AnaForm.AddNewProLabel(PnlUrunSag, 'LblF_' + dataset.FieldByName('id').AsString, dataset.FieldByName('price').AsString + ' TL');
          LblUrunFiyat.Align = alTop;
          LblUrunFiyat.Height = 24;
          LblUrunFiyat.clProSettings.FontColor = clAlphaColor.clHexToColor('#2ec4b6');
          LblUrunFiyat.clProSettings.FontSize = 14;
          LblUrunFiyat.clProSettings.FontHorzAlign = palCenter;
          LblUrunFiyat.SetclProSettings(LblUrunFiyat.clProSettings);

          PnlButonlar = AnaForm.AddNewProPanel(PnlUrunSag, 'Btns_' + dataset.FieldByName('id').AsString);
          PnlButonlar.Align = alBottom;
          PnlButonlar.Height = 30;
          PnlButonlar.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF');
          PnlButonlar.SetclProSettings(PnlButonlar.clProSettings);

          BtnDuzenleItem = AnaForm.AddNewProButton(PnlButonlar, 'BtnE_' + dataset.FieldByName('id').AsString, 'Duzenle');
          BtnDuzenleItem.Align = alLeft;
          BtnDuzenleItem.Width = 52;
          BtnDuzenleItem.clTagInt = dataset.FieldByName('id').AsInteger;
          BtnDuzenleItem.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0FAFA');
          BtnDuzenleItem.clProSettings.FontSize = 11;
          BtnDuzenleItem.clProSettings.FontColor = clAlphaColor.clHexToColor('#2ec4b6');
          BtnDuzenleItem.clProSettings.IsRound = True;
          BtnDuzenleItem.clProSettings.RoundWidth = 8;
          BtnDuzenleItem.clProSettings.RoundHeight = 8;
          BtnDuzenleItem.SetclProSettings(BtnDuzenleItem.clProSettings);
          AnaForm.AddNewEvent(BtnDuzenleItem, tbeOnClick, 'GoToDuzenle');

          BtnSilItem = AnaForm.AddNewProButton(PnlButonlar, 'BtnS_' + dataset.FieldByName('id').AsString, 'Sil');
          BtnSilItem.Align = alRight;
          BtnSilItem.Width = 52;
          BtnSilItem.clTagInt = dataset.FieldByName('id').AsInteger;
          BtnSilItem.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFF0F0');
          BtnSilItem.clProSettings.FontColor = clAlphaColor.clHexToColor('#ff3f3f');
          BtnSilItem.clProSettings.FontSize = 12;
          BtnSilItem.clProSettings.IsRound = True;
          BtnSilItem.clProSettings.RoundWidth = 8;
          BtnSilItem.clProSettings.RoundHeight = 8;
          BtnSilItem.SetclProSettings(BtnSilItem.clProSettings);
          AnaForm.AddNewEvent(BtnSilItem, tbeOnClick, 'UrunSil');

          PnlUrunSol = AnaForm.AddNewProPanel(PnlUrunItem, 'Sol_' + dataset.FieldByName('id').AsString);
          PnlUrunSol.Align = alClient;
          PnlUrunSol.Margins.Left = 10;
          PnlUrunSol.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF');
          PnlUrunSol.SetclProSettings(PnlUrunSol.clProSettings);

          LblUrunAd = AnaForm.AddNewProLabel(PnlUrunSol, 'LblA_' + dataset.FieldByName('id').AsString, dataset.FieldByName('name').AsString);
          LblUrunAd.Align = alTop;
          LblUrunAd.Height = 32;
          LblUrunAd.Margins.Top = 12;
          LblUrunAd.clProSettings.FontColor = clAlphaColor.clHexToColor('#111111');
          LblUrunAd.clProSettings.FontSize = 15;
          LblUrunAd.clProSettings.FontVertAlign = palCenter;
          LblUrunAd.SetclProSettings(LblUrunAd.clProSettings);

          LblUrunKat = AnaForm.AddNewProLabel(PnlUrunSol, 'LblK_' + dataset.FieldByName('id').AsString, dataset.FieldByName('category_name').AsString);
          LblUrunKat.Align = alTop;
          LblUrunKat.Height = 20;
          LblUrunKat.clProSettings.FontColor = clAlphaColor.clHexToColor('#2ec4b6');
          LblUrunKat.clProSettings.FontSize = 11;
          LblUrunKat.clProSettings.FontVertAlign = palCenter;
          LblUrunKat.SetclProSettings(LblUrunKat.clProSettings);

          dataset.Next;
        }
      finally
        dataset.Free;
      }
    }
  finally
    clRest.Free;
  }
}

void GoToAna;
{
  EkraniGoster(PnlAna);
  UrunleriYukle;
}

void GoToDuzenle;
var
  BtnDuz: TclProButton;
  getRest: TclRest;
  getDataset: TCLJSONQuery;
  prodDataset: TCLJSONQuery;
  imageUrlStr: String;
{
  BtnDuz = TclProButton(AnaForm.clSender);
  DuzenlenenUrunId = BtnDuz.clTagInt;
  IsEditMode = True;
  FotoSecildi = False;
  LblYeniUrunBaslik.Text = 'Urunu Duzenle';
  EdtUrunAdi.Text = '';
  EdtUrunFiyat.Text = '';
  ImgUrunFoto.MultiResBitmap.Clear; // AV hatası önlendi

  getRest = TclRest.Create;
  try
    getRest.BaseURL = BaseURL + 'api.php?action=get_product&restaurant_id=1&id=' + IntToStr(DuzenlenenUrunId);
    getRest.Method = rmGET;
    try
      getRest.Execute;
    except
      ShowMessage('Urun bilgileri alinamadi.');
      Exit;
    }

    if (getRest.Response <> '')
    {
      getDataset = Clomosy.ClDataSetFromJSON('[' + getRest.Response + ']'); // Objeyi array yapmak için [] sarmalandı
      try
        if (getDataset.FieldByName('success').AsBoolean)
        {
          prodDataset = Clomosy.ClDataSetFromJSON('[' + getDataset.FieldByName('product').AsString + ']'); // product objesini parse etmek için [] sarmalandı
          try
            EdtUrunAdi.Text = prodDataset.FieldByName('name').AsString;
            EdtUrunFiyat.Text = prodDataset.FieldByName('price').AsString;
            KategoriSec(prodDataset.FieldByName('category_id').AsInteger);
            imageUrlStr = prodDataset.FieldByName('image_url').AsString;
            if (Copy(imageUrlStr, 1, 7) == 'uploads')
            { imageUrlStr = BaseURL + imageUrlStr; }
            if (imageUrlStr <> '')
            {
              AnaForm.SetImage(ImgUrunFoto, imageUrlStr);
              LblFotoDurum.Text = 'Mevcut fotograf mevcut';
              LblFotoDurum.clProSettings.FontColor = clAlphaColor.clHexToColor('#2ec4b6');
              LblFotoDurum.SetclProSettings(LblFotoDurum.clProSettings);
            }
            else
            {
              LblFotoDurum.Text = 'Fotograf yok';
              LblFotoDurum.clProSettings.FontColor = clAlphaColor.clHexToColor('#999999');
              LblFotoDurum.SetclProSettings(LblFotoDurum.clProSettings);
            }
            EkraniGoster(PnlYeniUrun);
          finally
            prodDataset.Free;
          }
        }
        else
        { ShowMessage('Urun bulunamadi.'); }
      finally
        getDataset.Free;
      }
    }
  finally
    getRest.Free;
  }
}

void GoToYeniUrun;
{
  IsEditMode = False;
  DuzenlenenUrunId = 0;
  FotoSecildi = False;
  LblYeniUrunBaslik.Text = 'Yeni Urun Ekle';
  EdtUrunAdi.Text = '';
  EdtUrunFiyat.Text = '';
  ImgUrunFoto.MultiResBitmap.Clear; // AV hatası önlendi
  CmbKategori.ItemIndex = -1;
  LblFotoDurum.Text = 'Fotograf secilmedi';
  LblFotoDurum.clProSettings.FontColor = clAlphaColor.clHexToColor('#999999');
  LblFotoDurum.SetclProSettings(LblFotoDurum.clProSettings);
  EkraniGoster(PnlYeniUrun);
}

void FotoSec;
{
  try
    Clomosy.ImageChooser(AnaForm, ImgUrunFoto);
    FotoSecildi = True;
    LblFotoDurum.Text = 'Fotograf secildi';
    LblFotoDurum.clProSettings.FontColor = clAlphaColor.clHexToColor('#2ec4b6');
    LblFotoDurum.SetclProSettings(LblFotoDurum.clProSettings);
  except
    ShowMessage('Kamera acilamadi.');
  }
}

void YeniUrunKaydet;
var
  KaydetRest: TclRest;
  reqBody: String;
  LBase64Veri: String;
  LMemStream: TCLMemoryStream;
  selCatId: String;
{
  if (EdtUrunAdi.Text == '')
  { ShowMessage('Urun adi giriniz!'); Exit; }
  if (EdtUrunFiyat.Text == '')
  { ShowMessage('Fiyat giriniz!'); Exit; }
  if (CmbKategori.ItemIndex == -1)
  { ShowMessage('Kategori seciniz!'); Exit; }
  if (IsEditMode == False)
  {
    if (FotoSecildi == False)
    { ShowMessage('Fotograf seciniz!'); Exit; }
  }

  selCatId = CmbKategori.GetValueIndex(CmbKategori.ItemIndex);
  LBase64Veri = '';

  if (FotoSecildi)
  {
    LMemStream = TCLMemoryStream.Create;
    try
      ImgUrunFoto.Bitmap.SaveToStream(LMemStream);
      if (LMemStream.Size == 0)
      {
        ShowMessage('Fotograf bos!');
        Exit;
      }
      LBase64Veri = LMemStream.AsBase64;
    finally
      LMemStream.Free;
    }
  }

  reqBody = '{"restaurant_id":1,"category_id":' + selCatId;
  reqBody = reqBody + ',"name":"' + EdtUrunAdi.Text + '"';
  reqBody = reqBody + ',"description":"' + EdtUrunAdi.Text + '"';
  reqBody = reqBody + ',"price":' + EdtUrunFiyat.Text;
  if (IsEditMode)
  { reqBody = reqBody + ',"id":' + IntToStr(DuzenlenenUrunId); }
  if (FotoSecildi)
  { reqBody = reqBody + ',"image_base64":"' + LBase64Veri + '"'; }
  reqBody = reqBody + '}';

  KaydetRest = TclRest.Create;
  try
    KaydetRest.BaseURL = BaseURL + 'api.php?action=save_product';
    KaydetRest.Accept = 'application/json';
    KaydetRest.Method = rmPOST;
    KaydetRest.AddBody(reqBody, 'application/json');
    try
      KaydetRest.Execute;
    except
      ShowMessage('Sunucu baglanti hatasi!');
      Exit;
    }
    if (KaydetRest.Response <> '')
    {
      ShowMessage('Kaydedildi!');
      EdtUrunAdi.Text = '';
      EdtUrunFiyat.Text = '';
      ImgUrunFoto.MultiResBitmap.Clear; // AV hatası önlendi
      IsEditMode = False;
      DuzenlenenUrunId = 0;
      FotoSecildi = False;
      GoToAna;
    }
    else
    { ShowMessage('Sunucudan yanit alinamadi.'); }
  finally
    KaydetRest.Free;
  }
}

void SiparisTamamla;
var
  delRest: TclRest;
  reqBody: String;
  BtnT: TclProButton;
{
  BtnT = TclProButton(AnaForm.clSender);
  reqBody = '{"action":"delete_order","id":' + IntToStr(BtnT.clTagInt) + ',"restaurant_id":1}';
  delRest = TclRest.Create;
  try
    delRest.BaseURL = BaseURL + 'api.php';
    delRest.Accept = 'application/json';
    delRest.Method = rmPOST;
    delRest.AddBody(reqBody, 'application/json');
    try
      delRest.Execute;
      TclProPanel(BtnT.Parent).Visible = False;
    except
      ShowMessage('Hata olustu');
    }
  finally
    delRest.Free;
  }
}

void SiparisleriYukle;
var
  ordRest: TclRest;
  ordDataset: TCLJSONQuery;
  PnlOrdItem: TclProPanel;
  LblOrdNo: TclProLabel;
  LblOrdDetay: TclProLabel;
  LblOrdFiyat: TclProLabel;
  BtnTamamla: TclProButton;
{
  ScrSiparisler.Free;
  ScrSiparisler = AnaForm.AddNewVertScrollBox(PnlSiparisler, 'ScrSiparisler');
  ScrSiparisler.Align = alClient;

  ordRest = TclRest.Create;
  try
    ordRest.BaseURL = BaseURL + 'api.php?action=get_orders&restaurant_id=1&format=flat';
    ordRest.Method = rmGET;
    try
      ordRest.Execute;
    except
      ShowMessage('Siparisler yuklenemedi.');
      Exit;
    }

    if (ordRest.Response <> '')
    {
      ordDataset = Clomosy.ClDataSetFromJSON(ordRest.Response);
      try
        while (ordDataset.Eof == False)
        {
          PnlOrdItem = AnaForm.AddNewProPanel(ScrSiparisler, 'PnlOrd_' + ordDataset.FieldByName('id').AsString);
          PnlOrdItem.Align = alTop;
          PnlOrdItem.Height = 120;
          PnlOrdItem.Margins.Top = 10;
          PnlOrdItem.Margins.Left = 16;
          PnlOrdItem.Margins.Right = 16;
          PnlOrdItem.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF');
          PnlOrdItem.clProSettings.BorderColor = clAlphaColor.clHexToColor('#E8E8E8');
          PnlOrdItem.clProSettings.BorderWidth = 1;
          PnlOrdItem.clProSettings.IsRound = True;
          PnlOrdItem.clProSettings.RoundWidth = 16;
          PnlOrdItem.clProSettings.RoundHeight = 16;
          PnlOrdItem.SetclProSettings(PnlOrdItem.clProSettings);

          LblOrdNo = AnaForm.AddNewProLabel(PnlOrdItem, 'LblON_' + ordDataset.FieldByName('id').AsString, 'Siparis #' + ordDataset.FieldByName('id').AsString);
          LblOrdNo.Align = alTop;
          LblOrdNo.Height = 30;
          LblOrdNo.Margins.Left = 14;
          LblOrdNo.Margins.Top = 10;
          LblOrdNo.clProSettings.FontColor = clAlphaColor.clHexToColor('#111111');
          LblOrdNo.clProSettings.FontSize = 14;
          LblOrdNo.clProSettings.FontVertAlign = palCenter;
          LblOrdNo.SetclProSettings(LblOrdNo.clProSettings);

          LblOrdDetay = AnaForm.AddNewProLabel(PnlOrdItem, 'LblOD_' + ordDataset.FieldByName('id').AsString, ordDataset.FieldByName('items_text').AsString);
          LblOrdDetay.Align = alTop;
          LblOrdDetay.Height = 24;
          LblOrdDetay.Margins.Left = 14;
          LblOrdDetay.Margins.Right = 14;
          LblOrdDetay.clProSettings.FontColor = clAlphaColor.clHexToColor('#666666');
          LblOrdDetay.clProSettings.FontSize = 12;
          LblOrdDetay.clProSettings.FontVertAlign = palCenter;
          LblOrdDetay.SetclProSettings(LblOrdDetay.clProSettings);

          LblOrdFiyat = AnaForm.AddNewProLabel(PnlOrdItem, 'LblOP_' + ordDataset.FieldByName('id').AsString, 'Toplam: ' + ordDataset.FieldByName('total_price').AsString + ' TL');
          LblOrdFiyat.Align = alTop;
          LblOrdFiyat.Height = 22;
          LblOrdFiyat.Margins.Left = 14;
          LblOrdFiyat.Margins.Top = 2;
          LblOrdFiyat.clProSettings.FontColor = clAlphaColor.clHexToColor('#2ec4b6');
          LblOrdFiyat.clProSettings.FontSize = 13;
          LblOrdFiyat.clProSettings.FontVertAlign = palCenter;
          LblOrdFiyat.SetclProSettings(LblOrdFiyat.clProSettings);

          BtnTamamla = AnaForm.AddNewProButton(PnlOrdItem, 'BtnT_' + ordDataset.FieldByName('id').AsString, 'Tamamlandi');
          BtnTamamla.Align = alBottom;
          BtnTamamla.Height = 30;
          BtnTamamla.Margins.Left = 14;
          BtnTamamla.Margins.Right = 14;
          BtnTamamla.Margins.Bottom = 8;
          BtnTamamla.clTagInt = ordDataset.FieldByName('id').AsInteger;
          BtnTamamla.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#EAFBFA');
          BtnTamamla.clProSettings.FontColor = clAlphaColor.clHexToColor('#2ec4b6');
          BtnTamamla.clProSettings.FontSize = 12;
          BtnTamamla.clProSettings.IsRound = True;
          BtnTamamla.clProSettings.RoundWidth = 8;
          BtnTamamla.clProSettings.RoundHeight = 8;
          BtnTamamla.SetclProSettings(BtnTamamla.clProSettings);
          AnaForm.AddNewEvent(BtnTamamla, tbeOnClick, 'SiparisTamamla');

          ordDataset.Next;
        }
      finally
        ordDataset.Free;
      }
    }
  finally
    ordRest.Free;
  }

  Clomosy.SendNotifyAllUsers('Yeni Siparis!', 'Bekleyen siparislerinizi kontrol edin.', '');
}

void GoToSiparisler;
{
  EkraniGoster(PnlSiparisler);
  SiparisleriYukle;
}

{
  IsEditMode = False;
  DuzenlenenUrunId = 0;
  FotoSecildi = False;
  KategoriSayisi = 0;

  AnaForm = TclForm.Create(Self);
  AnaForm.SetFormColor('#F8F9FA', '', clGNone);

  PnlAna = AnaForm.AddNewPanel(AnaForm, 'PnlAna');
  PnlAna.Align = alClient;

  PnlAnaUst = AnaForm.AddNewProPanel(PnlAna, 'PnlAnaUst');
  PnlAnaUst.Align = alTop;
  PnlAnaUst.Height = 64;
  PnlAnaUst.Margins.Left = 16;
  PnlAnaUst.Margins.Right = 16;
  PnlAnaUst.Margins.Top = 8;
  PnlAnaUst.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F8F9FA');
  PnlAnaUst.SetclProSettings(PnlAnaUst.clProSettings);

  LblAnaBaslik = AnaForm.AddNewProLabel(PnlAnaUst, 'LblAna', 'Menu Yonetimi');
  LblAnaBaslik.Align = alLeft;
  LblAnaBaslik.Width = 160;
  LblAnaBaslik.clProSettings.FontColor = clAlphaColor.clHexToColor('#111111');
  LblAnaBaslik.clProSettings.FontSize = 20;
  LblAnaBaslik.clProSettings.FontVertAlign = palCenter;
  LblAnaBaslik.SetclProSettings(LblAnaBaslik.clProSettings);

  BtnQR = AnaForm.AddNewProButton(PnlAnaUst, 'BtnQR', 'QR');
  BtnQR.Align = alRight;
  BtnQR.Width = 44;
  BtnQR.Height = 44;
  BtnQR.Margins.Top = 10;
  BtnQR.Margins.Bottom = 10;
  BtnQR.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#111111');
  BtnQR.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  BtnQR.clProSettings.FontSize = 14;
  BtnQR.clProSettings.IsRound = True;
  BtnQR.clProSettings.RoundWidth = 12;
  BtnQR.clProSettings.RoundHeight = 12;
  BtnQR.SetclProSettings(BtnQR.clProSettings);
  AnaForm.AddNewEvent(BtnQR, tbeOnClick, 'QRGoster');

  BtnSiparisler = AnaForm.AddNewProButton(PnlAnaUst, 'BtnSip', 'Sip');
  BtnSiparisler.Align = alRight;
  BtnSiparisler.Width = 44;
  BtnSiparisler.Height = 44;
  BtnSiparisler.Margins.Top = 10;
  BtnSiparisler.Margins.Bottom = 10;
  BtnSiparisler.Margins.Right = 8;
  BtnSiparisler.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF');
  BtnSiparisler.clProSettings.FontColor = clAlphaColor.clHexToColor('#111111');
  BtnSiparisler.clProSettings.FontSize = 11;
  BtnSiparisler.clProSettings.IsRound = True;
  BtnSiparisler.clProSettings.RoundWidth = 12;
  BtnSiparisler.clProSettings.RoundHeight = 12;
  BtnSiparisler.clProSettings.BorderColor = clAlphaColor.clHexToColor('#E0E0E0');
  BtnSiparisler.clProSettings.BorderWidth = 1;
  BtnSiparisler.SetclProSettings(BtnSiparisler.clProSettings);
  AnaForm.AddNewEvent(BtnSiparisler, tbeOnClick, 'GoToSiparisler');

  ScrUrunler = AnaForm.AddNewVertScrollBox(PnlAna, 'ScrUrunler');
  ScrUrunler.Align = alClient;

  PnlAnaAlt = AnaForm.AddNewProPanel(PnlAna, 'PnlAnaAlt');
  PnlAnaAlt.Align = alBottom;
  PnlAnaAlt.Height = 88;
  PnlAnaAlt.Margins.Left = 16;
  PnlAnaAlt.Margins.Right = 16;
  PnlAnaAlt.Margins.Bottom = 8;
  PnlAnaAlt.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F8F9FA');
  PnlAnaAlt.SetclProSettings(PnlAnaAlt.clProSettings);

  BtnUrunEkle = AnaForm.AddNewProButton(PnlAnaAlt, 'BtnEkle', '+ Yeni Urun Ekle');
  BtnUrunEkle.Align = alClient;
  BtnUrunEkle.Margins.Top = 12;
  BtnUrunEkle.Margins.Bottom = 12;
  BtnUrunEkle.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#111111');
  BtnUrunEkle.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  BtnUrunEkle.clProSettings.FontSize = 17;
  BtnUrunEkle.clProSettings.IsRound = True;
  BtnUrunEkle.clProSettings.RoundWidth = 16;
  BtnUrunEkle.clProSettings.RoundHeight = 16;
  BtnUrunEkle.SetclProSettings(BtnUrunEkle.clProSettings);
  AnaForm.AddNewEvent(BtnUrunEkle, tbeOnClick, 'GoToYeniUrun');

  PnlQRModal = AnaForm.AddNewProPanel(AnaForm, 'PnlQRModal');
  PnlQRModal.Align = alClient;
  PnlQRModal.Visible = False;
  PnlQRModal.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#CC000000');
  PnlQRModal.SetclProSettings(PnlQRModal.clProSettings);
  AnaForm.AddNewEvent(PnlQRModal, tbeOnClick, 'QRKapat');

  PnlQRKart = AnaForm.AddNewProPanel(PnlQRModal, 'PnlQRKart');
  PnlQRKart.Align = alCenter;
  PnlQRKart.Width = 280;
  PnlQRKart.Height = 360;
  PnlQRKart.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF');
  PnlQRKart.clProSettings.IsRound = True;
  PnlQRKart.clProSettings.RoundWidth = 24;
  PnlQRKart.clProSettings.RoundHeight = 24;
  PnlQRKart.SetclProSettings(PnlQRKart.clProSettings);

  LblQRBaslik = AnaForm.AddNewProLabel(PnlQRKart, 'LblQR', 'Menu QR Kodu');
  LblQRBaslik.Align = alTop;
  LblQRBaslik.Height = 50;
  LblQRBaslik.clProSettings.FontColor = clAlphaColor.clHexToColor('#111111');
  LblQRBaslik.clProSettings.FontSize = 18;
  LblQRBaslik.clProSettings.FontHorzAlign = palCenter;
  LblQRBaslik.clProSettings.FontVertAlign = palCenter;
  LblQRBaslik.SetclProSettings(LblQRBaslik.clProSettings);

  QrKod = AnaForm.AddNewQRCodeGenerator(PnlQRKart, 'QrKod', BaseURL + 'menu.php?id=1&i=1');
  QrKod.Align = alTop;
  QrKod.Height = 240;
  QrKod.Margins.Left = 20;
  QrKod.Margins.Right = 20;

  BtnQRKapat = AnaForm.AddNewProButton(PnlQRKart, 'BtnQRKapat', 'Kapat');
  BtnQRKapat.Align = alBottom;
  BtnQRKapat.Height = 48;
  BtnQRKapat.Margins.Left = 20;
  BtnQRKapat.Margins.Right = 20;
  BtnQRKapat.Margins.Bottom = 16;
  BtnQRKapat.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F8F9FA');
  BtnQRKapat.clProSettings.FontColor = clAlphaColor.clHexToColor('#111111');
  BtnQRKapat.clProSettings.FontSize = 15;
  BtnQRKapat.clProSettings.IsRound = True;
  BtnQRKapat.clProSettings.RoundWidth = 12;
  BtnQRKapat.clProSettings.RoundHeight = 12;
  BtnQRKapat.SetclProSettings(BtnQRKapat.clProSettings);
  AnaForm.AddNewEvent(BtnQRKapat, tbeOnClick, 'QRKapat');

  PnlYeniUrun = AnaForm.AddNewPanel(AnaForm, 'PnlYeniUrun');
  PnlYeniUrun.Align = alClient;
  PnlYeniUrun.Visible = False;

  PnlYeniUrunUst = AnaForm.AddNewProPanel(PnlYeniUrun, 'PnlYeniUst');
  PnlYeniUrunUst.Align = alTop;
  PnlYeniUrunUst.Height = 64;
  PnlYeniUrunUst.Margins.Left = 16;
  PnlYeniUrunUst.Margins.Right = 16;
  PnlYeniUrunUst.Margins.Top = 8;
  PnlYeniUrunUst.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F8F9FA');
  PnlYeniUrunUst.SetclProSettings(PnlYeniUrunUst.clProSettings);

  BtnYeniUrunGeri = AnaForm.AddNewProButton(PnlYeniUrunUst, 'BtnGeri', '<');
  BtnYeniUrunGeri.Align = alLeft;
  BtnYeniUrunGeri.Width = 44;
  BtnYeniUrunGeri.Height = 44;
  BtnYeniUrunGeri.Margins.Top = 10;
  BtnYeniUrunGeri.Margins.Bottom = 10;
  BtnYeniUrunGeri.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF');
  BtnYeniUrunGeri.clProSettings.FontColor = clAlphaColor.clHexToColor('#111111');
  BtnYeniUrunGeri.clProSettings.FontSize = 20;
  BtnYeniUrunGeri.clProSettings.IsRound = True;
  BtnYeniUrunGeri.clProSettings.RoundWidth = 12;
  BtnYeniUrunGeri.clProSettings.RoundHeight = 12;
  BtnYeniUrunGeri.clProSettings.BorderColor = clAlphaColor.clHexToColor('#E0E0E0');
  BtnYeniUrunGeri.clProSettings.BorderWidth = 1;
  BtnYeniUrunGeri.SetclProSettings(BtnYeniUrunGeri.clProSettings);
  AnaForm.AddNewEvent(BtnYeniUrunGeri, tbeOnClick, 'GoToAna');

  LblYeniUrunBaslik = AnaForm.AddNewProLabel(PnlYeniUrunUst, 'LblYBaslik', 'Yeni Urun Ekle');
  LblYeniUrunBaslik.Align = alClient;
  LblYeniUrunBaslik.clProSettings.FontColor = clAlphaColor.clHexToColor('#111111');
  LblYeniUrunBaslik.clProSettings.FontSize = 20;
  LblYeniUrunBaslik.clProSettings.FontHorzAlign = palCenter;
  LblYeniUrunBaslik.clProSettings.FontVertAlign = palCenter;
  LblYeniUrunBaslik.SetclProSettings(LblYeniUrunBaslik.clProSettings);

  ScrYeniUrunForm = AnaForm.AddNewVertScrollBox(PnlYeniUrun, 'ScrYeniForm');
  ScrYeniUrunForm.Align = alClient;

  PnlForm = AnaForm.AddNewProPanel(ScrYeniUrunForm, 'PnlForm');
  PnlForm.Align = alTop;
  PnlForm.Height = 590;
  PnlForm.Margins.Left = 16;
  PnlForm.Margins.Right = 16;
  PnlForm.Margins.Top = 8;
  PnlForm.Margins.Bottom = 16;
  PnlForm.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF');
  PnlForm.clProSettings.IsRound = True;
  PnlForm.clProSettings.RoundWidth = 20;
  PnlForm.clProSettings.RoundHeight = 20;
  PnlForm.clProSettings.BorderColor = clAlphaColor.clHexToColor('#F0F0F0');
  PnlForm.clProSettings.BorderWidth = 1;
  PnlForm.SetclProSettings(PnlForm.clProSettings);

  ImgUrunFoto = AnaForm.AddNewImage(PnlForm, 'ImgUrunFoto');
  ImgUrunFoto.Align = alTop;
  ImgUrunFoto.Height = 180;
  ImgUrunFoto.Margins.Left = 20;
  ImgUrunFoto.Margins.Right = 20;
  ImgUrunFoto.Margins.Top = 20;

  BtnFotoSec = AnaForm.AddNewProButton(PnlForm, 'BtnFotoSec', 'Fotograf Sec');
  BtnFotoSec.Align = alTop;
  BtnFotoSec.Height = 48;
  BtnFotoSec.Margins.Left = 20;
  BtnFotoSec.Margins.Right = 20;
  BtnFotoSec.Margins.Top = 12;
  BtnFotoSec.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F0FAFA');
  BtnFotoSec.clProSettings.FontColor = clAlphaColor.clHexToColor('#2ec4b6');
  BtnFotoSec.clProSettings.FontSize = 15;
  BtnFotoSec.clProSettings.BorderColor = clAlphaColor.clHexToColor('#2ec4b6');
  BtnFotoSec.clProSettings.BorderWidth = 1;
  BtnFotoSec.clProSettings.IsRound = True;
  BtnFotoSec.clProSettings.RoundWidth = 12;
  BtnFotoSec.clProSettings.RoundHeight = 12;
  BtnFotoSec.SetclProSettings(BtnFotoSec.clProSettings);
  AnaForm.AddNewEvent(BtnFotoSec, tbeOnClick, 'FotoSec');

  LblFotoDurum = AnaForm.AddNewProLabel(PnlForm, 'LblFotoDurum', 'Fotograf secilmedi');
  LblFotoDurum.Align = alTop;
  LblFotoDurum.Height = 24;
  LblFotoDurum.Margins.Left = 20;
  LblFotoDurum.Margins.Top = 6;
  LblFotoDurum.clProSettings.FontColor = clAlphaColor.clHexToColor('#999999');
  LblFotoDurum.clProSettings.FontSize = 13;
  LblFotoDurum.SetclProSettings(LblFotoDurum.clProSettings);

  CmbKategori = AnaForm.AddNewComboBox(PnlForm, 'CmbKategori');
  CmbKategori.Align = alTop;
  CmbKategori.Height = 48;
  CmbKategori.Margins.Left = 20;
  CmbKategori.Margins.Right = 20;
  CmbKategori.Margins.Top = 12;

  EdtUrunAdi = AnaForm.AddNewEdit(PnlForm, 'EdtUrunAdi', 'Urun Adi');
  EdtUrunAdi.Align = alTop;
  EdtUrunAdi.Height = 48;
  EdtUrunAdi.Margins.Left = 20;
  EdtUrunAdi.Margins.Right = 20;
  EdtUrunAdi.Margins.Top = 12;

  EdtUrunFiyat = AnaForm.AddNewEdit(PnlForm, 'EdtUrunFiyat', 'Fiyat (150.00)');
  EdtUrunFiyat.Align = alTop;
  EdtUrunFiyat.Height = 48;
  EdtUrunFiyat.Margins.Left = 20;
  EdtUrunFiyat.Margins.Right = 20;
  EdtUrunFiyat.Margins.Top = 12;

  BtnKaydet = AnaForm.AddNewProButton(PnlForm, 'BtnKaydet', 'Kaydet');
  BtnKaydet.Align = alBottom;
  BtnKaydet.Height = 52;
  BtnKaydet.Margins.Left = 20;
  BtnKaydet.Margins.Right = 20;
  BtnKaydet.Margins.Bottom = 20;
  BtnKaydet.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#111111');
  BtnKaydet.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  BtnKaydet.clProSettings.FontSize = 17;
  BtnKaydet.clProSettings.IsRound = True;
  BtnKaydet.clProSettings.RoundWidth = 14;
  BtnKaydet.clProSettings.RoundHeight = 14;
  BtnKaydet.SetclProSettings(BtnKaydet.clProSettings);
  AnaForm.AddNewEvent(BtnKaydet, tbeOnClick, 'YeniUrunKaydet');

  PnlSiparisler = AnaForm.AddNewPanel(AnaForm, 'PnlSiparisler');
  PnlSiparisler.Align = alClient;
  PnlSiparisler.Visible = False;

  PnlSiparislerUst = AnaForm.AddNewProPanel(PnlSiparisler, 'PnlSipUst');
  PnlSiparislerUst.Align = alTop;
  PnlSiparislerUst.Height = 64;
  PnlSiparislerUst.Margins.Left = 16;
  PnlSiparislerUst.Margins.Right = 16;
  PnlSiparislerUst.Margins.Top = 8;
  PnlSiparislerUst.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F8F9FA');
  PnlSiparislerUst.SetclProSettings(PnlSiparislerUst.clProSettings);

  BtnSiparislerGeri = AnaForm.AddNewProButton(PnlSiparislerUst, 'BtnSipGeri', '<');
  BtnSiparislerGeri.Align = alLeft;
  BtnSiparislerGeri.Width = 44;
  BtnSiparislerGeri.Height = 44;
  BtnSiparislerGeri.Margins.Top = 10;
  BtnSiparislerGeri.Margins.Bottom = 10;
  BtnSiparislerGeri.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF');
  BtnSiparislerGeri.clProSettings.FontColor = clAlphaColor.clHexToColor('#111111');
  BtnSiparislerGeri.clProSettings.FontSize = 20;
  BtnSiparislerGeri.clProSettings.IsRound = True;
  BtnSiparislerGeri.clProSettings.RoundWidth = 12;
  BtnSiparislerGeri.clProSettings.RoundHeight = 12;
  BtnSiparislerGeri.clProSettings.BorderColor = clAlphaColor.clHexToColor('#E0E0E0');
  BtnSiparislerGeri.clProSettings.BorderWidth = 1;
  BtnSiparislerGeri.SetclProSettings(BtnSiparislerGeri.clProSettings);
  AnaForm.AddNewEvent(BtnSiparislerGeri, tbeOnClick, 'GoToAna');

  BtnSiparisYenile = AnaForm.AddNewProButton(PnlSiparislerUst, 'BtnSipYenile', 'Yenile');
  BtnSiparisYenile.Align = alRight;
  BtnSiparisYenile.Width = 60;
  BtnSiparisYenile.Height = 44;
  BtnSiparisYenile.Margins.Top = 10;
  BtnSiparisYenile.Margins.Bottom = 10;
  BtnSiparisYenile.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#EAFBFA');
  BtnSiparisYenile.clProSettings.FontColor = clAlphaColor.clHexToColor('#2ec4b6');
  BtnSiparisYenile.clProSettings.FontSize = 13;
  BtnSiparisYenile.clProSettings.IsRound = True;
  BtnSiparisYenile.clProSettings.RoundWidth = 12;
  BtnSiparisYenile.clProSettings.RoundHeight = 12;
  BtnSiparisYenile.SetclProSettings(BtnSiparisYenile.clProSettings);
  AnaForm.AddNewEvent(BtnSiparisYenile, tbeOnClick, 'GoToSiparisler');

  LblSiparislerBaslik = AnaForm.AddNewProLabel(PnlSiparislerUst, 'LblSipBaslik', 'Siparisler');
  LblSiparislerBaslik.Align = alClient;
  LblSiparislerBaslik.clProSettings.FontColor = clAlphaColor.clHexToColor('#111111');
  LblSiparislerBaslik.clProSettings.FontSize = 19;
  LblSiparislerBaslik.clProSettings.FontHorzAlign = palCenter;
  LblSiparislerBaslik.clProSettings.FontVertAlign = palCenter;
  LblSiparislerBaslik.SetclProSettings(LblSiparislerBaslik.clProSettings);

  ScrSiparisler = AnaForm.AddNewVertScrollBox(PnlSiparisler, 'ScrSiparisler');
  ScrSiparisler.Align = alClient;

  KategorileriYukle;
  UrunleriYukle;

  AnaForm.Run;
}

İyi forumlar Embarrassed

< defer="" ="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" -cf-beacon=""version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"_timing":"name":"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true,"location_startswith":null" crossorigin="anonymous">
Access Denied?
Then I create my own path.
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,070 Saniyede Yüklendi.