Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - Grid ekranı 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.

Grid ekranı sorunu

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

Kayıt Tarihi: 24 Haziran 2025
Konum: Konya/meram
Durum: Aktif Değil
Puanlar: 6
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Muammer Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: Grid ekranı sorunu
    Gönderim Zamanı: 22 Saat 2 Dakika Önce Saat 15:10
Aşağıdaki kod sipariş sayfası.Bu sayfada grid ekranına verileri ekleyemiyorum.Bilgileri girerken sürekli hata alıyorum


var
  TedarikciForm: TclForm; 
  Lbl_TedarikciAdi, Lbl_TedarikciTelefon, Lbl_SiparisMiktari, Lbl_SiparisTarihi, Lbl_TeslimatTarihi, Lbl_UrunAdi: TClProLabel;
  Edt_TedarikciAdi, Edt_TedarikciTelefon, Edt_SiparisMiktari, Edt_UrunAdi: TclProEdit;
  Dt_SiparisTarihi, Dt_TeslimatTarihi: TClProDateEdit;
  Btn_SiparisEkle: TClProButton;
  Lbl_Baslik:TClProLabel;
  mainPnl,leftPanel,rightPanel:TclProPanel;
  
  MyGrid: TclStringGrid;    // Grid for displaying added order data
  SiparisMiktari: Integer;
  SiparisTarihi, TeslimatTarihi, TedarikciAdi, TedarikciTelefon, UrunAdi: String;

  // Setup Grid Columns (headers and widths)
void SetupGridColumns;
{
  MyGrid.Cells[0, 0] = 'Tedarikçi Adı';
  MyGrid.Cells[1, 0] = 'Tedarikçi Telefon';
  MyGrid.Cells[2, 0] = 'Ürün Adı';
  MyGrid.Cells[3, 0] = 'Sipariş Miktarı';
  MyGrid.Cells[4, 0] = 'Sipariş Tarihi';
  MyGrid.Cells[5, 0] = 'Teslimat Tarihi';
  
  MyGrid.Columns[0].Width = 150;
  MyGrid.Columns[1].Width = 120;
  MyGrid.Columns[2].Width = 150;
  MyGrid.Columns[3].Width = 120;
  MyGrid.Columns[4].Width = 120;
  MyGrid.Columns[5].Width = 120;
}

// Add data to grid
void AddDataToGrid;
{
  // Adding the new order to the grid
  MyGrid.RowCount = MyGrid.RowCount + 1;  // Adding a new row
  MyGrid.Cells[0, MyGrid.RowCount - 1] = TedarikciAdi;
  MyGrid.Cells[1, MyGrid.RowCount - 1] = TedarikciTelefon;
  MyGrid.Cells[2, MyGrid.RowCount - 1] = UrunAdi;
  MyGrid.Cells[3, MyGrid.RowCount - 1] = IntToStr(SiparisMiktari);
  MyGrid.Cells[4, MyGrid.RowCount - 1] = SiparisTarihi;
  MyGrid.Cells[5, MyGrid.RowCount - 1] = TeslimatTarihi;
}

void SiparisEkleButtonClick;
{
  // Get user inputs for the new order
  TedarikciAdi = Edt_TedarikciAdi.Text;
  TedarikciTelefon = Edt_TedarikciTelefon.Text;
  UrunAdi = Edt_UrunAdi.Text;
  SiparisMiktari = StrToInt(Edt_SiparisMiktari.Text);  // Convert to integer
  SiparisTarihi = Dt_SiparisTarihi.Text;
  TeslimatTarihi = Dt_TeslimatTarihi.Text;

  ShowMessage('Sipariş başarıyla eklendi!');  // Success message
  
  // Add the new order data to the grid
  AddDataToGrid;
}

{
  TedarikciForm = TclForm.Create(Self);
  TedarikciForm.SetFormColor('#c4c4c4', '#c4c4c4', clGVertical);

  // Form Title
  Lbl_Baslik = TedarikciForm.AddNewProLabel(TedarikciForm, 'Lbl_Baslik', 'Tedarikçi Sipariş Ekleme');
  Lbl_Baslik.Align = alTop;
  Lbl_Baslik.Height = 60;
  Lbl_Baslik.Margins.Top = 30;
  Lbl_Baslik.clProSettings.FontSize = 26;
  Lbl_Baslik.clProSettings.FontColor = clAlphaColor.clHexToColor('#fc0000');
  Lbl_Baslik.clProSettings.FontVertAlign = palCenter;
  Lbl_Baslik.clProSettings.FontHorzAlign = palCenter;
  Lbl_Baslik.SetclProSettings(Lbl_Baslik.clProSettings);

  // Create main panel to split left and right panels
  mainPnl = TedarikciForm.AddNewProPanel(TedarikciForm, 'mainPnl');
  mainPnl.Align = alClient;  // Use full client area
  mainPnl.Margins.Left = 10;
  mainPnl.Margins.Right = 10;
  mainPnl.Margins.Top = 10;
  mainPnl.Margins.Bottom = 10;

  // Left Panel (For inputs)
  leftPanel = TedarikciForm.AddNewProPanel(mainPnl, 'leftPanel');
  leftPanel.Align = alLeft;
  leftPanel.Width = mainPnl.Width div 2;  // Half width for left panel
  leftPanel.Margins.Top = 20;
  leftPanel.Margins.Left = 20;
  leftPanel.Margins.Right = 20;

  // Right Panel (For Grid)
  rightPanel = TedarikciForm.AddNewProPanel(mainPnl, 'rightPanel');
  rightPanel.Align = alClient;  // Takes remaining space
  rightPanel.Margins.Top = 20;
  rightPanel.Margins.Left = 20;
  rightPanel.Margins.Right = 20;

  // Left Panel Widgets (For Tedarikçi and Order Info)
  Lbl_TedarikciAdi = TedarikciForm.AddNewProLabel(leftPanel, 'Lbl_TedarikciAdi', 'Tedarikçi Adı');
  Lbl_TedarikciAdi.Align = alTop;
  Lbl_TedarikciAdi.Height = 30;
  Lbl_TedarikciAdi.clProSettings.FontSize = 12;
  Lbl_TedarikciAdi.clProSettings.FontColor = clAlphaColor.clHexToColor('#080808');
  Lbl_TedarikciAdi.SetclProSettings(Lbl_TedarikciAdi.clProSettings);

  Edt_TedarikciAdi = TedarikciForm.AddNewProEdit(leftPanel, 'Edt_TedarikciAdi', '');
  Edt_TedarikciAdi.Align = alTop;
  Edt_TedarikciAdi.Height = 30;
  Edt_TedarikciAdi.Width = 220;
  Edt_TedarikciAdi.Margins.Top = 10;
  Edt_TedarikciAdi.SetclProSettings(Edt_TedarikciAdi.clProSettings);

  // Tedarikçi Telefon Label and Input
  Lbl_TedarikciTelefon = TedarikciForm.AddNewProLabel(leftPanel, 'Lbl_TedarikciTelefon', 'Tedarikçi Telefon');
  Lbl_TedarikciTelefon.Align = alTop;
  Lbl_TedarikciTelefon.Height = 30;
  Lbl_TedarikciTelefon.clProSettings.FontSize = 12;
  Lbl_TedarikciTelefon.clProSettings.FontColor = clAlphaColor.clHexToColor('#080808');
  Lbl_TedarikciTelefon.SetclProSettings(Lbl_TedarikciTelefon.clProSettings);

  Edt_TedarikciTelefon = TedarikciForm.AddNewProEdit(leftPanel, 'Edt_TedarikciTelefon', '');
  Edt_TedarikciTelefon.Align = alTop;
  Edt_TedarikciTelefon.Height = 30;
  Edt_TedarikciTelefon.Width = 220;
  Edt_TedarikciTelefon.Margins.Top = 10;
  Edt_TedarikciTelefon.SetclProSettings(Edt_TedarikciTelefon.clProSettings);

  // Product Name Label and Input
  Lbl_UrunAdi = TedarikciForm.AddNewProLabel(leftPanel, 'Lbl_UrunAdi', 'Ürün Adı');
  Lbl_UrunAdi.Align = alTop;
  Lbl_UrunAdi.Height = 30;
  Lbl_UrunAdi.clProSettings.FontSize = 12;
  Lbl_UrunAdi.clProSettings.FontColor = clAlphaColor.clHexToColor('#080808');
  Lbl_UrunAdi.SetclProSettings(Lbl_UrunAdi.clProSettings);

  Edt_UrunAdi = TedarikciForm.AddNewProEdit(leftPanel, 'Edt_UrunAdi', '');
  Edt_UrunAdi.Align = alTop;
  Edt_UrunAdi.Height = 30;
  Edt_UrunAdi.Width = 220;
  Edt_UrunAdi.Margins.Top = 10;
  Edt_UrunAdi.SetclProSettings(Edt_UrunAdi.clProSettings);

  // Sipariş Miktarı Label and Input
  Lbl_SiparisMiktari = TedarikciForm.AddNewProLabel(leftPanel, 'Lbl_SiparisMiktari', 'Sipariş Miktarı');
  Lbl_SiparisMiktari.Align = alTop;
  Lbl_SiparisMiktari.Height = 30;
  Lbl_SiparisMiktari.clProSettings.FontSize = 12;
  Lbl_SiparisMiktari.clProSettings.FontColor = clAlphaColor.clHexToColor('#080808');
  Lbl_SiparisMiktari.SetclProSettings(Lbl_SiparisMiktari.clProSettings);

  Edt_SiparisMiktari = TedarikciForm.AddNewProEdit(leftPanel, 'Edt_SiparisMiktari', '');
  Edt_SiparisMiktari.Align = alTop;
  Edt_SiparisMiktari.Height = 30;
  Edt_SiparisMiktari.Width = 220;
  Edt_SiparisMiktari.Margins.Top = 10;
  Edt_SiparisMiktari.SetclProSettings(Edt_SiparisMiktari.clProSettings);

  // Sipariş Tarihi Label and Input
  Lbl_SiparisTarihi = TedarikciForm.AddNewProLabel(leftPanel, 'Lbl_SiparisTarihi', 'Sipariş Tarihi');
  Lbl_SiparisTarihi.Align = alTop;
  Lbl_SiparisTarihi.Height = 30;
  Lbl_SiparisTarihi.clProSettings.FontSize = 12;
  Lbl_SiparisTarihi.clProSettings.FontColor = clAlphaColor.clHexToColor('#080808');
  Lbl_SiparisTarihi.SetclProSettings(Lbl_SiparisTarihi.clProSettings);

  Dt_SiparisTarihi = TedarikciForm.AddNewProDateEdit(leftPanel, 'Dt_SiparisTarihi');
  Dt_SiparisTarihi.Align = alTop;
  Dt_SiparisTarihi.Height = 30;
  Dt_SiparisTarihi.Width = 220;
  Dt_SiparisTarihi.Margins.Top = 10;
  Dt_SiparisTarihi.SetclProSettings(Dt_SiparisTarihi.clProSettings);

  // Teslimat Tarihi Label and Input
  Lbl_TeslimatTarihi = TedarikciForm.AddNewProLabel(leftPanel, 'Lbl_TeslimatTarihi', 'Teslimat Tarihi');
  Lbl_TeslimatTarihi.Align = alTop;
  Lbl_TeslimatTarihi.Height = 30;
  Lbl_TeslimatTarihi.clProSettings.FontSize = 12;
  Lbl_TeslimatTarihi.clProSettings.FontColor = clAlphaColor.clHexToColor('#080808');
  Lbl_TeslimatTarihi.SetclProSettings(Lbl_TeslimatTarihi.clProSettings);

  Dt_TeslimatTarihi = TedarikciForm.AddNewProDateEdit(leftPanel, 'Dt_TeslimatTarihi');
  Dt_TeslimatTarihi.Align = alTop;
  Dt_TeslimatTarihi.Height = 30;
  Dt_TeslimatTarihi.Width = 220;
  Dt_TeslimatTarihi.Margins.Top = 10;
  Dt_TeslimatTarihi.SetclProSettings(Dt_TeslimatTarihi.clProSettings);

  // Sipariş Ekleme Button
  Btn_SiparisEkle = TedarikciForm.AddNewProButton(leftPanel, 'Btn_SiparisEkle', 'Sipariş Ekle');
  Btn_SiparisEkle.Align = alTop;
  Btn_SiparisEkle.Height = 50;
  Btn_SiparisEkle.Width = 200;
  Btn_SiparisEkle.Margins.Top = 20;
  Btn_SiparisEkle.Margins.Left = 20;
  Btn_SiparisEkle.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#4CAF50');
  Btn_SiparisEkle.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff');
  Btn_SiparisEkle.clProSettings.FontSize = 16;
  Btn_SiparisEkle.SetclProSettings(Btn_SiparisEkle.clProSettings);

  TedarikciForm.AddNewEvent(Btn_SiparisEkle, tbeOnClick, 'SiparisEkleButtonClick');  // Event for button click
  
  // Right Panel: Grid for displaying orders
  MyGrid = TedarikciForm.AddNewStringGrid(rightPanel, 'MyGrid');
  MyGrid.Align = alClient;
  MyGrid.ReadOnly = True;
  
  TedarikciForm.clSetWindowState(fwsMaximized);

  // Run the form
  TedarikciForm.Run;
}

Yukarı Dön
haletr Açılır Kutu İzle
Deneyimli Üye
Deneyimli Üye
Simge

Kayıt Tarihi: 16 Haziran 2025
Konum: Konya
Durum: Aktif Değil
Puanlar: 63
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı haletr Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 20 Saat 22 Dakika Önce Saat 16:50

Merhaba Muammer,

Kodunu inceledim. Şu anda herhangi bir veri çekme işlemi yok gibi görünüyor, sadece StringGrid'e manuel veri eklenmiş. StringGrid veri görüntülemek için kullanılıyor ancak arka planda bir veri bağlaması (data binding) olmadığında düzgün çalışmayabilir.

Ben kodunu incelerken, StringGrid 'i JSON verisiyle bir Dataset'e bağladığımda sorunsuz çalıştı. Aşağıdaki örneği inceleyebilir misin? Umarım yardımcı olur, iyi çalışmalar.



var

  TedarikciForm: TclForm;

  Lbl_Baslik: TClProLabel;

  mainPnl, leftPanel, rightPanel: TclProPanel;

  Edt_TedarikciAdi, Edt_TedarikciTelefon, Edt_SiparisMiktari, Edt_UrunAdi: TclProEdit;

  Dt_SiparisTarihi, Dt_TeslimatTarihi: TClProDateEdit;

  Btn_SiparisEkle: TClProButton;

  MyGrid: TclStringGrid;

  jsonStr: String;

  MyDataSet: TClJSonQuery;


  TedarikciAdi, TedarikciTelefon, UrunAdi, SiparisTarihi, TeslimatTarihi: String;

  SiparisMiktari: Integer;


void SetupGridColumns;

{

  //MyGrid.RowCount = 1;


  MyGrid.Columns[0].Header = 'Tedarikçi Adı';

  MyGrid.Columns[1].Header = 'Telefon';

  MyGrid.Columns[2].Header = 'Ürün';

  MyGrid.Columns[3].Header = 'Miktar';

  MyGrid.Columns[4].Header = 'Sipariş Tarihi';

  MyGrid.Columns[5].Header = 'Teslimat Tarihi';


  MyGrid.Columns[0].Width = 150;

  MyGrid.Columns[1].Width = 120;

  MyGrid.Columns[2].Width = 150;

  MyGrid.Columns[3].Width = 120;

  MyGrid.Columns[4].Width = 120;

  MyGrid.Columns[5].Width = 120;

}


void SiparisEkleButtonClick;

var row: Integer;

{

  TedarikciAdi = Edt_TedarikciAdi.Text;

  TedarikciTelefon = Edt_TedarikciTelefon.Text;

  UrunAdi = Edt_UrunAdi.Text;

  SiparisTarihi = Dt_SiparisTarihi.Text;

  TeslimatTarihi = Dt_TeslimatTarihi.Text;


  try

    SiparisMiktari = StrToInt(Edt_SiparisMiktari.Text);

  except

    ShowMessage('Sipariş miktarı geçerli bir sayı olmalıdır.');

  }


  // Grid’e satır ekle

  MyGrid.RowCount = MyGrid.RowCount + 1;

  row = MyGrid.RowCount - 1;


  MyGrid.Cells[0, row] = TedarikciAdi;

  MyGrid.Cells[1, row] = TedarikciTelefon;

  MyGrid.Cells[2, row] = UrunAdi;

  MyGrid.Cells[3, row] = IntToStr(SiparisMiktari);

  MyGrid.Cells[4, row] = SiparisTarihi;

  MyGrid.Cells[5, row] = TeslimatTarihi;


  // Temizle

  Edt_TedarikciAdi.Text = '';

  Edt_TedarikciTelefon.Text = '';

  Edt_UrunAdi.Text = '';

  Edt_SiparisMiktari.Text = '';


  ShowMessage('Sipariş başarıyla eklendi.');

}


{

  TedarikciForm = TclForm.Create(Self);

  TedarikciForm.clSetWindowState(fwsMaximized);

  TedarikciForm.SetFormColor('#f5f5f5', '', clGNone);

  

  jsonStr = '[' +

    '{"TedarikciAdi":"ABC Ticaret","Telefon":"0555 123 45 67","UrunAdi":"Kalem","SiparisMiktari":100,"SiparisTarihi":"2025-07-11","TeslimatTarihi":"2025-07-20"},' +

    '{"TedarikciAdi":"XYZ Ltd.","Telefon":"0532 987 65 43","UrunAdi":"Defter","SiparisMiktari":50,"SiparisTarihi":"2025-07-12","TeslimatTarihi":"2025-07-22"}' +

  ']';


  Lbl_Baslik = TedarikciForm.AddNewProLabel(TedarikciForm, 'Lbl_Baslik', 'Tedarikçi Sipariş Ekleme');

  Lbl_Baslik.Align = alTop;

  Lbl_Baslik.Height = 60;

  Lbl_Baslik.Margins.Top = 20;

  Lbl_Baslik.clProSettings.FontSize = 26;

  Lbl_Baslik.clProSettings.FontVertAlign = palCenter;

  Lbl_Baslik.clProSettings.FontHorzAlign = palCenter;

  Lbl_Baslik.SetclProSettings(Lbl_Baslik.clProSettings);


  mainPnl = TedarikciForm.AddNewProPanel(TedarikciForm, 'mainPnl');

  mainPnl.Align = alClient;


  leftPanel = TedarikciForm.AddNewProPanel(mainPnl, 'leftPanel');

  leftPanel.Align = alLeft;

  leftPanel.Width = 400;

  leftPanel.Margins.Left = 20;

  leftPanel.Margins.Top = 20;


  rightPanel = TedarikciForm.AddNewProPanel(mainPnl, 'rightPanel');

  rightPanel.Align = alClient;

  rightPanel.Margins.Left = 20;

  rightPanel.Margins.Top = 20;


  Edt_TedarikciAdi = TedarikciForm.AddNewProEdit(leftPanel, 'Edt_TedarikciAdi', 'Tedarikçi Adı');

  Edt_TedarikciAdi.Align = alTop;

  Edt_TedarikciAdi.Margins.Top = 10;


  Edt_TedarikciTelefon = TedarikciForm.AddNewProEdit(leftPanel, 'Edt_TedarikciTelefon', 'Telefon');

  Edt_TedarikciTelefon.Align = alTop;

  Edt_TedarikciTelefon.Margins.Top = 10;


  Edt_UrunAdi = TedarikciForm.AddNewProEdit(leftPanel, 'Edt_UrunAdi', 'Ürün Adı');

  Edt_UrunAdi.Align = alTop;

  Edt_UrunAdi.Margins.Top = 10;


  Edt_SiparisMiktari = TedarikciForm.AddNewProEdit(leftPanel, 'Edt_SiparisMiktari', 'Sipariş Miktarı');

  Edt_SiparisMiktari.Align = alTop;

  Edt_SiparisMiktari.Margins.Top = 10;


  Dt_SiparisTarihi = TedarikciForm.AddNewProDateEdit(leftPanel, 'Dt_SiparisTarihi');

  Dt_SiparisTarihi.Align = alTop;

  Dt_SiparisTarihi.Margins.Top = 10;


  Dt_TeslimatTarihi = TedarikciForm.AddNewProDateEdit(leftPanel, 'Dt_TeslimatTarihi');

  Dt_TeslimatTarihi.Align = alTop;

  Dt_TeslimatTarihi.Margins.Top = 10;


  Btn_SiparisEkle = TedarikciForm.AddNewProButton(leftPanel, 'Btn_SiparisEkle', 'Ekle');

  Btn_SiparisEkle.Align = alTop;

  Btn_SiparisEkle.Margins.Top = 15;

  Btn_SiparisEkle.Height = 40;

  Btn_SiparisEkle.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#4CAF50');

  Btn_SiparisEkle.clProSettings.FontColor = clAlphaColor.clWhite;

  Btn_SiparisEkle.clProSettings.FontSize = 16;

  Btn_SiparisEkle.SetclProSettings(Btn_SiparisEkle.clProSettings);

  TedarikciForm.AddNewEvent(Btn_SiparisEkle, tbeOnClick, 'SiparisEkleButtonClick');


  MyGrid = TedarikciForm.AddNewStringGrid(rightPanel, 'MyGrid');

  MyGrid.Align = alClient;

  MyGrid.ReadOnly = True;

  

  MyDataSet = Clomosy.ClDataSetFromJSON(jsonStr);


  TedarikciForm.AddNewGridBinding(MyGrid, MyDataSet, 'mylink');

  

  SetupGridColumns;


  TedarikciForm.Run;

}


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.