Sayfayı Yazdır | Pencereyi Kapat

nil kontrolü

Nereden Yazdırıldığı: Clomosy | Forum
Kategori: Genel Programlama
Forum Adı: Clomosy ile değişken kullanımı
Forum Tanımlaması: TRObject dili ile değişken tanımlaması ve ekranda gösterme
URL: https://forum.clomosy.com.tr/forum_posts.asp?TID=1234
Tarih: 19 Kasım 2025 Saat 19:04
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: nil kontrolü
Mesajı Yazan: M-Guney
Konu: nil kontrolü
Mesaj Tarihi: 19 Kasım 2025 Saat 15:23
function DeclineRoleNeeds:Boolean
  var 
  LArr : TCLJSONArray;
  itemsJson : String;
  {
  //ShowMessage('Role: '+Role);
  try
    if( Role <> nil){
      
      //ShowMessage('Role True: '+Role);
    Result = False;
    if (Role == 'Chef')
    {
      AssignRoleAsChef;
      itemsJson = Clomosy.CLParseJSON(JsonResponse, 'items');
      LArr = TCLJSONArray.Create;
      LArr = TCLJSONArray.CreateFromJSON(itemsJson);
      CloseValuePnlVD(LArr); // ValuePnl.Visible = false; // Bütün + - butonlarını görünmez yapar. 
      LArr.free;
      Result = True;
      // Miktar büyümeli ve pozisyon ayarlanmalı
    }
    else if( role=='Waiter')
      AssignRoleAsWaiter;
    else if (role =='Cashier')
    {
      AssignRoleAsCashier;
      vScroll.Margins.bottom = (MainForm.clHeight * 0.2979); // 250 / 839 ≈ 0.2979   //Cashier
      noteMemo.Visible=False;  //cashier
      CompleteBtn.Margins.top = (MainForm.clHeight * 0.3814); // 320 / 839 ≈ 0.3814    //Cashier
      StateAndDateTimePnl.Margins.top = (MainForm.clHeight * 0.5721); // 480 / 839 ≈ 0.5721    //Cashier
      AmountPnl.Margins.top = (MainForm.clHeight * 0.1907); // 160 / 839 ≈ 0.1907//Cashier
    }
    else if (role == 'Boss')
      AssignRoleAsBoss;
    else {
    ShowMessage('Role is invalid');
    Result = False;
    }
    
  //}
  except
  ShowMessage('DeclineRoleNeeds Error, Exception Class: '+LastExceptionClassName+' Exception Message: '+LastExceptionMessage);
  }
}

role string bir değişken ve ben nil kontrolü yapmak istiyorum ama Invalid typecast hatası alıyorum 

 while (not hasAffected) {
          hasAffected = uWaiterAndChefDetails.DeclineRoleNeeds;
        }

bu şekilde kontrol ediyorum. Timer atamaktansa 
https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" rel="nofollow - 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">



Cevaplar:
Mesajı Yazan: Emr.Erkmn
Mesaj Tarihi: 19 Kasım 2025 Saat 15:34
String için nil kontrolü yapamıyoruz diye biliyorum Güney, 
bunun için boş string kontrolünü kullansak, 
if (Role == '')  
    {
      ShowMessage(' Role boş!');
      Result = False;
      Exit;
    }
https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" rel="nofollow - 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">


Mesajı Yazan: M-Guney
Mesaj Tarihi: 19 Kasım 2025 Saat 16:15
function DeclineRoleNeeds:Boolean
  var 
  LArr : TCLJSONArray;
  itemsJson : String;
  {
  //ShowMessage('Role: '+Role);
  try
    if( role == ''){
    Result = False;
      Exit;
    }
      
    //ShowMessage('Role True: '+Role);
    if (Role == 'Chef')
    {
      AssignRoleAsChef;
      itemsJson = Clomosy.CLParseJSON(JsonResponse, 'items');
      LArr = TCLJSONArray.Create;
      LArr = TCLJSONArray.CreateFromJSON(itemsJson);
      CloseValuePnlVD(LArr); // ValuePnl.Visible = false; // Bütün + - butonlarını görünmez yapar. 
      LArr.free;
      Result = True;
      // Miktar büyümeli ve pozisyon ayarlanmalı
    }
    else if( role=='Waiter')
      AssignRoleAsWaiter;
    else if (role =='Cashier')
    {
      AssignRoleAsCashier;
      vScroll.Margins.bottom = (MainForm.clHeight * 0.2979); // 250 / 839 ≈ 0.2979   //Cashier
      noteMemo.Visible=False;  //cashier
      CompleteBtn.Margins.top = (MainForm.clHeight * 0.3814); // 320 / 839 ≈ 0.3814    //Cashier
      StateAndDateTimePnl.Margins.top = (MainForm.clHeight * 0.5721); // 480 / 839 ≈ 0.5721    //Cashier
      AmountPnl.Margins.top = (MainForm.clHeight * 0.1907); // 160 / 839 ≈ 0.1907//Cashier
    }
    else if (role == 'Boss')
      AssignRoleAsBoss;
    else {
    ShowMessage('Role is invalid');
    Result = False;
    }
    
  //}
  except
  ShowMessage('DeclineRoleNeeds Error, Exception Class: '+LastExceptionClassName+' Exception Message: '+LastExceptionMessage);
  }
}


bunu yapıyorum fakat invalid typecast hatası alıyorum type kontrolü nasıl yapabilirim.
https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" rel="nofollow - 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">


Mesajı Yazan: Emr.Erkmn
Mesaj Tarihi: 19 Kasım 2025 Saat 16:49
function DeclineRoleNeeds: Boolean
var
  LArr: TCLJSONArray;
  itemsJson: String;
  RoleTrimmed: String;
{
  Try
  
    RoleTrimmed = Trim(Role);
    
    if (RoleTrimmed == '')
    {
      Result = False;
      Exit;
    }
    
    Result = False;
    
    if (Role == 'Chef')
    {
      AssignRoleAsChef;
      
      itemsJson = Clomosy.CLParseJSON(JsonResponse, 'items');
      
      if (itemsJson <> '')
      {
        LArr = TCLJSONArray.Create;
        Try
        
          LArr = TCLJSONArray.CreateFromJSON(itemsJson);
          CloseValuePnlVD(LArr);
          Result = True;
        
        finally
        
          if (LArr <> nil)
          {
            LArr.Free;
            LArr = nil;
          }
        }
      }
      else
      {
        Result = True; 
      }
    }
    else if (Role == 'Waiter')  
    {
      AssignRoleAsWaiter;
      Result = True;
    }
    else if (Role == 'Cashier')  
    {
      AssignRoleAsCashier;
      
      if (vScroll <> nil)
      {
        vScroll.Margins.Bottom = (MainForm.clHeight * 0.2979);
      }
      
      if (noteMemo <> nil)
      {
        noteMemo.Visible = False;
      }
      
      if (CompleteBtn <> nil)
      {
        CompleteBtn.Margins.Top = (MainForm.clHeight * 0.3814);
      }
      
      if (StateAndDateTimePnl <> nil)
      {
        StateAndDateTimePnl.Margins.Top = (MainForm.clHeight * 0.5721);
      }
      
      if (AmountPnl <> nil)
      {
        AmountPnl.Margins.Top = (MainForm.clHeight * 0.1907);
      }
      
      Result = True;
    }
    else if (Role == 'Boss')
    {
      AssignRoleAsBoss;
      Result = True;
    }
    else
    {
      ShowMessage('️ Geçersiz role: ' + Role);
      Result = False;
    }
  
  except
  
    ShowMessage(' DeclineRoleNeeds hatası: ' + LastExceptionClassName + ' - ' + LastExceptionMessage);
    Result = False;
  }
}
https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" rel="nofollow - 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">


Mesajı Yazan: Emr.Erkmn
Mesaj Tarihi: 19 Kasım 2025 Saat 16:58
https://www.docs.clomosy.com/Trim" rel="nofollow - https://www.docs.clomosy.com/Trim https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" rel="nofollow - 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">


Mesajı Yazan: Emr.Erkmn
Mesaj Tarihi: 19 Kasım 2025 Saat 17:01
function DeclineRoleNeeds_Safe: Boolean
var
  LArr: TCLJSONArray;
  itemsJson: String;
{
  Try
  
    if (Trim(Role) == '')
    {
      Result = False;
      Exit;
    }
    
    if (not IsValidRole(Role))
    {
      ShowMessage('️ Geçersiz role: ' + Role);
      Result = False;
      Exit;
    }
    
    Result = False;
    
    if (Role == 'Chef')
    {
      AssignRoleAsChef;
      
      itemsJson = Clomosy.CLParseJSON(JsonResponse, 'items');
      if (itemsJson <> '')
      {
        LArr = TCLJSONArray.Create;
        Try
      
          LArr = TCLJSONArray.CreateFromJSON(itemsJson);
          CloseValuePnlVD(LArr);
        
        finally
        
          if (LArr <> nil)
          {
            LArr.Free;
            LArr = nil;
          }
        }
      }
      Result = True;
    
    else if (Role == 'Waiter')
    {
      AssignRoleAsWaiter;
      Result = True;
    }
    else if (Role == 'Cashier')
    {
      AssignRoleAsCashier;
      
      if (vScroll <> nil) { vScroll.Margins.Bottom = (MainForm.clHeight * 0.2979); }
      if (noteMemo <> nil) { noteMemo.Visible = False; }
      if (CompleteBtn <> nil) { CompleteBtn.Margins.Top = (MainForm.clHeight * 0.3814); }
      if (StateAndDateTimePnl <> nil) { StateAndDateTimePnl.Margins.Top = (MainForm.clHeight * 0.5721); }
      if (AmountPnl <> nil) { AmountPnl.Margins.Top = (MainForm.clHeight * 0.1907); }
      
      Result = True;
    }
    else if (Role == 'Boss')
    {
      AssignRoleAsBoss;
      Result = True;
    }
  }
  except
  
    ShowMessage(' DeclineRoleNeeds_Safe hatası: ' + LastExceptionClassName + ' - ' + LastExceptionMessage);
    Result = False;
  }

Trimle kontrol yapmaya çalıştım Güney sende inceler misin
https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" rel="nofollow - 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">



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