Sayfayı Yazdır | Pencereyi Kapat

For Döngüsü İçerisinde Değişken Oluşturma

Nereden Yazdırıldığı: Clomosy | Forum
Kategori: Genel Programlama
Forum Adı: Genel İşlemler
Forum Tanımlaması: TRObject dili ile programlama yaparken karşılaşılan genel işlemler
URL: https://forum.clomosy.com.tr/forum_posts.asp?TID=1214
Tarih: 10 Mart 2026 Saat 05:10
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: For Döngüsü İçerisinde Değişken Oluşturma
Mesajı Yazan: Eren Ö.
Konu: For Döngüsü İçerisinde Değişken Oluşturma
Mesaj Tarihi: 30 Ekim 2025 Saat 14:28
Mantık hatasından dolayı düzeltemedim. Yapmaya çalıştığım olay:
Edit2'den gelen sayıyı alıp,
O sayı kadar VertScrollBar'a masa eklemek istiyorum. Bu masaları kapsayacak panelin sadece 3 tane masa almasını istiyorum. 3 tane masayı geçince yeni bir panel oluşturup altına getirmesini istiyorum. 2 tane olursa eğer masa sayısı, bir panel daha oluşturup 2'sini sola hızalayıp verilmeyen masanın yerini boş bırakmasını istiyorum.

var
MainForm: TClForm;
TestPnl: TclProPanel;
TestBtn: TClProButton;
TestEdit, TestEdit2: TclProEdit;
vScroll: TCLVertScrollBox;

void SetObjectMargins(AObject,AValue){
  AObject.Margins.Top = AValue;
  AObject.Margins.Bottom = AValue;
  AObject.Margins.Left = AValue;
  AObject.Margins.Right = AValue;
}

function IconSelect(IconUI):String
var
  Output: String;
{
  case IconUI of
  {
    'ClosmosyLogo':Output = ' https://resmim.net/cdn/2025/10/22/jV6v6Q.png" rel="nofollow - https://resmim.net/cdn/2025/10/22/jV6v6Q.png ';
    'AdminManagementBtnUI':Output = ' https://resmim.net/cdn/2025/10/24/ju0eoT.png" rel="nofollow - https://resmim.net/cdn/2025/10/24/ju0eoT.png ';
    'BackArrowBtnUI':Output = ' https://resmim.net/cdn/2025/10/24/ju1STG.png" rel="nofollow - https://resmim.net/cdn/2025/10/24/ju1STG.png ';
    'HomePageBtnUI':Output = ' https://resmim.net/cdn/2025/10/24/ju1fIT.png" rel="nofollow - https://resmim.net/cdn/2025/10/24/ju1fIT.png ';
    'ItemsBtnUI':Output = ' https://resmim.net/cdn/2025/10/24/ju1mZL.png" rel="nofollow - https://resmim.net/cdn/2025/10/24/ju1mZL.png ';
    'ManagementBtnUI':Output = ' https://resmim.net/cdn/2025/10/24/ju1Tqh.png" rel="nofollow - https://resmim.net/cdn/2025/10/24/ju1Tqh.png ';
    'OrderChecklistBtnUI':Output = ' https://resmim.net/cdn/2025/10/24/ju1jdK.png" rel="nofollow - https://resmim.net/cdn/2025/10/24/ju1jdK.png ';
    'OrdersBtnUI':Output = ' https://resmim.net/cdn/2025/10/24/ju1CGQ.png" rel="nofollow - https://resmim.net/cdn/2025/10/24/ju1CGQ.png ';
    'QRBtnUI':Output = ' https://resmim.net/cdn/2025/10/24/ju1kI7.png" rel="nofollow - https://resmim.net/cdn/2025/10/24/ju1kI7.png ';
    'SaveBtnUI':Output = ' https://resmim.net/cdn/2025/10/24/ju1gBc.png" rel="nofollow - https://resmim.net/cdn/2025/10/24/ju1gBc.png ';
    'ShiftBtnUI':Output = ' https://resmim.net/cdn/2025/10/24/ju18QR.png" rel="nofollow - https://resmim.net/cdn/2025/10/24/ju18QR.png ';
    'ShiftsBtnUI':Output = ' https://resmim.net/cdn/2025/10/24/ju1Bzj.png" rel="nofollow - https://resmim.net/cdn/2025/10/24/ju1Bzj.png ';
    'SortBtnUI':Output = ' https://resmim.net/cdn/2025/10/24/ju1rXI.png" rel="nofollow - https://resmim.net/cdn/2025/10/24/ju1rXI.png ';
    'StocksBtnUI':Output = ' https://resmim.net/cdn/2025/10/24/ju15f6.png" rel="nofollow - https://resmim.net/cdn/2025/10/24/ju15f6.png ';
    'TablesBtnUI':Output = ' https://resmim.net/cdn/2025/10/24/ju1RK8.png" rel="nofollow - https://resmim.net/cdn/2025/10/24/ju1RK8.png ';
    'TablesIconUI':Output = ' https://resmim.net/cdn/2025/10/30/jJABcF.png" rel="nofollow - https://resmim.net/cdn/2025/10/30/jJABcF.png ';
    else{
      ShowMessage('Tınne');
    }
  }
  Result = Output;
}

void TestBtnV
var
  TestLbl: TClProLabel;
  TestImage: TClProImage;
  MasaHarfi, MasaAdeti, Topla: String;
  I, k, TempMod: Integer;
  
  {
    SetObjectMargins(TestEdit,6);
    MasaHarfi = TestEdit.Text;
    MasaAdeti = TestEdit2.Text;
    
    Topla = MasaHarfi + ' ' + MasaAdeti;
    for (k = 1 to IntToStr(MasaAdeti))
    {
    TempMod = k Mod 3;
    ShowMessage('TempMod :' + IntToStr(TempMod) + ' ' + 'K :' + IntToStr(k));
      if (TempMod < 3)
      {
      ShowMessage('1. if '+IntToStr(TempMod));
        TestPnl = MainForm.AddNewProPanel(vScroll,'TestPnl'+IntToStr(k));
        TestPnl.Align = alCenter;
        TestPnl.Height = (MainForm.clHeight*200)/100;
        TestPnl.Width = (MainForm.clWidth*200)/100;
        TestPnl.Margins.Top = -60;
        TestPnl.Margins.Left = -10;
        TestPnl.Margins.Right = -10;
        TestPnl.clProSettings.BorderWidth = 3;
        TestPnl.clProSettings.BorderColor = clAlphaColor.clHexToColor('#3a3a3a');
        TestPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#4caf50');
        TestPnl.SetclProSettings(TestPnl.clProSettings);
        ShowMessage('Panel Oluştu'+IntToStr(k));
        for (I = 1 to 3)
        {
          if (k > StrToInt(MasaAdeti)) Break;
          {
            TestLbl = MainForm.AddNewProLabel(TestPnl,'TestBtn'+IntToStr(k), Topla);
            TestLbl.Align = alCenter;
            TestLbl.Width = 400;
            TestLbl.Height = 600;
            TestLbl.Margins.Bottom = 60;
            TestLbl.clProSettings.FontSize = 35;
            TestLbl.clProSettings.FontVertAlign = palcenter;
            TestLbl.clProSettings.FontHorzAlign = palcenter;
            TestLbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff');
            TestLbl.clProSettings.TextSettings.Font.Style = [fsBold];
            TestLbl.SetclProSettings(TestLbl.clProSettings);
            
            TestImage = MainForm.AddNewProImage(TestPnl,'TestImage'+IntToStr(k));
            TestImage.Align = alCenter;
            TestImage.Height = (TestPnl.Height*40)/100;
            TestImage.Width = (TestPnl.Width*40)/100;
            TestImage.Margins.Top = 50;
            TestImage.clProSettings.PictureSource = IconSelect('TablesIconUI');
            TestImage.clProSettings.PictureAutoFit = True;
            TestImage.SetclProSettings(TestImage.clProSettings);
            
            Inc(k);
          }
        }
      }
    }
  }

void MainPnlV
  {
   vScroll = MainForm.AddNewVertScrollBox(MainForm,'vScroll');
   vScroll.Align = alCenter;
   vScroll.Height = (MainForm.clHeight*45)/100;
   vScroll.Width = (MainForm.clWidth*88)/100;
   vScroll.Margins.Bottom=270;
  }

{


  MainForm = tclform.Create(self);
  MainForm.clSetWindowState(fwsMaximized);
  
  TestEdit = MainForm.AddNewProEdit(MainForm, 'TestEdit', '');
  TestEdit2 = MainForm.AddNewProEdit(MainForm, 'TestEdit2', '');
  TestEdit.Align = alMostTop;
  TestEdit2.Align = alTop;
  
  TestBtn = MainForm.AddNewProButton(MainForm,'TestBtn','Test');
  TestBtn.Align = alBottom;
  TestBtn.Height = 45;
  TestBtn.Width = 180;
  TestBtn.Margins.Top=20;
  TestBtn.Margins.Left=10;
  TestBtn.Margins.Right=10;
  TestBtn.clProSettings.BorderWidth = 1;
  TestBtn.clProSettings.RoundHeight = 4;
  TestBtn.clProSettings.RoundWidth = 4;
  TestBtn.clProSettings.FontSize = 27;
  TestBtn.clProSettings.FontVertAlign = palcenter;
  TestBtn.clProSettings.FontHorzAlign = palcenter;
  TestBtn.clProSettings.BorderColor = clAlphaColor.clHexToColor('#3a3a3a');
  TestBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#e8e3e3');
  TestBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#4caf50');
  TestBtn.clProSettings.TextSettings.Font.Style = [fsBold];
  TestBtn.SetclProSettings(TestBtn.clProSettings);
  MainForm.AddNewEvent(TestBtn,tbeOnClick,'TestBtnV');
  
  MainPnlV;
  TestBtnV;
  
  MainForm.SetFormColor('#121212','',clGNone);
  MainForm.FormWaiting.Visible = False;
  MainForm.BtnFormMenu.Visible = False;
  MainForm.BtnGoBack.Visible = False;
  MainForm.run;
}



Cevaplar:
Mesajı Yazan: Emr.Erkmn
Mesaj Tarihi: 31 Ekim 2025 Saat 14:19
Merhaba Eren, 
İki farklı çözüm yolu bırakıyorum aşağıya incelemeni istiyorum. 
Kullandığım bileşen; TclFlowLayout 

*****************1. Örnek******************
var
  MainForm: TClForm;
  MasaHarfiEdit: TclProEdit;
  MasaNumaraEdit: TclProEdit;
  flowLayout: TclFlowLayout;
  buttonCounter: Integer;
  numaraLabel, harfLabel  : TClProLabel;
  TemizleBtn :TClProButton;
void MasaEkle
var
  masaHarfi: String;
  masaAdeti: Integer;
  masaButton: TCLProButton;
  masaAdi: String;
  i: Integer;
{
  // Edit'lerden değerleri al
  masaHarfi = MasaHarfiEdit.Text;
  
  // Boş kontrolü
  if ((masaHarfi == '') || (MasaNumaraEdit.Text == ''))
  {
    Exit;
  }
  // Masa numarasını sayıya çevir
  Try
    masaAdeti = StrToInt(MasaNumaraEdit.Text);
  except
    ShowMessage('Lütfen geçerli bir sayı giriniz!');
    Exit;
  }
  if (masaAdeti <= 0)
  {
    ShowMessage('Masa adedi 1 veya daha büyük olmalı!');
    Exit;
  }
  // FlowLayout kontrolü
  if (flowLayout == nil)
  {
    ShowMessage('FlowLayout bulunamadı!');
    Exit;
  }
  // Girilen sayı kadar masa butonu oluştur
  for (i = 1 to masaAdeti)
  {
    Try
      // Masa adını oluştur (harf + numara: A1, A2, A3...)
      masaAdi = masaHarfi + IntToStr(i);
      
      buttonCounter = buttonCounter + 1;
      masaButton = MainForm.AddNewProButton(flowLayout, 'MasaButton_' + IntToStr(buttonCounter), masaAdi);
      masaButton.Width = 150;
      masaButton.Height = 100;
      masaButton.clProSettings.FontSize = 16;
      masaButton.clProSettings.FontVertAlign = palcenter;
      masaButton.clProSettings.FontHorzAlign = palcenter;
      masaButton.clProSettings.RoundHeight = 8;
      masaButton.clProSettings.RoundWidth = 8;
      masaButton.clProSettings.PictureSource = ' https://resmim.net/cdn/2025/10/30/jJABcF.png" rel="nofollow - https://resmim.net/cdn/2025/10/30/jJABcF.png '
      masaButton.SetclProSettings(masaButton.clProSettings)
    except
      ShowMessage('Buton oluşturulurken hata: ' + LastExceptionMessage + ' (Masa: ' + masaAdi + ')');
    }
  }
  // Edit'leri temizle - yeni masa grubu için hazır
  MasaHarfiEdit.Text = '';
  MasaNumaraEdit.Text = '';
}
void MasaEkleHarfi
{
  // Masa harfi girildiğinde tetikle
  // Sadece numara da girilmişse buton ekle
  if ((MasaHarfiEdit.Text <> '') && (MasaNumaraEdit.Text <> ''))
  {
    MasaEkle;
  }
}

void MasaEkleNumara
{
  // Masa numarası girildiğinde tetikle
  // Sadece harf de girilmişse buton ekle
  if ((MasaHarfiEdit.Text <> '') && (MasaNumaraEdit.Text <> ''))
  {
    MasaEkle;
  }
}

void ButonlariTemizle
var
  i: Integer;
  existingButton: TCLButton;
{
  // Tüm buton'ları temizle
  for (i = 1 to buttonCounter)
  {
    existingButton = MainForm.FindComponent('MasaButton_' + IntToStr(i)) as TCLProButton;
    if (existingButton <> nil)
    {
      Try
      
        existingButton = nil;
      
      except
      
      }
    }
  }
  buttonCounter = 0;
}

{
  MainForm = TClForm.Create(self);
  MainForm.clSetWindowState(fwsMaximized);
  MainForm.SetFormColor('#F5F5F5', '', clGNone);
  MainForm.FormWaiting.Visible = False;
  MainForm.BtnFormMenu.Visible = False;
  MainForm.BtnGoBack.Visible = False;

  buttonCounter = 0;

  // Masa Harfi Edit oluştur
  harfLabel = MainForm.AddNewProLabel(MainForm, 'HarfLabel', 'Masa Harfi:');
  harfLabel.Align = alTop;
  harfLabel.Height = 30;
  harfLabel.Margins.Top = 20;
  harfLabel.Margins.Left = 20;
  harfLabel.clProSettings.FontSize = 16;
  harfLabel.clProSettings.FontColor = clAlphaColor.clHexToColor('#333333');
  harfLabel.SetclProSettings(harfLabel.clProSettings);

  MasaHarfiEdit = MainForm.AddNewProEdit(MainForm, 'MasaHarfiEdit', '');
  MasaHarfiEdit.Align = alTop;
  MasaHarfiEdit.Height = 50;
  MasaHarfiEdit.Margins.Top = 5;
  MasaHarfiEdit.Margins.Left = 20;
  MasaHarfiEdit.Margins.Right = 20;
  MasaHarfiEdit.clProSettings.FontSize = 18;
  MasaHarfiEdit.clProSettings.BorderColor = clAlphaColor.clHexToColor('#CCCCCC');
  MasaHarfiEdit.clProSettings.RoundHeight = 8;
  MasaHarfiEdit.clProSettings.RoundWidth = 8;
  MasaHarfiEdit.SetclProSettings(MasaHarfiEdit.clProSettings);
  MainForm.AddNewEvent(MasaHarfiEdit, tbeOnChange, 'MasaEkleHarfi');

  // Masa Numarası Edit oluştur
  numaraLabel = MainForm.AddNewProLabel(MainForm, 'NumaraLabel', 'Masa Numarası:');
  numaraLabel.Align = alTop;
  numaraLabel.Height = 30;
  numaraLabel.Margins.Top = 10;
  numaraLabel.Margins.Left = 20;
  numaraLabel.clProSettings.FontSize = 16;
  numaraLabel.clProSettings.FontColor = clAlphaColor.clHexToColor('#333333');
  numaraLabel.SetclProSettings(numaraLabel.clProSettings);

  MasaNumaraEdit = MainForm.AddNewProEdit(MainForm, 'MasaNumaraEdit', '');
  MasaNumaraEdit.Align = alTop;
  MasaNumaraEdit.Height = 50;
  MasaNumaraEdit.Margins.Top = 5;
  MasaNumaraEdit.Margins.Left = 20;
  MasaNumaraEdit.Margins.Right = 20;
  MasaNumaraEdit.clProSettings.FontSize = 18;
  MasaNumaraEdit.clProSettings.BorderColor = clAlphaColor.clHexToColor('#CCCCCC');
  MasaNumaraEdit.clProSettings.RoundHeight = 8;
  MasaNumaraEdit.clProSettings.RoundWidth = 8;
  MasaNumaraEdit.SetclProSettings(MasaNumaraEdit.clProSettings);
  MainForm.AddNewEvent(MasaNumaraEdit, tbeOnChange, 'MasaEkleNumara');

  // Temizle butonu
  TemizleBtn = MainForm.AddNewProButton(MainForm, 'TemizleBtn', 'Tümünü Temizle');
  TemizleBtn.Align = alTop;
  TemizleBtn.Height = 50;
  TemizleBtn.Margins.Top = 10;
  TemizleBtn.Margins.Left = 20;
  TemizleBtn.Margins.Right = 20;
  TemizleBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#E74C3C');
  TemizleBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  TemizleBtn.clProSettings.FontSize = 16;
  TemizleBtn.clProSettings.FontVertAlign = palcenter;
  TemizleBtn.clProSettings.FontHorzAlign = palcenter;
  TemizleBtn.clProSettings.RoundHeight = 8;
  TemizleBtn.clProSettings.RoundWidth = 8;
  TemizleBtn.SetclProSettings(TemizleBtn.clProSettings);
  MainForm.AddNewEvent(TemizleBtn, tbeOnClick, 'ButonlariTemizle');

  // FlowLayout oluştur - Form üzerine direkt
  flowLayout = MainForm.AddNewFlowLayout(MainForm, 'flowLayout');
  flowLayout.Align = alClient;
  flowLayout.JustifyText = 'Justify';        
  flowLayout.JustifyLastLineText = 'Center';  
  flowLayout.FlowDirectionText = 'LeftToRight'; 
  flowLayout.HorizontalGap = 15;              
  flowLayout.VerticalGap = 15;               
  flowLayout.Margins.Left = 20;
  flowLayout.Margins.Right = 20;
  flowLayout.Margins.Top = 10;
  flowLayout.Margins.Bottom = 20;

  MainForm.Run;
}
********************2. örnek ************************
var
  MainForm: TClForm;
  TestBtn: TClProButton;
  TestEdit, TestEdit2: TclProEdit;
  vScroll: TCLVertScrollBox;
  TableLayout: TclFlowLayout; 

function IconSelect(IconUI):String
var
  Output: String;
{
  Output = ''; 
  case IconUI of
  {
    'ClosmosyLogo':Output = ' https://resmim.net/cdn/2025/10/22/jV6v6Q.png" rel="nofollow - https://resmim.net/cdn/2025/10/22/jV6v6Q.png ';
    'AdminManagementBtnUI':Output = ' https://resmim.net/cdn/2025/10/24/ju0eoT.png" rel="nofollow - https://resmim.net/cdn/2025/10/24/ju0eoT.png ';
    'BackArrowBtnUI':Output = ' https://resmim.net/cdn/2025/10/24/ju1STG.png" rel="nofollow - https://resmim.net/cdn/2025/10/24/ju1STG.png ';
    'HomePageBtnUI':Output = ' https://resmim.net/cdn/2025/10/24/ju1fIT.png" rel="nofollow - https://resmim.net/cdn/2025/10/24/ju1fIT.png ';
    'ItemsBtnUI':Output = ' https://resmim.net/cdn/2025/10/24/ju1mZL.png" rel="nofollow - https://resmim.net/cdn/2025/10/24/ju1mZL.png ';
    'ManagementBtnUI':Output = ' https://resmim.net/cdn/2025/10/24/ju1Tqh.png" rel="nofollow - https://resmim.net/cdn/2025/10/24/ju1Tqh.png ';
    'OrderChecklistBtnUI':Output = ' https://resmim.net/cdn/2025/10/24/ju1jdK.png" rel="nofollow - https://resmim.net/cdn/2025/10/24/ju1jdK.png ';
    'OrdersBtnUI':Output = ' https://resmim.net/cdn/2025/10/24/ju1CGQ.png" rel="nofollow - https://resmim.net/cdn/2025/10/24/ju1CGQ.png ';
    'QRBtnUI':Output = ' https://resmim.net/cdn/2025/10/24/ju1kI7.png" rel="nofollow - https://resmim.net/cdn/2025/10/24/ju1kI7.png ';
    'SaveBtnUI':Output = ' https://resmim.net/cdn/2025/10/24/ju1gBc.png" rel="nofollow - https://resmim.net/cdn/2025/10/24/ju1gBc.png ';
    'ShiftBtnUI':Output = ' https://resmim.net/cdn/2025/10/24/ju18QR.png" rel="nofollow - https://resmim.net/cdn/2025/10/24/ju18QR.png ';
    'ShiftsBtnUI':Output = ' https://resmim.net/cdn/2025/10/24/ju1Bzj.png" rel="nofollow - https://resmim.net/cdn/2025/10/24/ju1Bzj.png ';
    'SortBtnUI':Output = ' https://resmim.net/cdn/2025/10/24/ju1rXI.png" rel="nofollow - https://resmim.net/cdn/2025/10/24/ju1rXI.png ';
    'StocksBtnUI':Output = ' https://resmim.net/cdn/2025/10/24/ju15f6.png" rel="nofollow - https://resmim.net/cdn/2025/10/24/ju15f6.png ';
    'TablesBtnUI':Output = ' https://resmim.net/cdn/2025/10/24/ju1RK8.png" rel="nofollow - https://resmim.net/cdn/2025/10/24/ju1RK8.png ';
    'TablesIconUI':Output = ' https://resmim.net/cdn/2025/10/30/jJABcF.png" rel="nofollow - https://resmim.net/cdn/2025/10/30/jJABcF.png ';
    else{
      ShowMessage('HATA: IconSelect fonksiyonunda bulunamayan ikon: ' + IconUI);
    }
  }
  Result = Output;
}

function CreateTableCell(AParent; ACaption: String; AName: String): TclProPanel
var
  Cell: TclProPanel;
  Img: TClProImage;
  Lbl: TClProLabel;
{
  Cell = MainForm.AddNewProPanel(AParent, AName); 
  
  
  Cell.Width = 400; 
  Cell.Height = (MainForm.clHeight*200)/100;
  Cell.Margins.Left = 10;
  Cell.Margins.Right = 10;
  Cell.Margins.Top = 5;
  Cell.Margins.Bottom = 5;
  Cell.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#4caf50');
  Cell.clProSettings.BorderWidth = 3;
  Cell.clProSettings.BorderColor = clAlphaColor.clHexToColor('#3a3a3a');
  Cell.clProSettings.RoundHeight = 10;
  Cell.clProSettings.RoundWidth = 10;
  Cell.SetclProSettings(Cell.clProSettings);

  Img = MainForm.AddNewProImage(Cell, 'Img_' + AName);
  Img.Align = alTop;
  Img.Height = (Cell.Height * 40) / 100; 
  Img.Margins.Top = 10;
  Img.clProSettings.PictureSource = IconSelect('TablesIconUI'); 
  Img.clProSettings.PictureAutoFit = True;
  Img.SetclProSettings(Img.clProSettings);

  Lbl = MainForm.AddNewProLabel(Cell, 'Lbl_' + AName, ACaption);
  Lbl.Align = alClient; 
  Lbl.Margins.Top = 6;
  Lbl.Margins.Bottom = 12;
  Lbl.Margins.Left = 12;
  Lbl.Margins.Right = 12;
  Lbl.clProSettings.FontSize = 35; 
  Lbl.clProSettings.FontVertAlign = palcenter;
  Lbl.clProSettings.FontHorzAlign = palcenter;
  Lbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  Lbl.clProSettings.TextSettings.Font.Style = [fsBold];
  Lbl.SetclProSettings(Lbl.clProSettings);

  Result = Cell;
}

void MainPnlV
{
  vScroll = MainForm.AddNewVertScrollBox(MainForm,'vScroll');
  vScroll.Align = alCenter;
  vScroll.Height = (MainForm.clHeight*45)/100;
  
  vScroll.Width = (MainForm.clWidth*98)/100; 
  
  vScroll.Margins.Bottom = 270;
  
  TableLayout = MainForm.AddNewFlowLayout(vScroll, 'TableLayout');
  TableLayout.Align = alTop; 
  TableLayout.JustifyText = 'Justify'; 
  TableLayout.HorizontalGap = 7; 
  TableLayout.VerticalGap = 5;   
}

void TestBtnV
var
  MasaHarfi, Topla, CellName: String;
  MasaAdeti_Int, k, i: Integer; 
{
  // === GÜVENLİK KONTROLÜ ===
  if ((not Assigned(MainForm)) || 
      (not Assigned(TableLayout)) || 
      (not Assigned(TestEdit)) || 
      (not Assigned(TestEdit2))) 
  {
    Exit; 
  }

  for (i = TableLayout.ComponentCount - 1 downto 0)
  {
    TableLayout.Components.Free;
  }
  
  MasaHarfi = TestEdit.Text;
  
  try
  
    MasaAdeti_Int = StrToInt(TestEdit2.Text);
  
  except
  
    ShowMessage('Lütfen geçerli bir masa adeti (sayı) girin.');
    TestEdit2.SetFocus;
    Exit;
  }

  if (MasaHarfi == '') 
  {
    ShowMessage('Lütfen Masa Harfini girin.');
    TestEdit.SetFocus;
    Exit;
  }
  
  if (MasaAdeti_Int <= 0)  Exit; // 0 veya negatif sayıysa çık
  
  //  DÖNGÜ İLE YENİ MASALARI OLUŞTUR 
  for (k = 1 to MasaAdeti_Int)
  {
    // A 1, A 2 şeklinde metin oluştur
    Topla = MasaHarfi + ' ' + IntToStr(k);
    
    // ("Masa_A_1")
    CellName = 'Masa_' + clGetStringReplace(Topla, ' ', '_'); 
    
    // Masayı direkt olarak TableLayout'a ekle.
    CreateTableCell(TableLayout, Topla, CellName);
  }
  
  TestEdit2.Text = ''; 
  TestEdit.SetFocus; 
}

{
  MainForm = tclform.Create(self);
  MainForm.clSetWindowState(fwsMaximized);
  
  TestEdit = MainForm.AddNewProEdit(MainForm, 'TestEdit', 'Masa Harfi');
  TestEdit2 = MainForm.AddNewProEdit(MainForm, 'TestEdit2', 'Masa Numarası');
  TestEdit.Align = alMostTop;
  TestEdit2.Align = alTop;
  
  TestBtn = MainForm.AddNewProButton(MainForm,'TestBtn','Test');
  TestBtn.Align = alBottom;
  TestBtn.Height = 45;
  TestBtn.Width = 180;
  TestBtn.Margins.Top = 20;
  TestBtn.Margins.Left = 10;
  TestBtn.Margins.Right = 10;
  TestBtn.clProSettings.BorderWidth = 1;
  TestBtn.clProSettings.RoundHeight = 4;
  TestBtn.clProSettings.RoundWidth = 4;
  TestBtn.clProSettings.FontSize = 27;
  TestBtn.clProSettings.FontVertAlign = palcenter;
  TestBtn.clProSettings.FontHorzAlign = palcenter;
  TestBtn.clProSettings.BorderColor = clAlphaColor.clHexToColor('#3a3a3a');
  TestBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#e8e3e3');
  TestBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#4caf50');
  TestBtn.clProSettings.TextSettings.Font.Style = [fsBold];
  TestBtn.SetclProSettings(TestBtn.clProSettings);
  
  MainPnlV; 
  
  MainForm.AddNewEvent(TestBtn, tbeOnClick, 'TestBtnV');
  
  MainForm.SetFormColor('#121212','',clGNone);
  MainForm.FormWaiting.Visible = False;
  MainForm.BtnFormMenu.Visible = False;
  MainForm.BtnGoBack.Visible = False;
  MainForm.run;
}




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