Sayfayı Yazdır | Pencereyi Kapat

görsel yüklememe sorunu

Nereden Yazdırıldığı: Clomosy | Forum
Kategori: Genel Programlama
Forum Adı: Clomosy ile değişken kullanımı
Forum Tanımlaması: TRObject dili ile değişken tanımlaması ve ekranda gösterme
URL: https://forum.clomosy.com.tr/forum_posts.asp?TID=1585
Tarih: 03 Temmuz 2026 Saat 15:10
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: görsel yüklememe sorunu
Mesajı Yazan: Hüseyin_Sadik
Konu: görsel yüklememe sorunu
Mesaj Tarihi: 03 Temmuz 2026 Saat 11:25
var
  AnaForm: TclForm;
  PnlAna, PnlUrunler, PnlYeniUrun: TclPanel;
  
  // Ana Ekran
  QrKod: TClQRCodeGenerator;
  BtnUrunGit: TclProButton;
  LytAnaOrta: TclLayout;
  
  // Ürünler Ekranı
  PnlUrunlerUst, PnlUrunlerAlt: TclProPanel;
  BtnUrunGeri, BtnYeniUrunEkran: TclProButton;
  ScrUrunler: TclVertScrollBox;
  
  // Yeni Ürün Ekranı
  BtnYeniUrunGeri, BtnKaydet, BtnFotoSec: TclProButton;
  EdtUrunAdi, EdtUrunFiyat: TclEdit;
  ImgUrunFoto: TclImage;
  FotoSecildi: Boolean;
  
  BaseURL: String;

// --- EKRAN GEÇİŞ FONKSİYONLARI ---
void EkraniGoster(PnlGoster: TclPanel);
{
  PnlAna.Visible = False;
  PnlUrunler.Visible = False;
  PnlYeniUrun.Visible = False;
  
  PnlGoster.Visible = True;
}

// --- REST API: ÜRÜN SİL ---
void UrunSil;
var
  SilRest: TclRest;
  reqBody: String;
  BtnSil: TclProButton;
{
  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;
  
  ShowMessage('Ürün başarıyla silindi!');
  
  // Ürün silindikten sonra listeyi tamamen yenilemek için UrunleriYukle'yi çağırmayacağız çünkü UrunleriYukle aşağıda tanımlı.
  // Bunun yerine doğrudan clRest Execute komutunu tekrar çalıştıracak bir yapı kurabiliriz veya AnaForm.Run ile yeniletebiliriz.
  // En iyisi silinen componenti gizlemek (Görsel yenileme).
  TclProPanel(BtnSil.Parent).Visible = False;
}

// --- REST API: ÜRÜNLERİ YÜKLE ---
void UrunleriYukle;
var
  clRest: TclRest;
  dataset: TCLJSONQuery;
  LblUrunAd, LblUrunFiyat: TclProLabel;
  PnlUrunItem: TclProPanel;
  BtnSilItem: TclProButton;
{
  // Temizle
  ScrUrunler.Free;
  ScrUrunler = AnaForm.AddNewVertScrollBox(PnlUrunler, 'ScrUrunler');
  ScrUrunler.Align = alClient;
  
  clRest = TclRest.Create;
  clRest.BaseURL = BaseURL + 'api.php?action=get_products&restaurant_id=1&format=flat';
  clRest.Method = rmGET;
  clRest.Execute;
  
  if clRest.Response <> ''
  {
    dataset = Clomosy.ClDataSetFromJSON(clRest.Response);
    
    // Dataseti döngü ile dön ve ekrana ekle
    while (dataset.Eof == False)
    {
      PnlUrunItem = AnaForm.AddNewProPanel(ScrUrunler, 'Pnl_' + dataset.FieldByName('id').AsString);
      PnlUrunItem.Align = alTop;
      PnlUrunItem.Height = 100;
      PnlUrunItem.Margins.Top = 10;
      PnlUrunItem.Margins.Left = 10;
      PnlUrunItem.Margins.Right = 10;
      
      PnlUrunItem.clProSettings.BorderColor = clAlphaColor.clHexToColor('#E74C3C');
      PnlUrunItem.clProSettings.BorderWidth = 2;
      PnlUrunItem.clProSettings.IsRound = True;
      PnlUrunItem.clProSettings.RoundWidth = 15;
      PnlUrunItem.clProSettings.RoundHeight = 15;
      PnlUrunItem.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF');
      PnlUrunItem.SetclProSettings(PnlUrunItem.clProSettings);
      
      LblUrunAd = AnaForm.AddNewProLabel(PnlUrunItem, 'LblAd_' + dataset.FieldByName('id').AsString, dataset.FieldByName('name').AsString);
      LblUrunAd.Align = alTop;
      LblUrunAd.Height = 35;
      LblUrunAd.Margins.Left = 15;
      LblUrunAd.Margins.Top = 10;
      LblUrunAd.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000');
      LblUrunAd.clProSettings.FontSize = 18;
      LblUrunAd.SetclProSettings(LblUrunAd.clProSettings);
      
      // SİL BUTONU
      BtnSilItem = AnaForm.AddNewProButton(PnlUrunItem, 'BtnSil_' + dataset.FieldByName('id').AsString, 'SİL');
      BtnSilItem.Align = alRight;
      BtnSilItem.Width = 60;
      BtnSilItem.Margins.Right = 10;
      BtnSilItem.Margins.Bottom = 10;
      BtnSilItem.clTagInt = dataset.FieldByName('id').AsInteger;
      BtnSilItem.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#E74C3C');
      BtnSilItem.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
      BtnSilItem.clProSettings.IsRound = True;
      BtnSilItem.clProSettings.RoundWidth = 10;
      BtnSilItem.clProSettings.RoundHeight = 10;
      BtnSilItem.SetclProSettings(BtnSilItem.clProSettings);
      AnaForm.AddNewEvent(BtnSilItem, tbeOnClick, 'UrunSil');
      
      LblUrunFiyat = AnaForm.AddNewProLabel(PnlUrunItem, 'LblFiyat_' + dataset.FieldByName('id').AsString, dataset.FieldByName('price').AsString + ' TL');
      LblUrunFiyat.Align = alRight;
      LblUrunFiyat.Width = 120;
      LblUrunFiyat.Margins.Right = 5;
      LblUrunFiyat.Margins.Bottom = 10;
      LblUrunFiyat.clProSettings.FontHorzAlign = palTrailing; // Sağa yasla
      LblUrunFiyat.clProSettings.FontVertAlign = palCenter; // Ortala
      LblUrunFiyat.clProSettings.FontColor = clAlphaColor.clHexToColor('#E74C3C');
      LblUrunFiyat.clProSettings.FontSize = 16;
      LblUrunFiyat.SetclProSettings(LblUrunFiyat.clProSettings);
      
      dataset.Next;
    }
  }
}

void GoToUrunler;
{
  EkraniGoster(PnlUrunler);
  UrunleriYukle;
}

void GoToAna;
{
  EkraniGoster(PnlAna);
}

void GoToYeniUrun;
{
  EkraniGoster(PnlYeniUrun);
}

// --- FOTOĞRAF SEÇME ---
void FotoSec;
{
  // Windows (ClomosyLearn.exe) üzerinde galeri hatası verdiği için şimdilik örnek resim atıyoruz
  AnaForm.setImage(ImgUrunFoto, ' https://clomosy.com/demos/balloon.png" rel="nofollow - https://clomosy.com/demos/balloon.png ');
  FotoSecildi = True;
}

// --- REST API: YENİ ÜRÜN KAYDET ---
void YeniUrunKaydet;
var
  KaydetRest: TclRest;
  reqBody: String;
{
  if EdtUrunAdi.Text == ''
  {
    ShowMessage('Ürün adı giriniz!');
    Exit;
  }
  
  if EdtUrunFiyat.Text == ''
  {
    ShowMessage('Fiyat giriniz!');
    Exit;
  }
  
  if FotoSecildi == False
  {
    ShowMessage('Lütfen bir fotoğraf seçiniz!');
    Exit;
  }
  
  reqBody = '{"action":"save_product", "restaurant_id":1, "category_id":1, "name":"'+EdtUrunAdi.Text+'", "description":"'+EdtUrunAdi.Text+'", "price":'+EdtUrunFiyat.Text+', "image_url":" https://clomosy.com/demos/balloon.png" rel="nofollow - https://clomosy.com/demos/balloon.png" }';
  
  KaydetRest = TclRest.Create;
  KaydetRest.BaseURL = BaseURL + 'api.php';
  KaydetRest.Accept = 'application/json';
  KaydetRest.Method = rmPOST;
  KaydetRest.AddBody(reqBody, 'application/json');
  KaydetRest.Execute;
  
  ShowMessage('Ürün başarıyla kaydedildi!');
  
  EdtUrunAdi.Text = '';
  EdtUrunFiyat.Text = '';
  ImgUrunFoto.Bitmap = Nil;
  FotoSecildi = False;
  
  GoToUrunler;
}

// --- ANA BLOK ---
{
  BaseURL = ' http://192.168.1.43/qrmenu/" rel="nofollow - http://192.168.1.43/qrmenu/ ';
  FotoSecildi = False;

  AnaForm = TclForm.Create(Self);
  AnaForm.SetFormColor('#FFFFFF', '', clGNone);
  
  // ==========================================
  // PANEL: ANA EKRAN (QR KOD)
  // ==========================================
  PnlAna = AnaForm.AddNewPanel(AnaForm, 'PnlAna');
  PnlAna.Align = alClient;
  
  LytAnaOrta = AnaForm.AddNewLayout(PnlAna, 'LytAnaOrta');
  LytAnaOrta.Align = alCenter;
  LytAnaOrta.Width = 300;
  LytAnaOrta.Height = 450;
  
  QrKod = AnaForm.AddNewQRCodeGenerator(LytAnaOrta, 'QrKod', BaseURL + 'menu.php?id=1&i=1');
  QrKod.Align = alTop;
  QrKod.Height = 300;
  QrKod.Width = 300;
  
  BtnUrunGit = AnaForm.AddNewProButton(LytAnaOrta, 'BtnUrunGit', 'Ürünlere Git -->');
  BtnUrunGit.Align = alBottom;
  BtnUrunGit.Height = 60;
  BtnUrunGit.Margins.Bottom = 20;
  BtnUrunGit.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#E74C3C'); // Kırmızı Arka Plan
  BtnUrunGit.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF'); // Beyaz yazı
  BtnUrunGit.clProSettings.BorderColor = clAlphaColor.clHexToColor('#E74C3C');
  BtnUrunGit.clProSettings.BorderWidth = 2;
  BtnUrunGit.clProSettings.IsRound = True;
  BtnUrunGit.clProSettings.RoundWidth = 15;
  BtnUrunGit.clProSettings.RoundHeight = 15;
  BtnUrunGit.clProSettings.FontSize = 18;
  BtnUrunGit.SetclProSettings(BtnUrunGit.clProSettings);
  AnaForm.AddNewEvent(BtnUrunGit, tbeOnClick, 'GoToUrunler');
  
  // ==========================================
  // PANEL: ÜRÜNLER EKRANI
  // ==========================================
  PnlUrunler = AnaForm.AddNewPanel(AnaForm, 'PnlUrunler');
  PnlUrunler.Align = alClient;
  PnlUrunler.Visible = False;
  
  // Üst Kısım (Geri Butonu İçin)
  PnlUrunlerUst = AnaForm.AddNewProPanel(PnlUrunler, 'PnlUrunlerUst');
  PnlUrunlerUst.Align = alTop;
  PnlUrunlerUst.Height = 60;
  
  BtnUrunGeri = AnaForm.AddNewProButton(PnlUrunlerUst, 'BtnUrunGeri', 'Geri');
  BtnUrunGeri.Align = alRight;
  BtnUrunGeri.Width = 80;
  BtnUrunGeri.Margins.Right = 10;
  BtnUrunGeri.Margins.Top = 10;
  BtnUrunGeri.Margins.Bottom = 10;
  BtnUrunGeri.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#E74C3C');
  BtnUrunGeri.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  BtnUrunGeri.clProSettings.BorderColor = clAlphaColor.clHexToColor('#E74C3C');
  BtnUrunGeri.clProSettings.BorderWidth = 2;
  BtnUrunGeri.clProSettings.IsRound = True;
  BtnUrunGeri.clProSettings.RoundWidth = 5;
  BtnUrunGeri.clProSettings.RoundHeight = 5;
  BtnUrunGeri.SetclProSettings(BtnUrunGeri.clProSettings);
  AnaForm.AddNewEvent(BtnUrunGeri, tbeOnClick, 'GoToAna');
  
  // Alt Kısım (Ürün Ekle Butonu İçin)
  PnlUrunlerAlt = AnaForm.AddNewProPanel(PnlUrunler, 'PnlUrunlerAlt');
  PnlUrunlerAlt.Align = alBottom;
  PnlUrunlerAlt.Height = 80;
  
  BtnYeniUrunEkran = AnaForm.AddNewProButton(PnlUrunlerAlt, 'BtnYeniUrunEkran', '+ Ürün ekle');
  BtnYeniUrunEkran.Align = alCenter;
  BtnYeniUrunEkran.Width = 200;
  BtnYeniUrunEkran.Height = 50;
  BtnYeniUrunEkran.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF');
  BtnYeniUrunEkran.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000');
  BtnYeniUrunEkran.clProSettings.BorderColor = clAlphaColor.clHexToColor('#000000');
  BtnYeniUrunEkran.clProSettings.BorderWidth = 2;
  BtnYeniUrunEkran.clProSettings.IsRound = True;
  BtnYeniUrunEkran.clProSettings.RoundWidth = 25; // Tam oval (Pill) görünüm
  BtnYeniUrunEkran.clProSettings.RoundHeight = 25;
  BtnYeniUrunEkran.clProSettings.FontSize = 16;
  BtnYeniUrunEkran.SetclProSettings(BtnYeniUrunEkran.clProSettings);
  AnaForm.AddNewEvent(BtnYeniUrunEkran, tbeOnClick, 'GoToYeniUrun');
  
  // Orta Kısım (Ürün Listesi)
  ScrUrunler = AnaForm.AddNewVertScrollBox(PnlUrunler, 'ScrUrunler');
  ScrUrunler.Align = alClient;
  
  // ==========================================
  // PANEL: YENİ ÜRÜN EKRANI
  // ==========================================
  PnlYeniUrun = AnaForm.AddNewPanel(AnaForm, 'PnlYeniUrun');
  PnlYeniUrun.Align = alClient;
  PnlYeniUrun.Visible = False;
  
  BtnYeniUrunGeri = AnaForm.AddNewProButton(PnlYeniUrun, 'BtnYeniUrunGeri', 'Geri');
  BtnYeniUrunGeri.Align = alTop;
  BtnYeniUrunGeri.Height = 50;
  BtnYeniUrunGeri.Margins.Left = 10;
  BtnYeniUrunGeri.Margins.Right = 10;
  BtnYeniUrunGeri.Margins.Top = 10;
  BtnYeniUrunGeri.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#E74C3C');
  BtnYeniUrunGeri.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  BtnYeniUrunGeri.clProSettings.BorderColor = clAlphaColor.clHexToColor('#E74C3C');
  BtnYeniUrunGeri.clProSettings.BorderWidth = 2;
  BtnYeniUrunGeri.clProSettings.IsRound = True;
  BtnYeniUrunGeri.clProSettings.RoundWidth = 10;
  BtnYeniUrunGeri.clProSettings.RoundHeight = 10;
  BtnYeniUrunGeri.SetclProSettings(BtnYeniUrunGeri.clProSettings);
  AnaForm.AddNewEvent(BtnYeniUrunGeri, tbeOnClick, 'GoToUrunler');
  
  EdtUrunAdi = AnaForm.AddNewEdit(PnlYeniUrun, 'EdtUrunAdi', 'Ürün Adı');
  EdtUrunAdi.Align = alTop;
  EdtUrunAdi.Height = 40;
  EdtUrunAdi.Margins.Top = 20;
  
  EdtUrunFiyat = AnaForm.AddNewEdit(PnlYeniUrun, 'EdtUrunFiyat', 'Fiyat (Örn: 150.50)');
  EdtUrunFiyat.Align = alTop;
  EdtUrunFiyat.Height = 40;
  EdtUrunFiyat.Margins.Top = 10;
  
  ImgUrunFoto = AnaForm.AddNewImage(PnlYeniUrun, 'ImgUrunFoto');
  ImgUrunFoto.Align = alTop;
  ImgUrunFoto.Height = 200;
  ImgUrunFoto.Margins.Top = 20;
  
  BtnFotoSec = AnaForm.AddNewProButton(PnlYeniUrun, 'BtnFotoSec', 'Kameradan Fotoğraf Seç');
  BtnFotoSec.Align = alTop;
  BtnFotoSec.Height = 50;
  BtnFotoSec.Margins.Top = 10;
  BtnFotoSec.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#E74C3C');
  BtnFotoSec.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  BtnFotoSec.clProSettings.IsRound = True;
  BtnFotoSec.clProSettings.RoundWidth = 10;
  BtnFotoSec.clProSettings.RoundHeight = 10;
  BtnFotoSec.SetclProSettings(BtnFotoSec.clProSettings);
  AnaForm.AddNewEvent(BtnFotoSec, tbeOnClick, 'FotoSec');
  
  BtnKaydet = AnaForm.AddNewProButton(PnlYeniUrun, 'BtnKaydet', 'Ürünü Kaydet');
  BtnKaydet.Align = alBottom;
  BtnKaydet.Height = 60;
  BtnKaydet.Margins.Bottom = 20;
  BtnKaydet.Margins.Left = 20;
  BtnKaydet.Margins.Right = 20;
  BtnKaydet.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#E74C3C');
  BtnKaydet.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  BtnKaydet.clProSettings.IsRound = True;
  BtnKaydet.clProSettings.RoundWidth = 20;
  BtnKaydet.clProSettings.RoundHeight = 20;
  BtnKaydet.SetclProSettings(BtnKaydet.clProSettings);
  AnaForm.AddNewEvent(BtnKaydet, tbeOnClick, 'YeniUrunKaydet');
  
  AnaForm.Run;
}



bu kodda görsel eklesem bile olmuyor web e apiyle görseli iletemiyor. nasıl yapılabilir acaba?



Cevaplar:
Mesajı Yazan: kayra.55
Mesaj Tarihi: 03 Temmuz 2026 Saat 11:54
var
  AnaForm: TclForm;
  PnlAna, PnlUrunler, PnlYeniUrun: TclPanel;
  
  // Ana Ekran
  QrKod: TClQRCodeGenerator;
  BtnUrunGit: TclProButton;
  LytAnaOrta: TclLayout;
  
  // Ürünler Ekranı
  PnlUrunlerUst, PnlUrunlerAlt: TclProPanel;
  BtnUrunGeri, BtnYeniUrunEkran: TclProButton;
  ScrUrunler: TclVertScrollBox;
  
  // Yeni Ürün Ekranı
  BtnYeniUrunGeri, BtnKaydet, BtnFotoSec: TclProButton;
  EdtUrunAdi, EdtUrunFiyat: TclEdit;
  ImgUrunFoto: TclImage;
  FotoSecildi: Boolean;
  
  BaseURL: String;

// --- EKRAN GEÇİŞ FONKSİYONLARI ---
void EkraniGoster(PnlGoster: TclPanel);
{
  PnlAna.Visible = False;
  PnlUrunler.Visible = False;
  PnlYeniUrun.Visible = False;
  
  PnlGoster.Visible = True;
}

// --- REST API: ÜRÜN SİL ---
void UrunSil;
var
  SilRest: TclRest;
  reqBody: String;
  BtnSil: TclProButton;
{
  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;
  
  ShowMessage('Ürün başarıyla silindi!');
  
  // Ürün silindikten sonra componenti gizle (Görsel yenileme)
  TclProPanel(BtnSil.Parent).Visible = False;
}

// --- REST API: ÜRÜNLERİ YÜKLE ---
void UrunleriYukle;
var
  clRest: TclRest;
  dataset: TCLJSONQuery;
  LblUrunAd, LblUrunFiyat: TclProLabel;
  PnlUrunItem: TclProPanel;
  BtnSilItem: TclProButton;
{
  // Temizle
  ScrUrunler.Free;
  ScrUrunler = AnaForm.AddNewVertScrollBox(PnlUrunler, 'ScrUrunler');
  ScrUrunler.Align = alClient;
  
  clRest = TclRest.Create;
  clRest.BaseURL = BaseURL + 'api.php?action=get_products&restaurant_id=1&format=flat';
  clRest.Method = rmGET;
  clRest.Execute;
  
  if clRest.Response <> ''
  {
    dataset = Clomosy.ClDataSetFromJSON(clRest.Response);
    
    // Dataseti döngü ile dön ve ekrana ekle
    while (dataset.Eof == False)
    {
      PnlUrunItem = AnaForm.AddNewProPanel(ScrUrunler, 'Pnl_' + dataset.FieldByName('id').AsString);
      PnlUrunItem.Align = alTop;
      PnlUrunItem.Height = 100;
      PnlUrunItem.Margins.Top = 10;
      PnlUrunItem.Margins.Left = 10;
      PnlUrunItem.Margins.Right = 10;
      
      PnlUrunItem.clProSettings.BorderColor = clAlphaColor.clHexToColor('#E74C3C');
      PnlUrunItem.clProSettings.BorderWidth = 2;
      PnlUrunItem.clProSettings.IsRound = True;
      PnlUrunItem.clProSettings.RoundWidth = 15;
      PnlUrunItem.clProSettings.RoundHeight = 15;
      PnlUrunItem.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF');
      PnlUrunItem.SetclProSettings(PnlUrunItem.clProSettings);
      
      LblUrunAd = AnaForm.AddNewProLabel(PnlUrunItem, 'LblAd_' + dataset.FieldByName('id').AsString, dataset.FieldByName('name').AsString);
      LblUrunAd.Align = alTop;
      LblUrunAd.Height = 35;
      LblUrunAd.Margins.Left = 15;
      LblUrunAd.Margins.Top = 10;
      LblUrunAd.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000');
      LblUrunAd.clProSettings.FontSize = 18;
      LblUrunAd.SetclProSettings(LblUrunAd.clProSettings);
      
      // SİL BUTONU
      BtnSilItem = AnaForm.AddNewProButton(PnlUrunItem, 'BtnSil_' + dataset.FieldByName('id').AsString, 'SİL');
      BtnSilItem.Align = alRight;
      BtnSilItem.Width = 60;
      BtnSilItem.Margins.Right = 10;
      BtnSilItem.Margins.Bottom = 10;
      BtnSilItem.clTagInt = dataset.FieldByName('id').AsInteger;
      BtnSilItem.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#E74C3C');
      BtnSilItem.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
      BtnSilItem.clProSettings.IsRound = True;
      BtnSilItem.clProSettings.RoundWidth = 10;
      BtnSilItem.clProSettings.RoundHeight = 10;
      BtnSilItem.SetclProSettings(BtnSilItem.clProSettings);
      AnaForm.AddNewEvent(BtnSilItem, tbeOnClick, 'UrunSil');
      
      LblUrunFiyat = AnaForm.AddNewProLabel(PnlUrunItem, 'LblFiyat_' + dataset.FieldByName('id').AsString, dataset.FieldByName('price').AsString + ' TL');
      LblUrunFiyat.Align = alRight;
      LblUrunFiyat.Width = 120;
      LblUrunFiyat.Margins.Right = 5;
      LblUrunFiyat.Margins.Bottom = 10;
      LblUrunFiyat.clProSettings.FontHorzAlign = palTrailing; // Sağa yasla
      LblUrunFiyat.clProSettings.FontVertAlign = palCenter; // Ortala
      LblUrunFiyat.clProSettings.FontColor = clAlphaColor.clHexToColor('#E74C3C');
      LblUrunFiyat.clProSettings.FontSize = 16;
      LblUrunFiyat.SetclProSettings(LblUrunFiyat.clProSettings);
      
      dataset.Next;
    }
  }
}

void GoToUrunler;
{
  EkraniGoster(PnlUrunler);
  UrunleriYukle;
}

void GoToAna;
{
  EkraniGoster(PnlAna);
}

void GoToYeniUrun;
{
  EkraniGoster(PnlYeniUrun);
}

// --- FOTOĞRAF SEÇME ---
void FotoSec;
{
  // Clomosy ImageChooser ile kameradan/galeriden resim seçme
  Clomosy.ImageChooser(AnaForm, ImgUrunFoto);
  FotoSecildi = True;
}

// --- REST API: YENİ ÜRÜN KAYDET ---
void YeniUrunKaydet;
var
  KaydetRest: TclRest;
  reqBody: String;
{
  if EdtUrunAdi.Text == ''
  {
    ShowMessage('Ürün adı giriniz!');
    Exit;
  }
  
  if EdtUrunFiyat.Text == ''
  {
    ShowMessage('Fiyat giriniz!');
    Exit;
  }
  
  if FotoSecildi == False
  {
    ShowMessage('Lütfen bir fotoğraf seçiniz!');
    Exit;
  }
  
  reqBody = '{"action":"save_product", "restaurant_id":1, "category_id":1, "name":"'+EdtUrunAdi.Text+'", "description":"'+EdtUrunAdi.Text+'", "price":'+EdtUrunFiyat.Text+', "image_url":" https://clomosy.com/demos/balloon.png" rel="nofollow - https://clomosy.com/demos/balloon.png" }';
  
  KaydetRest = TclRest.Create;
  KaydetRest.BaseURL = BaseURL + 'api.php';
  KaydetRest.Accept = 'application/json';
  KaydetRest.Method = rmPOST;
  KaydetRest.AddBody(reqBody, 'application/json');
  KaydetRest.Execute;
  
  ShowMessage('Ürün başarıyla kaydedildi!');
  
  EdtUrunAdi.Text = '';
  EdtUrunFiyat.Text = '';
  ImgUrunFoto.Bitmap = Nil;
  FotoSecildi = False;
  
  GoToUrunler;
}

// --- ANA BLOK ---
{
  BaseURL = ' http://192.168.1.43/qrmenu/" rel="nofollow - http://192.168.1.43/qrmenu/ ';
  FotoSecildi = False;

  AnaForm = TclForm.Create(Self);
  AnaForm.SetFormColor('#FFFFFF', '', clGNone);
  
  // ==========================================
  // PANEL: ANA EKRAN (QR KOD)
  // ==========================================
  PnlAna = AnaForm.AddNewPanel(AnaForm, 'PnlAna');
  PnlAna.Align = alClient;
  
  LytAnaOrta = AnaForm.AddNewLayout(PnlAna, 'LytAnaOrta');
  LytAnaOrta.Align = alCenter;
  LytAnaOrta.Width = 300;
  LytAnaOrta.Height = 450;
  
  QrKod = AnaForm.AddNewQRCodeGenerator(LytAnaOrta, 'QrKod', BaseURL + 'menu.php?id=1&i=1');
  QrKod.Align = alTop;
  QrKod.Height = 300;
  QrKod.Width = 300;
  
  BtnUrunGit = AnaForm.AddNewProButton(LytAnaOrta, 'BtnUrunGit', 'Ürünlere Git -->');
  BtnUrunGit.Align = alBottom;
  BtnUrunGit.Height = 60;
  BtnUrunGit.Margins.Bottom = 20;
  BtnUrunGit.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#E74C3C'); // Kırmızı Arka Plan
  BtnUrunGit.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF'); // Beyaz yazı
  BtnUrunGit.clProSettings.BorderColor = clAlphaColor.clHexToColor('#E74C3C');
  BtnUrunGit.clProSettings.BorderWidth = 2;
  BtnUrunGit.clProSettings.IsRound = True;
  BtnUrunGit.clProSettings.RoundWidth = 15;
  BtnUrunGit.clProSettings.RoundHeight = 15;
  BtnUrunGit.clProSettings.FontSize = 18;
  BtnUrunGit.SetclProSettings(BtnUrunGit.clProSettings);
  AnaForm.AddNewEvent(BtnUrunGit, tbeOnClick, 'GoToUrunler');
  
  // ==========================================
  // PANEL: ÜRÜNLER EKRANI
  // ==========================================
  PnlUrunler = AnaForm.AddNewPanel(AnaForm, 'PnlUrunler');
  PnlUrunler.Align = alClient;
  PnlUrunler.Visible = False;
  
  // Üst Kısım (Geri Butonu İçin)
  PnlUrunlerUst = AnaForm.AddNewProPanel(PnlUrunler, 'PnlUrunlerUst');
  PnlUrunlerUst.Align = alTop;
  PnlUrunlerUst.Height = 60;
  
  BtnUrunGeri = AnaForm.AddNewProButton(PnlUrunlerUst, 'BtnUrunGeri', 'Geri');
  BtnUrunGeri.Align = alRight;
  BtnUrunGeri.Width = 80;
  BtnUrunGeri.Margins.Right = 10;
  BtnUrunGeri.Margins.Top = 10;
  BtnUrunGeri.Margins.Bottom = 10;
  BtnUrunGeri.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#E74C3C');
  BtnUrunGeri.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  BtnUrunGeri.clProSettings.BorderColor = clAlphaColor.clHexToColor('#E74C3C');
  BtnUrunGeri.clProSettings.BorderWidth = 2;
  BtnUrunGeri.clProSettings.IsRound = True;
  BtnUrunGeri.clProSettings.RoundWidth = 5;
  BtnUrunGeri.clProSettings.RoundHeight = 5;
  BtnUrunGeri.SetclProSettings(BtnUrunGeri.clProSettings);
  AnaForm.AddNewEvent(BtnUrunGeri, tbeOnClick, 'GoToAna');
  
  // Alt Kısım (Ürün Ekle Butonu İçin)
  PnlUrunlerAlt = AnaForm.AddNewProPanel(PnlUrunler, 'PnlUrunlerAlt');
  PnlUrunlerAlt.Align = alBottom;
  PnlUrunlerAlt.Height = 80;
  
  BtnYeniUrunEkran = AnaForm.AddNewProButton(PnlUrunlerAlt, 'BtnYeniUrunEkran', '+ Ürün ekle');
  BtnYeniUrunEkran.Align = alCenter;
  BtnYeniUrunEkran.Width = 200;
  BtnYeniUrunEkran.Height = 50;
  BtnYeniUrunEkran.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF');
  BtnYeniUrunEkran.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000');
  BtnYeniUrunEkran.clProSettings.BorderColor = clAlphaColor.clHexToColor('#000000');
  BtnYeniUrunEkran.clProSettings.BorderWidth = 2;
  BtnYeniUrunEkran.clProSettings.IsRound = True;
  BtnYeniUrunEkran.clProSettings.RoundWidth = 25; // Tam oval (Pill) görünüm
  BtnYeniUrunEkran.clProSettings.RoundHeight = 25;
  BtnYeniUrunEkran.clProSettings.FontSize = 16;
  BtnYeniUrunEkran.SetclProSettings(BtnYeniUrunEkran.clProSettings);
  AnaForm.AddNewEvent(BtnYeniUrunEkran, tbeOnClick, 'GoToYeniUrun');
  
  // Orta Kısım (Ürün Listesi)
  ScrUrunler = AnaForm.AddNewVertScrollBox(PnlUrunler, 'ScrUrunler');
  ScrUrunler.Align = alClient;
  
  // ==========================================
  // PANEL: YENİ ÜRÜN EKRANI
  // ==========================================
  PnlYeniUrun = AnaForm.AddNewPanel(AnaForm, 'PnlYeniUrun');
  PnlYeniUrun.Align = alClient;
  PnlYeniUrun.Visible = False;
  
  BtnYeniUrunGeri = AnaForm.AddNewProButton(PnlYeniUrun, 'BtnYeniUrunGeri', 'Geri');
  BtnYeniUrunGeri.Align = alTop;
  BtnYeniUrunGeri.Height = 50;
  BtnYeniUrunGeri.Margins.Left = 10;
  BtnYeniUrunGeri.Margins.Right = 10;
  BtnYeniUrunGeri.Margins.Top = 10;
  BtnYeniUrunGeri.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#E74C3C');
  BtnYeniUrunGeri.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  BtnYeniUrunGeri.clProSettings.BorderColor = clAlphaColor.clHexToColor('#E74C3C');
  BtnYeniUrunGeri.clProSettings.BorderWidth = 2;
  BtnYeniUrunGeri.clProSettings.IsRound = True;
  BtnYeniUrunGeri.clProSettings.RoundWidth = 10;
  BtnYeniUrunGeri.clProSettings.RoundHeight = 10;
  BtnYeniUrunGeri.SetclProSettings(BtnYeniUrunGeri.clProSettings);
  AnaForm.AddNewEvent(BtnYeniUrunGeri, tbeOnClick, 'GoToUrunler');
  
  EdtUrunAdi = AnaForm.AddNewEdit(PnlYeniUrun, 'EdtUrunAdi', 'Ürün Adı');
  EdtUrunAdi.Align = alTop;
  EdtUrunAdi.Height = 40;
  EdtUrunAdi.Margins.Top = 20;
  
  EdtUrunFiyat = AnaForm.AddNewEdit(PnlYeniUrun, 'EdtUrunFiyat', 'Fiyat (Örn: 150.50)');
  EdtUrunFiyat.Align = alTop;
  EdtUrunFiyat.Height = 40;
  EdtUrunFiyat.Margins.Top = 10;
  
  ImgUrunFoto = AnaForm.AddNewImage(PnlYeniUrun, 'ImgUrunFoto');
  ImgUrunFoto.Align = alTop;
  ImgUrunFoto.Height = 200;
  ImgUrunFoto.Margins.Top = 20;
  
  BtnFotoSec = AnaForm.AddNewProButton(PnlYeniUrun, 'BtnFotoSec', 'Kameradan Fotoğraf Seç');
  BtnFotoSec.Align = alTop;
  BtnFotoSec.Height = 50;
  BtnFotoSec.Margins.Top = 10;
  BtnFotoSec.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#E74C3C');
  BtnFotoSec.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  BtnFotoSec.clProSettings.IsRound = True;
  BtnFotoSec.clProSettings.RoundWidth = 10;
  BtnFotoSec.clProSettings.RoundHeight = 10;
  BtnFotoSec.SetclProSettings(BtnFotoSec.clProSettings);
  AnaForm.AddNewEvent(BtnFotoSec, tbeOnClick, 'FotoSec');
  
  BtnKaydet = AnaForm.AddNewProButton(PnlYeniUrun, 'BtnKaydet', 'Ürünü Kaydet');
  BtnKaydet.Align = alBottom;
  BtnKaydet.Height = 60;
  BtnKaydet.Margins.Bottom = 20;
  BtnKaydet.Margins.Left = 20;
  BtnKaydet.Margins.Right = 20;
  BtnKaydet.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#E74C3C');
  BtnKaydet.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  BtnKaydet.clProSettings.IsRound = True;
  BtnKaydet.clProSettings.RoundWidth = 20;
  BtnKaydet.clProSettings.RoundHeight = 20;
  BtnKaydet.SetclProSettings(BtnKaydet.clProSettings);
  AnaForm.AddNewEvent(BtnKaydet, tbeOnClick, 'YeniUrunKaydet');
  
  AnaForm.Run;
} iyi çalışmalar dilerim 



Sayfayı Yazdır | Pencereyi Kapat

Forum Software by Web Wiz Forums® version 12.07 - https://www.webwizforums.com
Copyright ©2001-2024 Web Wiz Ltd. - https://www.webwiz.net