Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - TclProEdit içeriği dolu olmasına rağmen boş dönüyo
  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.

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

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


Kayıt Tarihi: 09 Şubat 2026
Konum: konya
Durum: Aktif Değil
Puanlar: 13
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Nevra Nur Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: TclProEdit içeriği dolu olmasına rağmen boş dönüyo
    Gönderim Zamanı: 7 Saat 31 Dakika Önce 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">
Yukarı Dön
Nevra Nur Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: 09 Şubat 2026
Konum: konya
Durum: Aktif Değil
Puanlar: 13
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Nevra Nur Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 4 Saat 38 Dakika Önce 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">
Yukarı Dön
Nevra Nur Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: 09 Şubat 2026
Konum: konya
Durum: Aktif Değil
Puanlar: 13
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Nevra Nur Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 3 Saat 6 Dakika Önce Saat 18:02

Merhabalar,

Daha önce paylaştığım Wordle projesinde, for döngüsü ile oluşturduğum satırlarda (RowLayout) CurrentRow değerini artırmama rağmen bileşenlerin içeriğinin boş dönmesi sorununu çözmüş bulunmaktayım. Sorunun kaynağı kod mantığından ziyade, Clomosy'nin Layout dizilimi ile alakalıymış.

Dinamik olarak oluşturulan satırlarda alTop veya alBottom gibi hizalama özellikleri kullanıldığında, bileşenler eklenme sırasına göre görsel olarak yer değiştiriyor. Benim senaryomda satırlar görsel olarak 1-5-4-3-2 şeklinde sıralandığı için kullanıcı ekran üzerinde 2. satırı doldurduğunu düşünürken, kod tarafında clFindComponent fonksiyonu görsel sırayı değil, bileşenin teknik ismini (Edit_2_1) hedefliyordu. Ancak bu isimli bileşen görsel olarak başka bir pozisyonda (en altta) boş bir şekilde bekliyordu. Bu yüzden veri okunamıyordu.

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,031 Saniyede Yüklendi.