Sayfayı Yazdır | Pencereyi Kapat

TclProEdit içeriği dolu olmasına rağmen boş dönüyo

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=1310
Tarih: 12 Şubat 2026 Saat 17:13
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: TclProEdit içeriği dolu olmasına rağmen boş dönüyo
Mesajı Yazan: Nevra Nur
Konu: TclProEdit içeriği dolu olmasına rağmen boş dönüyo
Mesaj Tarihi: 12 Şubat 2026 Saat 13:37

Merhabalar,

Clomosy üzerinde geliştirmekte olduğum Wordle benzeri bir kelime oyununda, 5x5'lik bir matrisi for döngüsü ile dinamik olarak oluşturuyorum. Kullanıcı ilk satırı doldurup butona bastığında verileri başarıyla okuyabiliyorum. Ancak CurrentRow değişkenini artırıp ikinci satıra geçtiğimde, kullanıcı görsel olarak kutucukları doldurmuş olmasına rağmen kod tarafında LocalTargetEdit.Text değeri boş  olarak dönüyor.

Bileşenlere şu şekilde erişiyorum: LocalTargetEdit = MyForm.clFindComponent('Edit_' + IntToStr(CurrentRow) + '_' + IntToStr(k));

CurrentRow değeri doğru şekilde 2 oluyor. Bileşen (Edit_2_1, Edit_2_2 vb.) başarıyla bulunuyor .Ancak kullanıcı içine harf yazmış olsa bile LocalTargetEdit.Text içeriği boş görünüyor. Kullanıcı kutucuktan çıkış yapmadığında veya odak değişmediğinde veri belleğe işlenmiyor gibi görünüyor.

< 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">



Cevaplar:
Mesajı Yazan: Nevra Nur
Mesaj Tarihi: 12 Şubat 2026 Saat 16:30
Orjinalini yazan: Nevra Nur Nevra Nur Yazdı:

Merhabalar,

Clomosy üzerinde geliştirmekte olduğum Wordle benzeri bir kelime oyununda, 5x5'lik bir matrisi for döngüsü ile dinamik olarak oluşturuyorum. Kullanıcı ilk satırı doldurup butona bastığında verileri başarıyla okuyabiliyorum. Ancak CurrentRow değişkenini artırıp ikinci satıra geçtiğimde, kullanıcı görsel olarak kutucukları doldurmuş olmasına rağmen kod tarafında LocalTargetEdit.Text değeri boş  olarak dönüyor.

Bileşenlere şu şekilde erişiyorum: LocalTargetEdit = MyForm.clFindComponent('Edit_' + IntToStr(CurrentRow) + '_' + IntToStr(k));



var

  MyForm: TclForm;

  WordToGuess, CurrentCompName: String;

  CurrentRow, i, j: Integer;

  HintLabel: TclLabel;

  MainGridContent: TclLayout;

  RowLayout: TclLayout;

  TempEdit,TargetEdit: TclProEdit;

  CheckBtn: TClProButton;

  

void CheckGuess;

var 

  Letter, TargetLetter, CurrentUserGuess,CheckText: String; 

  k: Integer;

  IsWin: Boolean;

  LocalTargetEdit: TclProEdit;

{

  CurrentUserGuess = '';

  IsWin = True;

  


  for (k = 1 to 5)

  {

    

    LocalTargetEdit = MyForm.clFindComponent('Edit_' + IntToStr(CurrentRow) + '_' + IntToStr(k));

   

    CheckText = Trim(LocalTargetEdit.Text);

    

    if (CheckText == '')

    {

       ShowMessage('Hata: ' + IntToStr(CurrentRow) + '. satır, ' + IntToStr(k) + '. kutucuk boş!');

       Exit; 

    }

    CurrentUserGuess = CurrentUserGuess + UpperCase(CheckText);

  }


  for (k = 1 to 5)

  {

    Letter = Copy(CurrentUserGuess, k, 1);

    TargetLetter = Copy(WordToGuess, k, 1);

    LocalTargetEdit = MyForm.clFindComponent('Edit_' + IntToStr(CurrentRow) + '_' + IntToStr(k));

    

    if (Letter == TargetLetter)

    {

      LocalTargetEdit.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#3cb187');

    }

    else if (Pos(Letter, WordToGuess) > 0)

    {

      LocalTargetEdit.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#c9b458');

      IsWin = False;

    }

    else

    {

      LocalTargetEdit.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#787c7e');

      IsWin = False;

    }

    LocalTargetEdit.SetclProSettings(LocalTargetEdit.clProSettings);

    LocalTargetEdit.ReadOnly = True; 

  }


  if (IsWin == True)

  {

    ShowMessage('✓ Tebrikler! Doğru kelime: ' + WordToGuess);

  }

  else

  {

    if (CurrentRow >= 5)

    {

      ShowMessage('X Maalesef tüm hakların bitti! Kelime: ' + WordToGuess);

    }

    else

    {

      CurrentRow = CurrentRow + 1;

      ShowMessage(IntToStr(CurrentRow) + '. denemeye geçtiniz!');

    }

  }

}


{

  MyForm = TclForm.Create(Self);

  WordToGuess = 'KÖPEK'; 

  CurrentRow = 1;


  

  HintLabel = MyForm.AddNewLabel(MyForm, 'HintLabel', 'İpucu: Bir Hayvan');

  HintLabel.Align = alTop;

  HintLabel.Margins.Top = 30;

  HintLabel.Margins.Left = 20;

  HintLabel.TextSettings.Font.Size = 18;


  MainGridContent = MyForm.AddNewLayout(MyForm, 'MainGridContent');

  MainGridContent.Align = alCenter;

  MainGridContent.Width = 320;

  MainGridContent.Height = 350;


  for (i = 1 to 5)

  {

    RowLayout = MyForm.AddNewLayout(MainGridContent, 'Row' + IntToStr(i));

    RowLayout.Align = alTop;

    RowLayout.Height = 60;

    RowLayout.Margins.Bottom = 8;


    for (j = 1 to 5)

    {

      CurrentCompName = 'Edit_' + IntToStr(i) + '_' + IntToStr(j);

      TempEdit = MyForm.AddNewProEdit(RowLayout, CurrentCompName, '');

      TempEdit.Align = alLeft;

      TempEdit.Width = 55;

      TempEdit.Margins.Left = 5;

      TempEdit.MaxLength = 1; 

      

      

      TempEdit.clProSettings.FontSize = 22;

    

      TempEdit.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff');

      TempEdit.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#333333');

      TempEdit.clProSettings.RoundHeight = 2;

      TempEdit.clProSettings.RoundWidth = 2;

      TempEdit.clProSettings.IsFill = True;

      TempEdit.clProSettings.IsRound = True;

      

     

      TempEdit.SetclProSettings(TempEdit.clProSettings);

    }

  }

  


  CheckBtn = MyForm.AddNewProButton(MyForm, 'CheckBtn', 'TAHMİN ET');

  CheckBtn.Align = alBottom;

  CheckBtn.Height = 50;

  CheckBtn.Margins.Bottom = 20;

  CheckBtn.Margins.Left = 50;

  CheckBtn.Margins.Right = 50;

  


  CheckBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#3cb187');

  CheckBtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff');

  CheckBtn.clProSettings.FontSize = 14;

  CheckBtn.clProSettings.TextSettings.Font.Style = [fsBold];

  CheckBtn.clProSettings.RoundHeight = 15;

  CheckBtn.clProSettings.RoundWidth = 15;

  CheckBtn.clProSettings.IsFill = True;

  CheckBtn.clProSettings.IsRound = True;

  CheckBtn.SetclProSettings(CheckBtn.clProSettings);


  MyForm.AddNewEvent(CheckBtn, tbeOnClick, 'CheckGuess');


  MyForm.Run;

}

CurrentRow değeri doğru şekilde 2 oluyor. Bileşen (Edit_2_1, Edit_2_2 vb.) başarıyla bulunuyor .Ancak kullanıcı içine harf yazmış olsa bile LocalTargetEdit.Text içeriği boş görünüyor. Kullanıcı kutucuktan çıkış yapmadığında veya odak değişmediğinde veri belleğe işlenmiyor gibi görünüyor.

< 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">
< 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">



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