Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - Dinamik olarak VerticalScroll yerleştrime hatası
  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.

Dinamik olarak VerticalScroll yerleştrime hatası

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
  Konu Arama Konu Arama  Topic Seçenekleri Topic Seçenekleri
M-Guney Açılır Kutu İzle
Deneyimli Üye
Deneyimli Üye


Kayıt Tarihi: 16 Eylül 2025
Konum: Konya, Meram, K
Durum: Aktif Değil
Puanlar: 79
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı M-Guney Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: Dinamik olarak VerticalScroll yerleştrime hatası
    Gönderim Zamanı: 9 Saat 29 Dakika Önce Saat 15:37
Dinamik olarak vertical scrolla yerleştrime işlemi yapmak istiyorum fakat yerleştirirken arada vertical scroll farklı konuma yerleştiriyor örnek vermem gerekirse 6 dan sonra 7 gelmesi gerekirken 8 geliyor.

void OrdersPnlV(FCount: integer;FArr :TCLJSONArray; FJson : String)  // Scrolbar içinde oluşturduğumuz dinamik panaller ve öğeleri
  var
  I:integer;
  {
    Clomosy.setClipBoard(FJson);
  //Clomosy.setClipBoard(FJson);
  //ShowMessage('FCount: '+ IntToStr(FCount)+ ' table_name: '+ Clomosy.CLParseJSON(FJson, IntToStr(0) + '.table_name'))
  for (I = 0 to FCount - 1) { // HERE
  //ShowMessage('FCount: '+ IntToStr(FCount)+ ' table_name: '+ Clomosy.CLParseJSON(FJson, IntToStr(I) + '.table_name'))
  //ShowMessage('Array Item :'+FArr.GetItem(I).GetValueByPath('order_time').AsString +'FJson: '+Clomosy.CLParseJSON(FJson, IntToStr(I) + '.order_time'));
  OrdersPnl = MainForm.addnewpropanel(vScroll,'OrdersPnl'+IntToStr(I));
  OrdersPnl.Align = alMostTop;
  //OrdersPnl.Width = 50;
  OrdersPnl.Width =(MainForm.clWidth*0.127);
  //OrdersPnl.Height = 102;
  OrdersPnl.Height = (MainForm.clHeight*0.1216);
  SetObjectMargins(OrdersPnl,7);
  OrdersPnl.clProSettings.BorderWidth = 3;
  OrdersPnl.clProSettings.RoundHeight=5;
  OrdersPnl.clProSettings.RoundWidth=5;
  OrdersPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#1e1e1e');
  OrdersPnl.clProSettings.BorderColor = clAlphaColor.clHexToColor('#3a3a3a');
  OrdersPnl.SetclProSettings(OrdersPnl.clProSettings);


  TableLbl = MainForm.AddNewProLabel(OrdersPnl,'TableLbl'+ IntToStr(I),Clomosy.CLParseJSON(FJson, IntToStr(I) + '.table_name'));// HERE
  TableLbl.Align = alTop;
  TableLbl.Width = (MainForm.clWidth * 0.3817);  //150
  TableLbl.Height = (MainForm.clHeight * 0.0238); //20
  TableLbl.Margins.Left= (MainForm.clWidth*-68.70)/100; //-270
  TableLbl.Margins.Top= (MainForm.clHeight*0.834)/100;  //7
  TableLbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff');
  TableLbl.clProSettings.FontSize = 20;
  TableLbl.clProSettings.FontVertAlign = palcenter;
  TableLbl.clProSettings.FontHorzAlign = palcenter;
  TableLbl.clProSettings.TextSettings.Font.Style = [fsBold];
  TableLbl.SetclProSettings(TableLbl.clProSettings);
  
  ClockPnl = MainForm.addnewpropanel(OrdersPnl,'ClockPnl'+IntToStr(I));
  ClockPnl.Align = alCenter;
  ClockPnl.Width = (MainForm.clWidth * 0.3817); //150
  ClockPnl.Height = (MainForm.clHeight * 0.0358); //30
  ClockPnl.Margins.Bottom = (MainForm.clHeight * 0.0417);
  ClockPnl.Margins.Left = (MainForm.clWidth * -0.4453); //-175
  ClockPnl.clProSettings.BorderWidth = 1;
  //ClockPnl.clProSettings.BorderColor = clAlphaColor.clHexToColor('#3a3a3a');
  ClockPnl.SetclProSettings(ClockPnl.clProSettings);
  
  StatePnl = MainForm.addnewpropanel(OrdersPnl,'StatePnl'+IntToStr(I));
  StatePnl.Align = alCenter;
  StatePnl.Width = (MainForm.clWidth * 0.4707); //185
  StatePnl.Height = (MainForm.clHeight * 0.0358); //30
  StatePnl.Margins.Bottom = (MainForm.clHeight * 0.0179); //15
  StatePnl.Margins.Left = (MainForm.clWidth * -0.3511); //-138
  StatePnl.Margins.Top = (MainForm.clHeight * 0.0477);  //40
  StatePnl.clProSettings.BorderWidth = 1;
  //StatePnl.clProSettings.BorderColor = clAlphaColor.clHexToColor('#3a3a3a');
  StatePnl.SetclProSettings(StatePnl.clProSettings);
  
  ClockDisplayLbl = MainForm.AddNewProLabel(ClockPnl,'ClockDisplayLbl'+IntToStr(I),'SAAT:');
  ClockDisplayLbl.Align = alLeft;
  ClockDisplayLbl.Width = (MainForm.clWidth * 0.1272); //50
  ClockDisplayLbl.Height = (MainForm.clHeight * 0.0238); //20
  ClockDisplayLbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff');
  ClockDisplayLbl.clProSettings.FontSize = 14;
  ClockDisplayLbl.clProSettings.FontVertAlign = palcenter;
  ClockDisplayLbl.clProSettings.FontHorzAlign = palcenter;
  ClockDisplayLbl.clProSettings.TextSettings.Font.Style = [fsBold];
  ClockDisplayLbl.SetclProSettings(ClockDisplayLbl.clProSettings);
  
  ClockLbl = MainForm.AddNewProLabel(ClockPnl,'ClockLbl'+IntToStr(I), Clomosy.CLParseJSON(FJson, IntToStr(I) + '.order_time'));// HERE
  ClockLbl.Align = alLeft;
  ClockLbl.Width = (MainForm.clWidth * 0.1272); //50
  ClockLbl.Height = (MainForm.clHeight * 0.0358); //30
  ClockLbl.Margins.Left = (MainForm.clWidth * -0.0051);  //-2
  ClockLbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff');
  ClockLbl.clProSettings.FontSize = 14;
  ClockLbl.clProSettings.FontVertAlign = palcenter;
  ClockLbl.clProSettings.FontHorzAlign = palcenter;
  ClockLbl.clProSettings.TextSettings.Font.Style = [fsBold];
  ClockLbl.SetclProSettings(ClockLbl.clProSettings);
  
  StateLbl = MainForm.AddNewProLabel(StatePnl,'StateLbl'+IntToStr(I),'Durum:');
  StateLbl.Align = alLeft;
  StateLbl.Width = (MainForm.clWidth * 0.1145); //45
  StateLbl.Height = (MainForm.clHeight * 0.0238); //20
  StateLbl.Margins.Left = (MainForm.clWidth * 0.0127); //5
  StateLbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff');
  StateLbl.clProSettings.FontSize = 14;
  StateLbl.clProSettings.FontVertAlign = palcenter;
  StateLbl.clProSettings.FontHorzAlign = palcenter;
  StateLbl.clProSettings.TextSettings.Font.Style = [fsBold];
  StateLbl.SetclProSettings(StateLbl.clProSettings);
  
  StateDisplayLbl = MainForm.AddNewProLabel(StatePnl,'StateDisplayLbl'+IntToStr(I), Clomosy.CLParseJSON(FJson, IntToStr(I) + '.status'));
  StateDisplayLbl.Align = alLeft;
  StateDisplayLbl.Width = (MainForm.clWidth * 0.3308); //130
  StateDisplayLbl.Height = (MainForm.clHeight * 0.0238); //20
  StateDisplayLbl.Margins.Left = (MainForm.clWidth * -0.0254); //-10
  StateDisplayLbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff');
  StateDisplayLbl.clProSettings.FontSize = 14;
  StateDisplayLbl.clProSettings.FontVertAlign = palcenter;
  StateDisplayLbl.clProSettings.FontHorzAlign = palcenter;
  StateDisplayLbl.clProSettings.TextSettings.Font.Style = [fsBold];
  StateDisplayLbl.SetclProSettings(StateDisplayLbl.clProSettings);
  
  DetailsBtn= MainForm.AddNewProButton(OrdersPnl, 'DetailsBtn'+IntToStr(I), 'DETAYLAR');
  DetailsBtn.clTagStr = 'DetailsBtn_'+IntToStr(I);
  DetailsBtn.Align = alCenter;
  DetailsBtn.Width = (MainForm.clWidth*0.3817); //150
  DetailsBtn.Height = (MainForm.clHeight*0.1144); //96
  DetailsBtn.Margins.Bottom= (MainForm.clHeight*0.03442); //27.2
  DetailsBtn.Margins.Left=(MainForm.clWidth*51.65)/100; //203
  DetailsBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff');
  DetailsBtn.clProSettings.FontSize = 16;
  DetailsBtn.clProSettings.FontVertAlign = palcenter;
  DetailsBtn.clProSettings.FontHorzAlign = palcenter;
  DetailsBtn.clProSettings.TextSettings.Font.Style = [fsBold];
  DetailsBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#4caf50');
  DetailsBtn.clProSettings.RoundWidth = 5;
  DetailsBtn.clProSettings.RoundHeight = 5;
  MainForm.AddNewEvent(DetailsBtn,tbeOnClick,'gotodetails');
  DetailsBtn.SetclProSettings(DetailsBtn.clProSettings);
  
  }
}

Örnek Json kodum

[{"order_id":21,"table_name":"K1","status":"paid","order_time":"12:50"},{"order_id":19,"table_name":"K1","status":"paid","order_time":"12:45"},{"order_id":16,"table_name":"K1","status":"paid","order_time":"12:40"},{"order_id":15,"table_name":"K1","status":"paid","order_time":"12:40"},{"order_id":14,"table_name":"K10","status":"paid","order_time":"18:48"},{"order_id":13,"table_name":"K10","status":"paid","order_time":"18:48"},{"order_id":12,"table_name":"K10","status":"pending","order_time":"18:46"},{"order_id":11,"table_name":"K10","status":"pending","order_time":"17:40"},{"order_id":10,"table_name":"K1","status":"pending","order_time":"17:40"},{"order_id":9,"table_name":"K1","status":"pending","order_time":"17:24"},{"order_id":8,"table_name":"K1","status":"pending","order_time":"17:23"},{"order_id":7,"table_name":"K1","status":"pending","order_time":"16:42"},{"order_id":6,"table_name":"K1","status":"paid","order_time":"16:35"},{"order_id":5,"table_name":"K1","status":"paid","order_time":"16:29"},{"order_id":4,"table_name":"K1","status":"pending","order_time":"16:26"},{"order_id":3,"table_name":"K1","status":"pending","order_time":"20:38"},{"order_id":2,"table_name":"K1","status":"paid","order_time":"20:37"},{"order_id":1,"table_name":"K1","status":"paid","order_time":"20:37"}]
https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
Yukarı Dön
Emr.Erkmn Açılır Kutu İzle
Moderatör
Moderatör


Kayıt Tarihi: 28 Şubat 2025
Durum: Aktif Değil
Puanlar: 391
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Emr.Erkmn Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 8 Saat 53 Dakika Önce Saat 16:13
Çözüm olarak önce mevcut componentleri temizleyip, sonra yeniden oluştursak. 
Sanırım aynı isimde component oluşturuluyor. ve isimleri çakışıyor. 
Index sıralamasını da 0'dan başlayalım. 
void ClearScrollChildren
Try
  {
    if (vScroll == nil)
    {
      Exit;
    }
    
  
    for (i = 0 to 99)
    {
      // Ana panel'i kaldır
      existingPanel = MainForm.FindComponent('OrdersPnl' + IntToStr(i)) as TclProPanel;
      if (existingPanel <> nil)
.
.
.
.
hepsini temizledikten sonra OrdersPnlV prosedürine  ClearScrollChildren çağrılaım.


https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" 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">< defer="" ="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28on72PdrCzSjY4U6VaAw1EQ==" -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">

Düzenleyen Emr.Erkmn - 8 Saat 52 Dakika Önce Saat 16:14
Yukarı Dön
Emr.Erkmn Açılır Kutu İzle
Moderatör
Moderatör


Kayıt Tarihi: 28 Şubat 2025
Durum: Aktif Değil
Puanlar: 391
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Emr.Erkmn Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 8 Saat 52 Dakika Önce Saat 16:14
Deneme sonrası dönüş yapar mısın?https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" 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
M-Guney Açılır Kutu İzle
Deneyimli Üye
Deneyimli Üye


Kayıt Tarihi: 16 Eylül 2025
Konum: Konya, Meram, K
Durum: Aktif Değil
Puanlar: 79
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı M-Guney Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 7 Saat 52 Dakika Önce Saat 17:14
Teşşekkürler kaldırma işlemini nasıl yapmam gerekiyor o kısmı tam analayamadım. Kaldırmak için hangi fonksiyonu kullanmam gerekiyor.https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">

Yukarı Dön
Emr.Erkmn Açılır Kutu İzle
Moderatör
Moderatör


Kayıt Tarihi: 28 Şubat 2025
Durum: Aktif Değil
Puanlar: 391
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Emr.Erkmn Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 7 Saat 15 Dakika Önce Saat 17:51
https://www.docs.clomosy.com/index.php?title=ClFindComponent kullanarak kaldırabilirsin
void ClearScrollBoxChildrenClomosy(scrollBox: TCLVertScrollBox; pattern: String; maxCount: Integer)
var
  i: Integer;
  comp: TCLComponent;
  compName: String;
{
  Try
    if (scrollBox == nil)
    {
      Exit;
    }
    
    for (i = 0 to (maxCount - 1))
    {
      Try
        compName = pattern + IntToStr(i);
        comp = scrollBox.clFindComponent(compName);
        
        if (comp <> nil)
        {
          comp.Free;
          comp = nil;
        }
      }
      except
      }
    }
  except
    ShowMessage('ClearScrollBoxChildrenClomosy hatası: ' + LastExceptionMessage);
  }

bu şekil de kaldırmayı deneyelim 
sonra tekrar oluşturalım 


https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
Yukarı Dön
 Yanıt Yaz Yanıt Yaz

Forum Atla Forum İzinleri Açılır Kutu İzle

Forum Software by Web Wiz Forums® version 12.07
Copyright ©2001-2024 Web Wiz Ltd.

Bu Sayfa 0,032 Saniyede Yüklendi.