Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Clomosy ile değişken kullanımı
  Aktif Konular Aktif Konular RSS - görsel yüklememe sorunu
  SSS SSS  Forumu Ara   Etkinlikler   Kayıt Ol Kayıt Ol  Giriş Giriş

Clomosy Resmi Forum Sitesidir. Amacımız kullanıcılarımıza, iş ortaklarımıza, danışmanlara, yazılımcılara programlarımız hakkında destek ve bilgi vermektir.

görsel yüklememe sorunu

 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: 25
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: görsel yüklememe sorunu
    Gönderim Zamanı: 2 Saat 41 Dakika Önce 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');
  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"}';
  
  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 ---
{
  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?
Yukarı Dön
kayra.55 Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: 17 Kasım 2025
Durum: Aktif
Puanlar: 38
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı kayra.55 Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 2 Saat 12 Dakika Önce 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"}';
  
  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 ---
{
  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 
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,027 Saniyede Yüklendi.